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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-98432-nft-mitigation — Linux 커널 CVE-2026-98432(tcp_v4_syn_recv_sock의 IPv4 옵션 UAF)에 대한 임시 nftables 완화책으로, 재현 가능한 에이전트 스킬 | Kitploit
도구/GitHubGitHub/nfodor/cve-2026-98432-nft-mitigation
Defensive ToolsContainer SecurityVulnerability AnalysisConfiguration AuditingNetwork SecurityMisconfigurationIncident Response
GitHub

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
nfodor/cve-2026-98432-nft-mitigation

cve-2026-98432-nft-mitigation

Linux 커널 CVE-2026-98432(tcp_v4_syn_recv_sock의 IPv4 옵션 UAF)에 대한 임시 nftables 완화책으로, 재현 가능한 에이전트 스킬

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

CVE-2026-98432 nft 완화책

Linux 커널 CVE-2026-98432(CVSS 9.8)에 대한 임시 호스트 완화책을 적용하고, 검증하고, 지속시키고, 나중에 제거하는 에이전트 스킬: IPv4 옵션을 실은 TCP 패킷을 드롭하는 단일 nftables 규칙 — tcp_v4_syn_recv_sock()의 inet_opt/ireq_opt use-after-free에 도달하는 유일한 입력입니다.

알아둘 만한 배경: Anthropic의 Frontier Red Team이 MPTCP 리스너를 노출한 서버를 대상으로 한, 인증 없이 루트 권한을 얻는 동작하는 PoC를 공개적으로 설명했습니다(2026년 10월). 실제 공격 사례는 보고되지 않았습니다. 커널 CNA는 9.8점을 부여하고, 업스트림과 Red Hat은 8.1점(공격 복잡도 높음)을 부여합니다. 벤더 수정은 Ubuntu 커널 6.8.0-149급 백포트입니다 — 실행 중인 커널이 수정 사항을 포함할 때까지 이 규칙이 임시방편입니다. 이 규칙은 한 프로토콜의 한 헤더의 한 필드로 범위가 한정되므로 정상 트래픽은 영향을 받지 않습니다.

이 규칙은 새로운 것이 아닙니다 — 패키징된 선행 기술로 취급하십시오. 아래 "선행 기술"을 참조하십시오. 이 저장소의 기여는 재현 가능한 에이전트 스킬 형태와 프로덕션 함정입니다.

목차

경로내용
SKILL.md스킬 — 프런트매터 트리거, 규칙셋, 검사, 지속성, 함정, 제거
files/cve98432.nft바로 복사해 쓸 수 있는 nftables 규칙셋(prerouting, 우선순위 −300)
files/nft-cve98432.service바로 복사해 쓸 수 있는 systemd 유닛(지속성)

설치 (에이전트 스킬)

cp -R cve-2026-98432-nft-mitigation ~/.claude/skills/     # Claude Code
cp -R cve-2026-98432-nft-mitigation ~/.agents/skills/     # agents-style runtimes

description 프런트매터는 탐색 표면입니다. 에이전트는 CVE-2026-98432, "TCP/IP 수정", 커널 IPv4 옵션 UAF 완화를 요청받거나 벤더 커널이 출시된 후 완화 조치를 제거하라는 요청을 받으면 이 스킬을 선택합니다.

적용 전 — 세 가지 확인 사항

  1. 실행 중인 커널이 이미 수정되었는가? 백포트는 버전 번호를 변경합니다 — 실제로 실행 중인 커널의 체인지로그를 확인하십시오:
    zgrep -c CVE-2026-98432 /usr/share/doc/linux-modules-$(uname -r)/changelog.Debian.gz   # Debian/Ubuntu
    rpm -q --changelog kernel-core-$(uname -r) | grep -c CVE-2026-98432                     # RHEL/Rocky/Alma
    
    > 0 = 수정됨, 완화 조치를 건너뜁니다. (벤더 트래커도 확인하고, apt-cache policy linux-image-generic으로 설치되었지만 부팅되지 않은 최신 커널도 확인하십시오.)
  2. MPTCP 리스너 (ss -lnMp): 공개된 PoC가 이를 대상으로 하며, Go ≥ 1.24는 이를 허용하는 커널에서 기본적으로 MPTCP로 리스닝합니다. sysctl net.mptcp.enabled=0은 새 소켓에만 영향을 줍니다 — 이미 열려 있는 리스너는 해당 서비스가 재시작될 때까지 MPTCP를 유지합니다 (Go 팀에 따르면 GODEBUG=multipathtcp=0).
  3. CIPSO 레이블 네트워크: cat /sys/kernel/security/lsm에 SELinux 또는 Smack이 나열되고 동시에 NetLabel CIPSOV4 매핑을 사용한다면, 해당 환경에서는 IPv4 옵션이 정당합니다 — 이 규칙은 그 경로를 깨뜨릴 수 있습니다. CIPSO 레이블 네트워크에는 적용하지 마십시오 (RFC 7126에서 이 트레이드오프를 논의합니다).

