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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-98432 — CVE-2026-98432에 대한 Ubuntu 커널 패치 상태를 평가하고, IP 옵션을 포함한 IPv4 TCP 패킷을 드롭하는 영구적인 nftables 또는 iptables 임시 방편을 적용하는 셸 스크립트입니다. | Kitploit
도구/GitHubGitHub/ndeet/cve-2026-98432
Defensive ToolsVulnerability AnalysisConfiguration AuditingNetwork SecurityMisconfigurationIncident Response
GitHubndeet/cve-2026-98432

cve-2026-98432

CVE-2026-98432에 대한 Ubuntu 커널 패치 상태를 평가하고, IP 옵션을 포함한 IPv4 TCP 패킷을 드롭하는 영구적인 nftables 또는 iptables 임시 방편을 적용하는 셸 스크립트입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ubuntu 16.04, 22.04, 24.04 및 26.04를 위한 CVE-2026-98432 완화

빠른 시작

# 1. Inspect the host; no changes.
sudo ./cve-2026-98432-mitigate.sh check

# 2. Get a patch-state verdict for the exact running kernel package.
sudo ./cve-2026-98432-mitigate.sh assess

# 3. Apply the stopgap filter and make it survive reboot.
sudo ./cve-2026-98432-mitigate.sh enable

# 4. Prove that normal TCP still works and IP-option TCP is dropped.
sudo ./cve-2026-98432-mitigate.sh verify

# 5. Monitor. Exit 0 = healthy, 1 = mismatch/persistence failure, 2 = no state.
sudo ./cve-2026-98432-mitigate.sh status

# 6. After booting a kernel that Ubuntu marks as fixed.
sudo ./cve-2026-98432-mitigate.sh disable

enable는 CIPSO/NetLabel이 감지되면 규칙 세트 변경을 거부합니다. 해당 규칙이 레이블이 지정된 트래픽을 포함하여 IP 옵션을 운반하는 모든 TCP를 드롭하기 때문입니다. 이러한 트레이드오프를 감수하는 경우에만 --ignore-cipso를 사용하십시오. systemd가 없는 컨테이너나 호스트는 --no-persist를 사용해야 합니다. 그렇지 않으면 재부팅 지속성을 설정할 수 없을 때 enable이 활성 규칙을 유지한 채 종료 코드 4로 종료됩니다.

기능 및 목적

CVE-2026-98432는 Linux IPv4 TCP 핸드셰이크의 use-after-free입니다. 이는 수신 SYN이 IP 옵션을 운반할 때 도달 가능합니다. 실제 수정은 패치된 커널이며, 이 스크립트는 IP 헤더 길이가 5보다 큰(즉, IP 옵션을 운반하는) 인바운드 IPv4 TCP 패킷을 conntrack 및 Docker NAT 이전에 드롭하는 임시 방편입니다.

두 가지 동등한 백엔드를 지원합니다:

  • nftables: table ip cve_2026_98432, prerouting 우선순위 -310, TCP 전용, 카운터, 드롭.
  • iptables: raw PREROUTING, u32 매치 0>>24&0xf=6:15, TCP 전용, 카운터, 드롭.

nft 형태는 ip 패밀리와 숫자 우선순위를 사용하므로 Ubuntu 16.04의 nft 0.5와 최신 nft 1.x 모두에서 작동합니다. iptables 형태는 iptables 1.6 이상에서 작동합니다. --install-nft가 전달되지 않는 한 어떤 패키지도 설치되지 않습니다.

스크립트는 조각이 아닌 전체 예상 규칙을 검증합니다. nft의 경우 pre 체인이 정확히 우선순위 -310(또는 레거시 raw - 10 표기)에서 prerouting 훅을 가져야 하고 예상 DROP이 첫 번째 규칙이어야 합니다. iptables의 경우 iptables -C가 성공하고 정규화 후 전체 첫 번째 raw PREROUTING 규칙이 일치해야 합니다. enable은 재적용을 거부하는 대신 밀려난 규칙을 복구합니다.

통합된 출처

  • Ubuntu 보안 트래커: https://ubuntu.com/security/CVE-2026-98432
  • BTCPay Server Docker PR #1224: https://github.com/btcpayserver/btcpayserver-docker/pull/1224
  • rockstardev gist: https://gist.github.com/rockstardev/06f8ec3225cb30725444fd6c57d57f24
  • Akamai 검증/완화 스크립트: https://github.com/akamai/cve-2026-98432-validation-mitigation

