Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-23111-nftables-lab — 노출 확인기 및 CVE-2026-23111 (Linux nf_tables use-after-free local privilege escalation)을 위한 안전한 일회용 VM 실습 환경. 방어적: 탐지, 완화, 멀티 배포판 실습. 익스플로잇 없음. | Kitploit
도구/GitHubGitHub/ishankaru/cve-2026-23111-nftables-lab
Privilege EscalationVulnerability AnalysisConfiguration AuditingLearning & EducationCurated ResourcesContainer EscapeLabs & Practice
GitHubishankaru/cve-2026-23111-nftables-lab

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-23111-nftables-lab

노출 확인기 및 CVE-2026-23111 (Linux nf_tables use-after-free local privilege escalation)을 위한 안전한 일회용 VM 실습 환경. 방어적: 탐지, 완화, 멀티 배포판 실습. 익스플로잇 없음.

저장소 보기
293개월 전아직 검토되지 않음

CVE-2026-23111 nf_tables LPE: 노출 확인 및 안전한 실험실

CVE-2026-23111을 위한 방어 도구 및 재현 가능한 가상 머신 실험실입니다. 이는 리눅스 커널의 nf_tables use-after-free 로컬 권한 상승( nft_map_catchall_activate()에서 요소 활성화 검사가 반전된 "off by !" 버그)입니다. 권한이 없는 로컬 사용자가 권한 없는 사용자 네임스페이스를 통해 루트로 권한을 상승시키고 컨테이너를 탈출할 수 있습니다.

이 리포지토리는 익스플로잇을 포함하지 않습니다. 읽기 전용 노출 확인자, 실제로 권한이 없는 사용자를 생성하는 스크립트, 그리고 VM 정의가 포함되어 있어 안전하게 버그에 도달하고 공개 연구를 학습할 수 있습니다. 전체 루트 체인은 아래 링크된 공개 자료에 있으며, 여기에는 없습니다.

전체 글: https://techearl.com/cve-2026-23111-nftables-lpe

Files

  • check-exposure.sh — 읽기 전용 탐지기: 커널 버전 대 수정된 빌드, nf_tables 존재 여부, 권한 없는 userns 사전 조건, 커널 로그 크래시 시그니처.
  • setup-unprivileged-user.sh — labuser를 sudo 없이 생성하고 권한이 없음을 증명합니다. LPE 테스트의 요점은 이미 루트가 될 수 없는 사용자부터 시작하는 것입니다.
  • Vagrantfile — 일회용 Debian 12 및 AlmaLinux 10 VM (Multipass가 실행할 수 없는 배포판).

VM이며 컨테이너가 아닌 이유

컨테이너는 호스트 커널을 공유합니다. 컨테이너 내에서 커널 익스플로잇을 실행하면 실제 호스트 커널에 대해 실행되므로, "테스트"가 실제 머신을 손상시킬 수 있습니다. 자체 커널이 있는 일회용 VM을 사용하세요.

배포판 및 실행기

Multipass는 Ubuntu만 실행할 수 있으므로 나머지는 Vagrant를 사용합니다.

취약한 커널 고정 (배포판별)

각 배포판은 클라우드 VM에서 네트워킹이 여전히 작동하는 실제 수정 전 커널을 부팅하기 위해 다른 방법이 필요했습니다.

  • Ubuntu (클라우드): linux-generic이 아닌 이전 linux-aws를 사용합니다. 일반 커널에는 AWS ENA NIC 드라이버가 없어 Nitro 인스턴스에서 SSH가 작동하지 않습니다. sudo apt install -y linux-image-6.8.0-1028-aws (수정된 6.8.0-1051 이전), GRUB에서 기본값으로 설정하고 재부팅합니다. 로컬 가상 환경에서는 일반 커널이 잘 작동합니다.
  • Debian: 메인 리포지토리는 현재(패치된) 커널만 제공합니다. 수정 전 스냅샷 미러를 추가하고 cloud 커널을 설치합니다(ENA 유지): deb [check-valid-until=no trusted=yes] https://snapshot.debian.org/archive/debian/20251201T000000Z/ bookworm main, 그 다음 apt install -y linux-image-6.1.0-39-cloud-amd64=6.1.148-1 (수정된 6.1.164-1, DSA-6163-1 이전).
  • AlmaLinux/Rocky: 취약한 el10_1 커널은 10.1 vault에 있습니다. dnf를 https://vault.almalinux.org/10.1/BaseOS/x86_64/os/로 지정하고 dnf install kernel-6.12.0-124.38.1.el10_1를 실행한 후, 를 실행합니다.