사용법 (root 필요)

  1. files/cve98432.nft와 files/nft-cve98432.service를 설치합니다.
  2. nft -c -f /usr/local/sbin/cve98432.nft — 파싱 검사; root가 필요합니다 (비root는 netlink에서 실패: cache initialization failed).
  3. systemctl daemon-reload && systemctl enable --now nft-cve98432.service
  4. 유닛을 두 번 재시작 — 멱등성 증명. destroy table … 줄은 파일의 첫 번째 줄이어야 합니다: 끝에 추가하면 테이블을 생성한 뒤 파괴하여, 서비스가 여전히 종료 코드 0으로 끝나는 동안 빈 규칙셋을 남깁니다.
  5. nft list table inet cve98432는 priority -300 (conntrack 이전, 공개된 규칙과 일치)인 체인에 meta l4proto tcp ip hdrlength > 5 counter drop을 보여야 합니다.
  6. 공존: 사용자 정의 table inet …는 iptables가 소유하지 않으므로 iptables-restore / ufw / firewalld 도구가 이를 그대로 둡니다 (복원을 한 번 실행하고 다시 목록을 조회하여 확인하십시오).

수정된 커널을 설치하고 재부팅한 후 제거: SKILL.md의 섹션 7.

컨테이너: 규칙은 해당 netns에도 있어야 합니다

nftables 상태는 네트워크 네임스페이스별입니다. 호스트 규칙은 컨테이너 트래픽이 호스트를 횡단하는 지점에서만 (예: 컨테이너 → 외부) 이를 봅니다; 컨테이너 자체 네임스페이스 내부에 머무는 트래픽(컨테이너 → 자체 loopback/IP)은 호스트의 prerouting을 결코 통과하지 않습니다 — 그러나 커널은 공유되므로, 컨테이너 내부의 코드는 여전히 로컬에서 UAF에 도달할 수 있습니다. 실행 중인 모든 컨테이너에 동일한 규칙셋을 주입하십시오:

# Docker (host-side nsenter keeps the needed capabilities)
for c in $(docker ps -q); do
  pid=$(docker inspect -f '{{.State.Pid}}' "$c")
  nsenter -t "$pid" -n /usr/sbin/nft -f /usr/local/sbin/cve98432.nft
done
# LXC (privileged CLI as root)
for c in $(lxc-ls -1 2>/dev/null); do lxc-attach -n "$c" -- nft -f /usr/local/sbin/cve98432.nft; done

컨테이너 네임스페이스는 nft 규칙을 유지하지 않습니다 — 컨테이너가 재시작될 때마다 다시 실행해야 합니다(오케스트레이터의 시작 후 단계에 훅으로 연결하세요). 이 정확한 공백에 대한 선행 사례와 스크립트: typhoon1217/cve-2026-98432-mitigation(inject-netns.sh).

드롭 검증 (클라이언트 측)

표준 소켓으로 충분합니다 — 서버에서 패킷을 조작할 필요가 없습니다: 클라이언트가 setsockopt(IP_OPTIONS)를 통해 IPv4 Record Route 옵션을 설정하고 연결합니다. 일반 연결은 성공하고, 옵션이 있는 연결은 규칙의 카운터가 증가하는 동안 타임아웃되어야 합니다. 바로 사용 가능한 클라이언트: typhoon1217/cve-2026-98432-mitigation의 check-blocked.py / verify-synack.sh. 해당 프로젝트의 주의사항: 자체적으로 완화 조치를 실행하는 클라이언트는 대상의 SYN-ACK 에코도 드롭합니다 — 깨끗한 판정을 위해 완화 조치가 없는 클라이언트에서 테스트하세요.

이 규칙을 사용하는 이유

  • UAF는 IPv4 헤더에 옵션이 있는(IHL > 5) TCP 세그먼트를 통해서만 도달할 수 있습니다. RFC 7126은 이미 라우터/방화벽이 Record Route/Timestamp 옵션을 드롭할 것을 권장하므로, 이는 실제로 아무것도 깨뜨리지 않습니다.
  • priority -300의 prerouting: conntrack 이전이므로 드롭된 패킷은 conntrack 상태를 생성하지 않으며, input과 달리 호스트를 거쳐 컨테이너/VM으로 포워딩되는 트래픽도 커버합니다.
  • 매치 의미는 자체 검증됩니다: nft는 원시 @nh,4,4 > 5를 ip hdrlength > 5로 정규화합니다 — IHL 필드이며, 도구 자체에서 확인됩니다.

선행 사례 (읽어 보세요)

  • RFC 7126 — IPv4 옵션을 포함하는 IPv4 패킷 필터링
  • typhoon1217/cve-2026-98432-mitigation — 동일한 드롭 규칙 + 컨테이너-netns 주입, CIPSO 주의사항, 검증 클라이언트 (EN/KO)
  • getrff.com 블로그 (2026년 10월 29일) — priority −300의 동일 규칙, MPTCP 검사, 플릿 스크립팅
  • CVE-2026-98432에 대한 Atlas 분석 — 트리거 옵션 + 규칙
  • CIQ KB — "Rocky Linux에서 CVE-2026-98432 완화" (검증된 방화벽 규칙 절차)
  • Red Hat RHSB-2026-016, Ubuntu CVE 트래커, NVD

출처

프로덕션 배포에서 정제되었으며, 그곳에서 발생한 실패도 포함합니다: 비루트 nft -c, 끝에서 destroy를 실행하는 순서 버그, \$를 조용히 삼키는 따옴표 없는 heredoc, 그리고 이중 적용 의미론. 문서 전용 저장소 — 런타임 의존성: nft ≥ 1.0 + systemd; 테스트 스위트 없음 (해당 없음).

도구 다운로드