Akamai의 스크립트는 아래의 평가 및 안전성 아이디어에 기여했습니다. 우리의 것이 더 엄격하고 16.04와 호환되므로 그 적용 형태는 채택되지 않았습니다. 통합된 가장 중요한 발견 사항을 우선순위 순으로 정리하면 다음과 같습니다:

  1. 정확한 패키지 증거를 동반한 패치 상태 평가. assess는 실행 중인 커널의 정확한 이미지 패키지를 확인합니다(linux-image-$KVER, 그다음 linux-image-unsigned-$KVER, 그다음 /boot/vmlinuz-$KVER의 소유자). linux-image-generic과 같은 메타패키지는 맥락으로만 표시되며 판정 증거로는 절대 사용되지 않습니다. 변경 로그 적중은 강력하지만 오류 가능성이 있는 증거입니다. 변경 로그가 없더라도 수정 릴리스 이상의 독립적으로 결정적인 깨끗한 업스트림 버전이 있으면 여전히 PATCHED가 됩니다. 증거가 없는 벤더 커널은 UNKNOWN이 됩니다.
  2. 진실된 지속성 결과. 자체 설치 실패, 유닛 쓰기/활성화/시작 실패, 또는 systemd가 없는 호스트는 규칙을 활성 상태로 유지하면서 enable이 종료 코드 4로 종료되게 합니다. status는 oneshot의 런타임 상태와 독립적으로 지속성을 평가하며 enabled-runtime을 비지속성으로 거부합니다.
  3. CIPSO/NetLabel 안전성. 감지는 삼상태입니다: detected는 기본적으로 거부하고, unknown은 경고하며, not_detected는 진행합니다. netlabelctl이 없다고 해서 CIPSO가 없다는 증거는 아닙니다.
  4. 정의된 사용 가능 백엔드 계약. check는 검증된 사용 가능, 존재하지만 미검증, 사용 불가, 알 수 없음을 구분합니다. --backend nft는 iptables가 작동하더라도 nft를 평가합니다.
  5. 불확실성을 동반한 커버리지 신호. Cilium 인터페이스, macvlan/ipvlan 링크, XDP 프로그램은 확정적인 공백이 아닌 잠재적 우회 또는 알 수 없음으로 보고됩니다. Cilium의 라우팅 모드가 중요하며, XDP_PASS는 여전히 커널 스택으로 진입합니다.
  6. 정확한 카운터와 레거시 정리. 카운터는 가능한 경우 정확한(-x) 출력을 사용하며, 이전 버전의 레거시 filter/INPUT 규칙은 raw 교체가 로드된 후 보고되고 제거됩니다.

기존 설치 업그레이드

규칙 일치와 상태 파일 형식은 하위 호환됩니다. 먼저 disable할 필요가 없습니다. 이 버전으로 enable을 다시 실행하면 규칙이 제자리에서 복구되고, 업데이트된 부팅 유닛이 설치되며, 새로운 지속성 필드가 기록됩니다. 이전 상태 파일에 persist= 줄이 없으면 status는 누락된 필드에서 실패하는 대신 유닛 상태로부터 지속성을 추론합니다.

알아두어야 할 운영상의 변경 사항:

  • 이제 enable은 규칙이 활성 상태이지만 재부팅 지속성에 실패하면 종료 코드 4로 종료됩니다. 이전에는 이 경우 0으로 종료될 수 있었습니다.
  • 이제 check는 검증된 사용 가능한 백엔드에 대해서만 0을 반환하고, 사용 가능한 백엔드가 없으면 1, 존재하지만 검증되지 않으면 4, 사용법 오류에는 2를 반환합니다.
  • assess는 새로 추가되었으며 아래에 문서화된 대로 0/1/3/4를 반환합니다.
  • CIPSO가 감지된 호스트는 이제 --ignore-cipso가 전달되지 않는 한 enable을 거부합니다.
  • 이전에 유닛을 설치했다면, 새로운 유닛 순서와 ExecStart가 적용되도록 enable을 다시 실행하십시오.

작성: 2026-10-30 (2026-10-31 업데이트) Ubuntu 트래커 확인: 2026-10-31 11:59 UTC (페이지 최종 업데이트 2026-10-30). 아직 수정된 커널이 출시되지 않았습니다. 범위: Linux 서버, 주로 Ubuntu 16.04 (xenial), 22.04 (jammy), 24.04 (noble), 26.04 (resolute), Docker/BTCPay 호스트 포함. 산출물: 이 디렉터리의 cve-2026-98432-mitigate.sh. 테스트 환경: Ubuntu 16.04, 22.04, 24.04, 26.04.


