
CVE-2026-98432에 대한 임시 nftables 완화 조치, 자동 롤백 및 러시아어 관리자 가이드. 커널 패치가 아님.
Linux 서버 임시 보호: 좁은 IPv4 TCP 필터, 상태 검사, 백업 및 롤백. 감사는 커널 수정과 필터 동작을 분리합니다.
Audit: работающее ядро → пакет → основание → UNKNOWN при нехватке данных
Protection: inet + bridge → строгая проверка → откат через 180 секунд
Validation: обычный TCP / IP options / UDP в отдельном namespace
Monitoring: проверка по таймеру → журнал ошибок, без изменения firewall
이것은 커널 패치가 아니며 모든 악용 변형의 제거를 보장하지도 않습니다. 스크립트는 CVE-2026-98432 경로의 알려진 IPv4 TCP/IP-options에 대해 좁은 네트워크 필터를 설치합니다. 최종 수정은 바로 이 CVE에 대한 수정이 확인된 커널과 그 커널로의 부팅입니다.
권장 사항의 최신성은 2026년 11월 1일에 확인되었습니다. 적용 전에 사용 중인 배포판 제조사의 최신 상태를 확인하십시오.
Anthropic의 데모에서는 MPTCP listener가 사용되었습니다. Go Security Team은 경고합니다: 오류 자체는 커널의 공통 IPv4 TCP 코드에 있으므로 MPTCP 소켓이 없다고 해서 안전이 입증되지는 않습니다. GODEBUG=multipathtcp=0은 알려진 공격 경로에 대한 추가 제한일 뿐, 커널 수정을 대체하지 않습니다.
이 스크립트는 MPTCP를 변경하지 않고, 업데이트를 설치하지 않으며, 애플리케이션을 재시작하지 않고, 서버를 재부팅하지 않습니다. 필터는 이미 열려 있는 리스너에도 작동합니다.
두 개의 별도 nftables 테이블:
inet cve_2026_98432_guard: IP 헤더 길이가 20바이트를 초과하는 IPv4 TCP 패킷;bridge cve_2026_98432_guard: 브리지에서의 동일한 패킷.나머지 트래픽은 기존 규칙으로 계속 전달됩니다. 전체 flush ruleset은 없으며, Docker/Kubernetes/SSH 및 기타 서비스의 규칙은 대체되지 않습니다.
이것은 TCP options가 아닌 IPv4 options에 대한 필터링입니다. 일반적인 TCP timestamps, window scaling, SACK 및 표준 SSH/HTTPS 연결은 이 조건으로 차단되지 않습니다. IPv4 options가 있는 정상적인 TCP 트래픽도 폐기됩니다: 네트워크 요구 사항을 확인하십시오.
Linux, root, nft, Python 3.8+, Bash 및 systemd, 그리고 커널의 nftables inet/bridge 지원이 필요합니다. 스크립트는 배포판의 firewall 서비스를 활성화하지 않고 의존성을 설치하지 않습니다. --check 검사는 적용 전에 필요한 기능의 부재를 식별합니다.
서버 정책에 부합하는 경우, 누락된 도구 설치 예시:
# Debian / Ubuntu:
sudo apt-get install nftables python3
# RHEL / Rocky / AlmaLinux:
sudo dnf install nftables python3
OpenWrt, RouterOS, BSD, Windows, 구형 NAS, root/CAP_NET_ADMIN이 없는 컨테이너 및 systemd가 없는 시스템은 이 설치 프로그램으로 지원되지 않습니다. 이러한 시스템에는 제조사별 개별 지침이 필요합니다. 이 스크립트를 범용 취약점 스캐너로 간주해서는 안 됩니다. 수동 프로필 Alpine/WSL의 경우 별도 지침을 참조하십시오.
bash mitigate.sh --audit
sudo bash mitigate.sh --audit --json
Аудит는 메타데이터와 설정만 읽습니다. 네트워크를 스캔하지 않고, 익스플로잇을 실행하지 않으며, 업데이트를 다운로드하지 않고, firewall을 변경하지 않습니다. root 없이는 일부 결과가 UNKNOWN이 됩니다. 보고서에는 인터페이스 이름과 PID가 포함될 수 있으므로 게시 전에 익명화하십시오.
| JSON 필드 | 의미 |
|---|---|
patch.state | 실행 중인 커널에 대한 PATCHED, VULNERABLE 또는 UNKNOWN |
enforcement.enforcement | 두 테이블이 정확히 일치할 때만 ACTIVE_VERIFIED |
persistence.state | CONFIGURED — unit이 활성화됨; 실제 reboot으로는 검증되지 않음 |
coverage.state | PARTIAL_OR_UNKNOWN: namespaces/CNI/NetLabel은 별도 분석 필요 |
rollback_timer, monitor_timer | 자동 롤백 및 선택적 모니터링 상태 |
schema_version: 1. --audit의 종료 코드 0은 보고서 수집이 완료되었음을 의미하며, 취약점이 없음을 의미하지 않습니다. 독립적인 필드와 reason을 확인하십시오.
Patch assessment는 실행 중인 커널을 정확한 패키지와 대조합니다. 내장 vendor-baselines는 01.11.2026 기준으로 Debian 12/13에 대해서만 검증되었습니다: linux 6.1/6.12 및 bookworm linux-6.12. 이는 Debian tracker를 기반으로 합니다. 다른 브랜치, Ubuntu, WSL 및 검증되지 않은 배포판의 경우 결과는 UNKNOWN으로 남으며, uname 번호나 changelog의 CVE 언급 하나로부터 추론되지 않습니다. 알려진 vendor trackers의 경우 보고서에 링크가 포함됩니다. 이는 패키지 메타데이터에 대한 신뢰이며 바이너리 인증이 아닙니다; custom kernels와 livepatch는 별도로 검증됩니다.
Аудит는 32개의 보이는 netns로 제한됩니다: MPTCP 리스너 수를 표시하지만 namespaces 커버리지를 증명하지는 않습니다. 충분한 데이터가 없으면 CIPSO는 UNKNOWN으로 남습니다; netlabelctl의 부재가 labeling의 부재를 증명하지는 않습니다.
먼저 코드를 다운로드하고 읽으십시오. curl | sudo bash를 사용하지 마십시오.
git clone https://github.com/ZombiePm/cve-2026-98432-mitigation.git
cd cve-2026-98432-mitigation
less mitigate.sh
sudo bash mitigate.sh --check
sudo bash mitigate.sh --apply
NetLabel/CIPSO 또는 MLS 정책이 감지되면 적용은 설치 변경 전에 중지됩니다. 호환성 분석 후 위험에 대한 명시적 확인:
sudo bash mitigate.sh --apply --accept-ipv4-options-risk
이 플래그는 IP options가 포함된 정상 트래픽을 위반할 위험을 감수하는 것이며,
보호를 확장하는 것이 아닙니다. labeling 징후가 발견되지 않으면 호환성은
여전히 UNKNOWN으로 표시됩니다.
--apply 이후에는 180초 후 자동 롤백이 적용됩니다.
현재 터미널을 유지하십시오. 서버에 새 SSH 연결을 열고
외부에서 중요 서비스를 확인하십시오: VPN, 웹사이트, API, 메일, 클러스터 통신.
모든 것이 정상 작동하면, 새 연결에서:
cd cve-2026-98432-mitigation
sudo bash mitigate.sh --status
sudo bash mitigate.sh --confirm
--confirm은 롤백 타이머를 취소합니다. 이것이 없으면 보호 기능이 자동으로 제거됩니다.
확인 후 systemd는 다음 서버 부팅 시 필터를 로드합니다.
확인 또는 수동 롤백 전에 서버를 재시작하지 마십시오.
한 번에 하나의 노드에 적용하십시오. Kubernetes 및 클러스터의 경우 먼저 연결이 유지되는지 확인한 후 다음 노드로 넘어가십시오.
sudo bash mitigate.sh --status
sudo nft list table inet cve_2026_98432_guard
sudo nft list table bridge cve_2026_98432_guard
systemctl status cve-2026-98432-guard.service
journalctl -u cve-2026-98432-guard.service --no-pager
packets 0 카운터는 일치하는 패킷이 없음을 의미하며, 보호 기능이 없다는 뜻이 아닙니다.
MPTCP를 사용하는 프로그램을 별도로 확인:
sudo ss -Mlnp
-t를 추가하지 마십시오. MPTCP만 보고 싶다면 일반 TCP 소켓이 샘플에 포함되기 때문입니다. MPTCP 출력이 비어 있더라도 CVE가 해결되었음을 확인하는 것은 아닙니다.
재부팅 및 방화벽의 모든 변경/재로드 후 --status를 다시 실행하십시오.
전체 flush ruleset을 수행하는 다른 관리자나 방화벽 관리자가 이 테이블들을 삭제할 수 있습니다. 그런 경우 먼저 관리 구성부터 확인하십시오. 저장된 필터를 다시 로드하려면:
sudo systemctl restart cve-2026-98432-guard.service
새 SSH 연결에서 확인한 후 --confirm을 실행하면:
sudo bash mitigate.sh --watch-enable
systemctl status cve-2026-98432-check.timer
journalctl -u cve-2026-98432-check.service --no-pager
sudo bash mitigate.sh --watch-disable
타이머는 60초마다 엄격한 --status를 실행하며, 부팅 후 첫 검사는 2분 뒤에 이루어집니다. 이 타이머는 규칙을 복원하지 않고, sysctl을 변경하지 않으며, 외부 알림을 보내지 않습니다. failed unit을 자체 모니터링에 연결하십시오. 검사 사이에는 필터가 없는 간격이 생길 수 있으며, 이는 연속적인 보호가 아닙니다. --rollback은 이 타이머도 비활성화합니다.
sudo bash mitigate.sh --rollback
Команда останавливает таймер, отключает unit и удаляет только две собственные таблицы. Конфигурационные файлы и резервные копии остаются для проверки. До установки исправленного ядра откат возвращает риск эксплуатации.
При необходимости вручную:
sudo systemctl stop cve-2026-98432-rollback.timer
sudo systemctl disable --now cve-2026-98432-guard.service
sudo nft delete table inet cve_2026_98432_guard
sudo nft delete table bridge cve_2026_98432_guard
/etc/cve-2026-98432.nft — 이 보호 기능의 규칙만 포함;/usr/local/sbin/cve-2026-98432-guard — 로더/롤백;/usr/local/sbin/cve-2026-98432-admin — 제어용으로 설치된 CLI 사본;/var/lib/cve-2026-98432-guard/audit.py — 읽기 전용 감사 컴패니언;/etc/systemd/system/cve-2026-98432-check.{service,timer} — --watch-enable 이후에만 생성;/etc/systemd/system/cve-2026-98432-guard.service — 자동 시작;/var/lib/cve-2026-98432-guard/backup-* — 이전 자체 파일 및 테이블.저장소의 guard.nft는 내장 규칙의 가독성 있는 사본입니다. mitigate.sh는
설치 및 엄격한 규칙 검증에 자체 충분하며, 추가 감사는 audit.py에 구현되어
있습니다. 런타임 로더는 /etc에 설치된 파일을 사용합니다.
netlabelctl 유틸리티의 부재는 labeling의 부재를 증명하지 않습니다.uname -r을 확인하십시오.2026년 10월 30일 기준으로 Canonical은 여전히 여러 Ubuntu kernel flavor를 취약/작업 진행 중(work in progress)으로 표시하고 있었습니다. 더 새로운 번호만을 위해 운영 서버에 임의의 mainline 커널을 설치하지 마십시오.