
CVE-2026-98432(Linux 커널 TCP use-after-free)에 대한 비파괴 검사기: 패치 상태, 노출된 리스너 및 완화 조치 검증. By OMNIVERSE.
영어 | 튀르키예어
CVE-2026-98432(Linux 커널 IPv4 TCP use-after-free)를 위한 비파괴 검증 도구
OMNIVERSE Siber Güvenlik ve Bilişim A.Ş. tarafından geliştirilmiştir.
omnicheck-98432는 시스템의 어떤 것도 변경하지 않고 취약점을 트리거하지도 않으면서 Linux 시스템의 CVE-2026-98432 노출 여부를 판별합니다:
[::] 소켓과 컨테이너 네트워크 네임스페이스를 포함합니다net.mptcp.enabled 및 net.ipv4.tcp_migrate_req를 확인합니다한 줄 판정, 종료 코드 및 JSON 보고서를 출력합니다.
경쟁 조건을 트리거하지 않고, SYN 재전송을 보내지 않으며, 메모리를 손상시키지 않고, 권한 상승을 시도하지 않으며, 어떤 설정도 변경하지 않습니다. 포트당 최대 3개의 단일 SYN 패킷만 전송합니다.
python3 omnicheck-98432.py selftest # SELFTEST_OK
sudo python3 omnicheck-98432.py local --namespaces # on the target server
임시 완화 조치가 적용된 Ubuntu 24.04 서버에서의 local 실행 예시(호스트 이름과 IP는 익명화됨):

판정 줄:
SONUÇ VULNERABLE_MITIGATED Zafiyetli çekirdek; geçici önlem aktif, dağıtım yaması çıkınca güncelleyip yeniden başlatın
보고서는 터키어로 출력되며, 판정 코드(PATCHED, VULNERABLE_MITIGATED, ...), JSON 필드 이름, --help 및 소스 주석은 영어로 되어 있습니다.
| 모드 | 실행 위치 | 생성 결과 |
|---|---|---|
local | 대상 Linux 서버 (sudo) | 패치 상태, 리스너, MPTCP, 완화 조치, 한 줄 판정 |
probe | 스캔 머신 (root + scapy) | 트리거 패킷 클래스 및 MPTCP 협상의 도달 가능성; 대상은 HOST[:PORTS] 또는 CIDR[:PORTS] 형식으로 지정하며, 일정 간격으로 나누어 전송 |
capture | 대상 서버 (sudo) | 수신 SYN의 수동 기록 (IPv4 옵션, MPTCP) |
audit | 스캔 머신 (root + scapy + SSH) | 한 번의 실행으로 local + capture + probe 수행, 패킷 상관 증거 수집 |
combine | 어디서나 | 여러 JSON 보고서를 하나의 표로 병합 |
selftest | 어디서나 | 오프라인 파서 테스트 |
probe를 실행할 위치probe는 어디서든 동작하지만, IP 옵션 결과는 대상까지의 경로가 IP 옵션을 필터링하지 않을 때만 확정적입니다. 많은 인터넷 경로(ISP, CGNAT, 클라우드 엣지)는 IP 옵션이 포함된 패킷을 조용히 드롭합니다. 그러한 지점에서 TCP_REACHABLE_IPOPT_NO_REPLY는 "호스트 완화 조치가 동작한다"는 의미가 아니라 "패킷이 통과하지 못했다"는 의미입니다. 확정적인 답을 얻으려면 대상과 동일한 네트워크(DMZ, 관리 네트워크, 점프 호스트)에서 probe를 실행하거나, 대상에서 capture와 함께 사용하십시오(audit는 이를 자동으로 수행합니다).
sudo python3 omnicheck-98432.py probe 10.0.0.0/24:22,443 --output dmz.json # one /24, two ports
sudo python3 omnicheck-98432.py probe --targets-file scope.txt --ports 22 # file: HOST or CIDR per line
엔드포인트는 확인된 IP와 포트를 기준으로 중복 제거됩니다. 실행당 최대 8192개 엔드포인트, 기본 초당 50패킷(--rate)입니다.
| 코드 | 의미 |
|---|---|
| 0 | 패치됨 또는 영향 없음 |
| 1 | 취약하며 보호되지 않음 |
| 2 | 취약하며 임시 완화 조치 활성 |
| 3 | 판정 불가 또는 도구 오류 |
| 판정 | 의미 |
|---|---|
PATCHED | 변경 로그, 라이브패치 또는 업스트림 버전이 수정 사항을 확인함 |
NOT_AFFECTED | 4.4보다 오래된 커널 (예: RHEL 7) |
VULNERABLE_NO_LISTENER | 취약한 커널, 비루프백 IPv4 TCP 리스너 없음 |
VULNERABLE_MITIGATED | 취약한 커널, IPv4 옵션 드롭 규칙 활성 |
VULNERABLE_EXPOSED | 취약한 커널, 리스너 존재, 완화 조치 없음 |
VULNERABLE_MITIGATED_VERIFIED | (audit) 완화 조치 활성 및 외부 테스트로 확인됨 |
VULNERABLE_TRIGGER_PATH_OPEN | (audit) IPv4 옵션이 포함된 SYN에 응답함; 트리거 경로에 도달 가능 |
CRITICAL_MPTCP_REMOTE | (audit) 취약한 커널이며 외부에서 MPTCP 협상이 수락됨 |
probe, audit): Python 3.8+, root, scapy (pip3 install scapy), OpenSSH 클라이언트.RHEL 8 / Rocky 8의 기본 python3는 3.6입니다. 해당 시스템에서는 python3.9 또는 python3.11을 사용하십시오.
모든 모드, 매개변수, 판정 및 시나리오를 다루는 전체 가이드:
이 도구는 서면으로 테스트 권한을 부여받은 시스템에서만 사용하십시오. probe 및 audit 모드는 원시 패킷을 전송하며 IDS/IPS 경보를 유발할 수 있으므로 테스트 전에 관련 보안 팀에 알리십시오. 이 도구는 익스플로잇이 아니며 익스플로잇 가능성을 입증하지 않습니다.
OMNIVERSE 사이버 보안 및 정보 기술 주식회사 · omni-verse.io · [email protected]