
로컬 커널 버전 검사기, 원격 MPTCP 기능 프로브, 그리고 Linux 커널 IPv4 TCP use-after-free(CVSS 9.8) 노출 여부를 평가하기 위한 대화형 스캔 및 프로브 CLI입니다.
CVE-2026-98432 노출 여부를 탐지하기 위한 도구 — 커널 4.4부터 수정 전 안정 브랜치까지 영향을 미치는 Linux 커널 IPv4 TCP use-after-free 취약점(CVSS 9.8)입니다.
| 파일 | 용도 | 요구 사항 |
|---|---|---|
check-cve-2026-98432.sh | 로컬 커널 버전 확인 — 패치됨/취약함 판별 | 셸 접근 (SSH/콘솔) |
probe-mptcp.py | 원격 MPTCP 기능 프로브 — 입증된 익스플로잇 벡터 탐지 | Python 3.9+, 프로브 실행 호스트의 Linux 커널 ≥ 5.6 |
scan-and-probe.sh | nmap 포트 탐색을 MPTCP 프로브와 연결 | nmap + 위 항목 |
chmod +x check-cve-2026-98432.sh
./check-cve-2026-98432.sh
종료 코드: 0 패치됨, 1 취약함, 2 재부팅 또는 수동 확인 필요.
단일 호스트, 포트를 알고 있는 경우:
python3 probe-mptcp.py <HOST> <PORT> [PORT ...]
python3 probe-mptcp.py 192.168.1.1 22 443 5060
단일 호스트, nmap으로 열린 모든 TCP 포트 자동 탐색:
python3 probe-mptcp.py <HOST> $(nmap -Pn --open -p- <HOST> -oG - | grep -oP '\d+/open/tcp' | cut -d/ -f1 | tr '\n' ' ')
두 개의
<HOST>를 모두 대상 IP로 바꾸십시오.
여러 호스트:
chmod +x scan-and-probe.sh
./scan-and-probe.sh <HOST1> <HOST2> <HOST3>
uname -r을 안정 브랜치별 최초 수정 버전과 비교합니다.net.mptcp.enabled 및 활성 MPTCP 리스너)를 보고합니다.표준 MPTCP 요청 TCP 연결을 열고 서버가 MPTCP를 협상했는지 또는 일반 TCP로 폴백했는지 확인합니다.
PLAIN-TCP — 서버가 MPTCP를 협상하지 않음; 입증된 루트 익스플로잇 벡터가 없음.MPTCP-ACTIVE — 서버가 MPTCP를 협상함; 노출 벡터가 존재함.CLOSED — 포트가 필터링되었거나 거부됨.안전: IP 옵션 없음, 재전송/경쟁 없음, 익스플로잇 트리거 없음. MPTCP 기능 플래그를 사용한 일반 TCP 핸드셰이크입니다.
한계: PLAIN-TCP가 패치되었음을 의미하지는 않습니다. 입증된 벡터가 닫혔다는 의미입니다. 근본적인 경쟁 조건은 일반 IPv4 TCP에 존재하며, 커널 버전만이 수정 여부를 확인합니다.
| 브랜치 | 최초 수정 버전 |
|---|---|
| 5.10.x | 5.10.272 |
| 5.15.x | 5.15.223 |
| 6.1.x | 6.1.190 |
| 6.6.x | 6.6.159 |
| 6.12.x | 6.12.113 |
| 6.18.x | 6.18.56 |
| 7.2.x | 7.2.10 |
| 7.3+ | 릴리스 시 수정됨 |
sysctl -w net.mptcp.enabled=0
echo 'net.mptcp.enabled=0' > /etc/sysctl.d/90-disable-mptcp.conf
sysctl --system
이 명령은 커널 전체에서 MPTCP를 비활성화하여 입증된 루트 익스플로잇 경로를 차단합니다. 재부팅이 필요하지 않으며 재부팅 후에도 유지됩니다. 대부분의 서비스는 MPTCP를 사용하지 않으므로 기능적 영향은 없습니다.
MIT