
다양한 커널 익스플로잇
다양한 커널 익스플로잇
Linux 로컬 루트 익스플로잇.
theflow의 exploit을 CVE-2021-22555용으로 업데이트한 버전입니다.
v2.6.19-rc1부터 Linux에 영향을 미치는 힙(heap) 경계를 벗어난 쓰기(out-of-bounds write) 취약점이 net/netfilter/x_tables.c에서 발견되었습니다. 이 취약점으로 인해 공격자는 사용자 네임스페이스(user name space)를 통해 권한을 획득하거나 DoS(힙 메모리 손상을 통한)를 유발할 수 있습니다.
Linux 로컬 루트 익스플로잇.
Jann Horn의 exploit을 CVE-2019-13272용으로 업데이트한 버전입니다.
5.1.17 이전의 Linux 커널에서 kernel/ptrace.c의 ptrace_link가 ptrace 관계를 생성하려는 프로세스의 자격 증명(credentials) 기록을 잘못 처리합니다. 이로 인해 로컬 사용자는 부모 프로세스가 권한을 낮추고 execve를 호출하는(잠재적으로 공격자의 제어를 허용할 수 있는) 특정 부모-자식 프로세스 관계 시나리오를 활용하여 루트 액세스를 얻을 수 있습니다. 한 가지 원인은 객체 수명(object lifetime) 문제(패닉을 유발할 수도 있음)입니다. 또 다른 원인은 ptrace 관계를 권한 있는 것으로 잘못 표시하는 것으로, 이는 (예를 들어) PTRACE_TRACEME와 함께 Polkit의 pkexec 헬퍼를 통해 악용될 수 있습니다. 참고: SELinux deny_ptrace는 일부 환경에서 사용 가능한 우회 방법이 될 수 있습니다.
Linux 로컬 루트 익스플로잇.
CVE-2018-18955용 Jann Horn의 exploit 래퍼입니다.
4.19.2 이전의 Linux 커널 4.15.x~4.19.x에서 kernel/user_namespace.c의 map_write()가 5개 이상의 UID 또는 GID 범위를 가진 중첩 사용자 네임스페이스를 잘못 처리하여 권한 상승을 허용합니다. 영향을 받는 사용자 네임스페이스에서 CAP_SYS_ADMIN을 가진 사용자는 /etc/shadow를 읽는 것으로 입증된 것처럼 네임스페이스 외부 리소스에 대한 접근 제어를 우회할 수 있습니다. 이는 ID 변환이 네임스페이스→커널 방향에서는 올바르게 수행되지만 커널→네임스페이스 방향에서는 그렇지 않기 때문에 발생합니다.
Linux 로컬 루트 익스플로잇.
wbowling의 exploit을 CVE-2018-5333용으로 업데이트한 버전입니다.
4.14.13까지의 Linux 커널에서 net/rds/rdma.c의 rds_cmsg_atomic 함수가 페이지 고정(page pinning) 실패 또는 잘못된 주소가 제공된 경우를 잘못 처리하여 rds_atomic_free_op NULL 포인터 역참조를 유발합니다.
Linux 로컬 루트 익스플로잇.
xairy의 exploit을 CVE-2017-1000112용으로 업데이트한 버전입니다.
Linux 커널: UFO에서 비-UFO 경로 전환으로 인한 악용 가능한 메모리 손상. MSG_MORE로 UFO 패킷을 구성할 때 __ip_append_data()가 데이터 추가를 위해 ip_ufo_append_data()를 호출합니다. 그러나 두 send() 호출 사이에 추가 경로가 UFO에서 비-UFO 경로로 전환될 수 있으며, 이로 인해 메모리 손상이 발생합니다. UFO 패킷 길이가 MTU를 초과하는 경우, 비-UFO 경로에서 copy = maxfraglen - skb->len이 음수가 되고 새 skb를 할당하는 분기가 실행됩니다. 이로 인해 단편화와 fraggap = skb_prev->len - maxfraglen 계산이 발생합니다. fraggap은 MTU를 초과할 수 있으며, 이로 인해 copy = datalen - transhdrlen - fraggap이 음수가 됩니다. 이후 skb_copy_and_csum_bits()가 경계를 벗어난 쓰기를 수행합니다. 유사한 문제가 IPv6 코드에도 존재합니다. 이 버그는 2005년 10월 18일 e89e9cf539a2("[IPv4/IPv6]: UFO Scatter-gather approach")에서 도입되었습니다.
Linux 로컬 루트 익스플로잇.
xairy의 exploit을 CVE-2017-7308용으로 업데이트한 버전입니다.
4.10.6까지의 Linux 커널에서 net/packet/af_packet.c의 packet_set_ring 함수가 특정 블록 크기 데이터를 제대로 검증하지 않아, 로컬 사용자가 조작된 시스템 호출을 통해 서비스 거부(정수 부호 오류 및 경계를 벗어난 쓰기)를 유발하거나(CAP_NET_RAW 기능을 보유한 경우) 권한을 획득할 수 있습니다.
Linux 로컬 루트 익스플로잇.
xairy의 exploit을 CVE-2016-9793용으로 업데이트한 버전입니다.
4.8.14 이전의 Linux 커널에서 net/core/sock.c의 sock_setsockopt 함수가 sk_sndbuf 및 sk_rcvbuf의 음수 값을 잘못 처리하여, 로컬 사용자가 (1) SO_SNDBUFFORCE 또는 (2) SO_RCVBUFFORCE 옵션을 사용한 조작된 setsockopt 시스템 호출에 CAP_NET_ADMIN 기능을 활용함으로써 서비스 거부(메모리 손상 및 시스템 충돌)를 유발하거나 불특정 기타 영향을 일으킬 수 있습니다.
Linux 로컬 루트 익스플로잇.
rebel의 exploit을 CVE-2016-8655용으로 업데이트한 버전입니다.
4.8.12까지의 Linux 커널에서 net/packet/af_packet.c의 경쟁 조건(race condition)으로 인해 로컬 사용자가 CAP_NET_RAW 기능을 활용하여 소켓 버전을 변경함으로써 권한을 획득하거나 서비스 거부(use-after-free)를 유발할 수 있습니다. 이는 packet_set_ring 및 packet_setsockopt 함수와 관련이 있습니다.