Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-98432 — IPv4 TCP inet_opt/ireq_opt use-after-free 취약점 완화 툴킷: 노출 감사, nft SYN-with-IP-options 드롭 규칙, tcpdump 탐지, EL 커널용 kpatch/livepatch 빌더. | Kitploit
도구/GitHubGitHub/davetha/cve-2026-98432
Defensive ToolsPacket Sniffing & AnalysisVulnerability AnalysisConfiguration AuditingNetwork SecurityIncident Response
GitHubdavetha/cve-2026-98432

cve-2026-98432

IPv4 TCP inet_opt/ireq_opt use-after-free 취약점 완화 툴킷: 노출 감사, nft SYN-with-IP-options 드롭 규칙, tcpdump 탐지, EL 커널용 kpatch/livepatch 빌더.

저장소 보기
1167일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-98432 완화 툴킷

IPv4 TCP inet_opt/ireq_opt use-after-free (업스트림 수정 e3f33b0a, inet_sock_destruct() + tcp_v4_reqsk_destructor()에서 kfree → kfree_rcu). 트리거: IPv4 옵션(ihl > 5)을 포함한 클라이언트 SYN — 옵션이 없으면 경쟁 대상 객체 ireq_opt가 할당되지 않는다. 주장된 원격 루트 익스플로잇은 추가로 MPTCP 리스너를 필요로 한다.

파일

파일root 필요목적
cve-audit.sh아니오읽기 전용 노출 + 패치 가능성 보고서
cve-mitigate.sh적용/해제IP 옵션이 있는 SYN의 nft 드롭, 선택적 MPTCP 비활성화
nft-rules.txt—독립 실행형 규칙셋 (nft -f nft-rules.txt)
cve-detect.sh캡처 모드익스플로잇의 패킷 형태를 탐지하는 tcpdump 센서
kpatch-el-build.sh빌드/설치EL 계열용 검증된 kpatch/livepatch 빌더
klp-handcraft-build.sh빌드/로드kpatch-build를 실행할 수 없는 IBT 커널(EL10)용 수작업 klp 모듈
patches/CVE-2026-98432.patch—업스트림 수정, kpatch-build용으로 준비됨
tests/run-tests.sh아니오하네스 (netns 규칙셋 로드 + 스텁 빌더 e2e)

사고 대응 빠른 시작

./cve-audit.sh                                # where do I stand?
./cve-mitigate.sh apply --with-mptcp-off      # closes trigger + claimed root path
./cve-detect.sh count 30                      # anyone probing with IP options?
sudo ./kpatch-el-build.sh --name CVE-2026-98432 \
     --expect inet_sock_destruct,tcp_v4_reqsk_destructor \
     [--sign priv.pem cert.pem] [--install] \
     patches/CVE-2026-98432.patch
# verify: cat /sys/kernel/livepatch/CVE-2026-98432/enabled  -> 1
./cve-mitigate.sh status                      # keep until 100% patched, then:
./cve-mitigate.sh undo

EL 매트릭스