1. 핵심 요약

  • CVE-2026-98432는 Linux 커널 IPv4 TCP 핸드셰이크의 use-after-free로, 커널 CNA가 9.8 Critical로, Ubuntu가 High로 평가했습니다.
  • 수신 SYN에 IP 옵션이 포함되어 있을 때 모든 IPv4 TCP 리스너에서 도달 가능합니다. 공격자가 IP 옵션의 존재 여부를 제어하므로 일반 클라이언트도 트리거할 수 있습니다.
  • 실질적인 수정은 패치된 커널입니다. 2026-10-31 11:59 UTC 확인 결과: Ubuntu는 16.04, 22.04, 24.04, 26.04에 대해 아직 수정된 커널을 게시하지 않았습니다. 트래커(최종 업데이트 2026-10-30)는 현재 24.04 커널(6.8.0-149.149), 22.04(5.15.0-203.213), 26.04(7.0.0-43.43), 26.10(7.3.0-10.10)에 대해 여전히 "vulnerable work in progress"라고 표시합니다.
  • 그때까지 올바른 임시 조치는 방화벽에서 IP 옵션을 포함한 인바운드 IPv4 TCP 패킷을 드롭하는 것입니다. 두 참조 완화책 모두 nftables로 정확히 이 작업을 수행합니다. 제공된 스크립트는 동일한 일치에 대해 nftables 또는 iptables를 사용할 수 있으며, nftables를 요구하지 않고 기본적으로 아무것도 설치하지 않습니다.
  • 기본 3.13 커널을 사용하는 Ubuntu 14.04는 영향을 받지 않습니다; 취약한 request-socket 경로는 Linux 4.4와 함께 도입되었습니다. HWE 커널을 실행하는 Ubuntu 14.04 호스트는 별도로 확인해야 합니다(4.4 기반 HWE 커널은 영향을 받음). Ubuntu 16.04 / 4.4는 영향을 받습니다. 모든 최신 Ubuntu LTS가 영향을 받습니다.
  • 지금 16.04, 22.04, 24.04, 26.04 호스트에 필터를 적용하고 모니터링하며, Ubuntu가 수정되었다고 표시하는 커널로 재부팅한 후에만 제거하십시오.
  • 16.04는 표준 지원과 ESM이 종료되었습니다. Ubuntu Pro Legacy Support의 적용을 받지 않는 한 커널 수정이 제공되지 않을 수 있으므로, 필터를 유지하거나 호스트를 업그레이드할 계획을 세우십시오.

2. 취약점이란 무엇인가

Ubuntu 설명에서:

  • tcp_v4_syn_recv_sock()는 ireq->ireq_opt의 소유권을 복사하지 않고 자식 소켓(newinet->inet_opt)으로 이전합니다.
  • 다른 CPU가 동일한 요청 소켓에 대한 재전송된 SYN을 처리하고 tcp_check_req()에서 SYNACK을 보낼 수 있습니다. tcp_v4_send_synack()과 inet_csk_route_req()는 rcu_read_lock() 아래에서만 ireq->ireq_opt를 읽습니다.
  • 요청 소켓이 리스너 락 없이 처리되기 때문에(커밋 079096f103fa), SYNACK이 아직 생성되는 중에 자식 소켓이 해제될 수 있습니다. TCP 자식 소켓에는 SOCK_RCU_FREE가 없으며, inet_sock_destruct()는 inet_opt를 일반 kfree()로 해제하므로 ip_options_build()에서 use-after-free가 발생합니다.
  • 요청 소켓 마이그레이션(net.ipv4.tcp_migrate_req=1 또는 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE 프로그램)과 관련된 두 번째 변형도 존재합니다. inet_reqsk_clone()이 ireq_opt를 공유하며, tcp_v4_reqsk_destructor() 역시 일반 kfree()를 사용합니다.
  • 수정 방법은 inet_sock_destruct()와 tcp_v4_reqsk_destructor()에서 kfree_rcu()를 사용하는 것입니다.
  • IPv6는 tcp_v6_syn_recv_sock()이 옵션을 복제하기 때문에 첫 번째 문제의 영향을 받지 않습니다. IPv6 마이그레이션/CALIPSO 문제는 별도의 패치에서 처리되고 있습니다.

실질적 노출 범위: IPv4 TCP 서비스를 실행하는 모든 호스트 — SSH, 웹, Docker로 게시된 포트, BTCPay, Lightning 등 — 가 도달 가능합니다. 트리거는 IP 헤더 길이가 5보다 큰 SYN(즉, IP 옵션이 존재하는 경우)입니다. 일반적인 TCP 옵션(MSS, 윈도우 스케일, SACK, 타임스탬프)은 IP 옵션이 아니며 영향을 받지 않습니다.


3. 영향을 받는 커널 및 Ubuntu 상태

3.1 Ubuntu 트래커 스냅샷 (2026-10-31 11:59 UTC 확인, 페이지 최종 업데이트 2026-10-30)

영향을 받는 어떤 Ubuntu 릴리스에도 수정된 커널이 게시되지 않았습니다. 아래 상태는 이전 확인 시점과 동일합니다.

릴리스커널 라인Ubuntu 상태
26.10 stonking7.3취약, 7.3.0-10.10에서 수정 작업 진행 중
26.04 LTS resolute7.0취약, 7.0.0-43.43에서 수정 작업 진행 중
24.04 LTS noble6.8취약, 6.8.0-149.149에서 수정 작업 진행 중
24.04 HWE 6.17 / 7.06.17 / 7.0취약
22.04 LTS jammy5.15취약, 5.15.0-203.213에서 수정 작업 진행 중
22.04 HWE 6.86.8취약, 6.8.0-149.149~22.04.1에서 수정 작업 진행 중
20.04 LTS focal5.4취약
18.04 LTS bionic4.15취약
16.04 LTS xenial4.4취약
14.04 LTS trusty3.13 (기본)영향 없음; HWE 커널은 영향을 받을 수 있음

클라우드 및 파생 커널(aws, azure, gcp, gke, oracle, ibm, nvidia, lowlatency 등)도 취약 또는 수정 진행 중으로 나열되어 있습니다. 실행 중인 특정 커널 패키지를 확인하십시오. 트래커에 각각이 나열되어 있습니다.

3.2 영향을 받지 않는 이전 커널

도구 다운로드