실행 (모든 VM)

root@kitploit:~
# 1. Create a real unprivileged user and prove it cannot sudo.
#    (useradd, not Debian's adduser, so it works on RHEL too.)
sudo bash setup-unprivileged-user.sh labuser

# 2. Exposure verdict.
sudo ./check-exposure.sh

# 3. As labuser, the precondition, then the public nft trigger inside a netns.
sudo -u labuser unshare -Ur id     # uid=0 in a new userns = precondition open
                                   # (denied on stock Ubuntu 24.04 = mitigation working)

# The public FuzzingLabs trigger (catchall GOTO + aborted batch). Inlined here as
# documentation; this repo does not ship an executable exploit/trigger file.
sudo -u labuser unshare -Urn bash -c '
  nft add table inet t; nft add chain inet t c
  nft add map inet t m "{ type ipv4_addr : verdict; }"
  nft add element inet t m "{ * : goto c }"
  printf "delete element inet t m { * }\ndelete element inet t m { 1.2.3.4 }\n" > /tmp/b.nft
  nft -f /tmp/b.nft; nft flush ruleset'

해당 시퀀스는 버그가 있는 중단 경로를 실행합니다. 권한 상승 체인은 포함되지 않으며, 기본 커널에서는 아무런 출력이 없습니다(아래 참조).

실제 관찰 결과 (세 가지 변형, 실제)

트리거에 대한 솔직한 결과: 프로덕션 기본 커널에서는 아무 소리도 나지 않습니다. 충돌이나 dmesg 출력 없이 버그가 있는 중단 경로를 실행하며, 해제 후 재사용으로 반복해도 마찬가지입니다. 글에서 나오는 KASAN: slab-use-after-free 출력은 KASAN/디버그 커널에서 온 것입니다; 잠재된 use-after-free를 무기화하려면 익스플로잇의 힙 스프레이가 필요합니다(이 리포지토리에는 없음). 이 실험실은 권한 없는 사용자가 버그에 도달한다는 것을 증명하고, Ubuntu의 기본 AppArmor 제한이 해당 경로를 차단함을 보여주며, 명확한 노출됨/완화됨/수정됨 판정을 제공합니다. 의도적으로 루트 셸을 제공하지 않습니다.

완화 조치

권한 없는 사용자 네임스페이스를 제한하고(공개 익스플로잇의 현실적인 경로를 차단), 커널을 패치합니다.

root@kitploit:~
# Ubuntu 23.10+ (AppArmor-based, keeps legitimate userns users working):
echo "kernel.apparmor_restrict_unprivileged_userns=1" | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Elsewhere (blanket disable; set both on Debian/Ubuntu):
printf 'kernel.unprivileged_userns_clone=0\nuser.max_user_namespaces=0\n' | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Patch (Ubuntu 24.04 generic fixed at 6.8.0-107.107):
sudo apt update && sudo apt install --only-upgrade linux-image-generic && sudo reboot

참고 자료

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-23111
  • Exodus Intelligence "Off By !": https://blog.exodusintel.com/2026/06/08/off-by-exploiting-a-use-after-free-in-the-linux-kernel/
  • FuzzingLabs 재현: https://fuzzinglabs.com/repro-cve-2026-23111/
  • Ubuntu: https://ubuntu.com/security/CVE-2026-23111
  • Red Hat: https://access.redhat.com/security/cve/cve-2026-23111
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-23111

라이선스

MIT. 방어 및 교육용.

도구 다운로드
배포판실행 방법이유
Ubuntu 24.04 / 22.04Multipass (Ubuntu만)Exodus가 둘 다에서 재현됨; 24.04는 기본적으로 AppArmor userns 제한을 탑재하여 완화 조치를 보여줍니다.
Debian 12Vagrant (vagrant up debian)Exodus가 재현됨; 권한 없는 userns가 기본적으로 열려 있습니다.
AlmaLinux / Rocky 10.1Vagrant (vagrant up alma)FuzzingLabs의 대상 커널 6.12.0-124.x.el10과 일치하여 공개 트리거가 발행된 대로 재현됩니다.
grubby --set-default
배포판부팅된 취약 커널기본 userns판정
Ubuntu 24.046.8.0-1028-awsrestricted (AppArmor)완화됨, 수정되지 않음
Debian 126.1.0-39-cloud (6.1.148-1)open노출됨
AlmaLinux 10.16.12.0-124.38.1.el10_1open노출됨