대상비고
EL7 (3.10)취약하지 않음(트리거 코드는 4.4에서 도입됨); 빌더는 다른 패치에는 여전히 동작함
EL7h/EL8 (4.18)취약함; kernel-debuginfo가 /usr/src/debug/kernel-*/linux-*를 제공함; EPEL의 kpatch-build 사용
EL9 (5.14)취약함; 커널이 gcc-toolset으로 빌드됨 — 빌더가 일치하는 /opt/rh/gcc-toolset-*를 자동으로 앞에 붙임
EL10 (6.12)IBT: kpatch-build 0.9.11은 CONFIG_X86_KERNEL_IBT=y 커널을 거부함(dynup/kpatch#1320) — klp-handcraft-build.sh를 사용하세요; Secure Boot/lockdown 환경에서는 모듈 서명이 강제됨
CloudLinux 8/9/10배포판 id가 kpatch-build의 지원 목록에 없으므로 빌더가 항상 -s/-c/-v를 명시적으로 전달함; debuginfo는 rpm -qf /boot/vmlinuz-$(uname -r)와 일치하는 AlmaLinux/CentOS kernel-debuginfo에서 가져옴

RHEL에서 debuginfo를 사용하려면 저장소를 활성화해야 합니다. 예: dnf --enablerepo='*debug*' debuginfo-install -y $(rpm -qf /boot/vmlinuz-$(uname -r)) (청구되지 않은 호스트에서는 subscription-manager repos --enable=rhel-9-appstream-rpms 등).

빌더가 무언가를 로드하기 전에 검증하는 항목

  1. 실행 중인 설정에 CONFIG_LIVEPATCH=y + CONFIG_KALLSYMS=y가 있는지.
  2. 대상 커널 == 실행 중인 커널(vermagic 장벽), kernel-devel/debuginfo/vmlinux 존재 여부.
  3. 패치가 정방향으로 적용되는지; 역방향으로 적용되면 커널에 이미 수정 사항이 포함되어 있다는 안내가 표시됨(kpatch는 나중에 "no functional changes"와 함께 종료됨).
  4. 컴파일러가 커널 빌드 gcc와 일치하는지(.comment 수준 검사는 kpatch-build에 위임됨; toolset 조회는 여기서 수행됨).
  5. 빌드 후: vermagic, 그리고 변경된 함수에 대한 엄격한 양방향 허용 목록 (--expect) — 예상치 못한 세 번째 변경 객체는 하드 실패로 처리됨.
  6. 선택적 sign-file(사용자의 키페어 사용) + modinfo sig_type 재확인; Secure Boot를 위해 MOK를 통해 인증서를 등록.
  7. --install은 /var/lib/kpatch/$(uname -r)/에 배치하고, kpatch/insmod로 로드하며, 재부팅 후 지속성을 위해 kpatch.service를 활성화함.

카나리 런북(플릿 롤아웃 전에 수행하세요)

  1. 플릿과 동일한 uname -r을 가진 카나리 VM.
  2. ./kpatch-el-build.sh ... --install; /sys/kernel/livepatch/<name>/enabled == 1 확인.
  3. 레이스 부하 테스트: 두 번째 머신에서 리스너를 대상으로 hping3 -S -p <port> --tcp-opts ... 플러드를 가하면서 카나리에서 net.ipv4.tcp_migrate_req=1을 토글; ip_options_build() 내부에 인위적인 udelay()를 넣은 KASAN 커널 변형은 패치 없이 UAF를 재현하고, 패치가 있으면 조용해야 함.
  4. uname -r이 변경되지 않는지 확인하고(라이브패치는 이를 올리지 않음), kpatch list, dmesg -w에서 taint 및 klp 전환 지연을 관찰 (/sys/kernel/livepatch/<name>/transition이 0으로 소진되어야 함).
  5. 플릿 롤아웃; 100% 커버리지 후 24–48시간 뒤에 nft 규칙을 제거.
  6. 어쨌든 다음 유지보수 창에서 벤더 커널로 재부팅 — 라이브패치는 커널 버전 상승 시 심하게 누적됨.

상태 / 정직성

하네스: AlmaLinux 10.2 VM(커널 6.12.0-211.64.1.el10_2)에서 모든 검사 통과. 실제 nft 규칙셋이 새 netns 내부에 로드되고 나열됨; pcap 필터는 실행 중인 tcpdump에 대해 컴파일됨; 빌더 파이프라인은 실제 .ko 픽스처와 주입된 심볼 피드를 사용하는 스텁된 kpatch-build에 대해 엔드투엔드로 실행됨.

해당 EL10 VM에서 실제 검증 완료:

  • klp-handcraft-build.sh --load가 라이브패치를 빌드하고 활성화함: /sys/kernel/livepatch/klp_CVE_2026_98432/enabled=1, 전환 드레인 완료, sysfs에 inet_sock_destruct,1 + tcp_v4_reqsk_destructor,1 표시됨; 정상 TCP(HTTP 200)는 영향 없음. 서명되지 않은 .ko는 커널을 오염(taint)시킴; Secure Boot 록다운은 이를 거부할 것임(VM은 서명 없이 실행됨).
  • 실제 kpatch-build(dynup 0.9.11, 소스에서 빌드)는 EL10에서 "kernel option CONFIG_X86_KERNEL_IBT not supported"와 함께 강제 실패함 — 빌더는 이제 이를 사전 점검하고 수작업(handcraft) 경로를 안내함. 실제 바이너리 diff kpatch-build 실행은 EL8/EL9에서 여전히 검증되지 않은 상태임.
  • 완화책 라이브 적용: 네트워크상에서 20개의 scapy 옵션-SYN이 가드 규칙에 의해 카운트+드롭됨; 3개의 일반 SYN은 통과함; ssh는 영향 없음.
  • 현장 발견 사항: EL10 6.12.0-211에서 IP 옵션이 포함된 조작된 SYN은 nft prerouting raw 훅(-300)에 도달하지만 INPUT 훅에는 결코 도달하지 않음(열린 포트, lo, 깨끗한 netns 모두에서 재현됨; kfree_skb 트레이스포인트 이벤트 없음, 다만 SELinux가 perf/kprobes를 차단했고 tcpdump는 아무것도 캡처하지 못했으므로 정확한 드롭 함수는 미해결 상태임). 따라서 완화 체인은 prerouting priority raw에 훅을 걸어 이를 관찰하고 드롭함; 친구의 prerouting priority -310 규칙도 같은 이유로 작동함. 사고에서 신뢰하기 전에 EL 카나리에서 정상 경로(happy path)를 한 번 실행해 보십시오.
도구 다운로드