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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-98432-mitigation — Debian/Ubuntu 커널의 CVE-2026-98432 취약점을 감사하고 지속적인 nftables 및 sysctl 완화 조치를 적용한 후, 커널 업그레이드 및 롤백을 안내합니다. | Kitploit
도구/GitHubGitHub/igreklg/cve-2026-98432-mitigation
Defensive ToolsVulnerability AnalysisScripting & AutomationConfiguration AuditingNetwork SecurityMisconfigurationIncident Response
GitHubigreklg/cve-2026-98432-mitigation

cve-2026-98432-mitigation

Debian/Ubuntu 커널의 CVE-2026-98432 취약점을 감사하고 지속적인 nftables 및 sysctl 완화 조치를 적용한 후, 커널 업그레이드 및 롤백을 안내합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-98432: Debian / Ubuntu 감사 및 임시 보호

스크립트는 커널이 CVE-2026-98432(IPv4 TCP 처리의 use-after-free, CVSS 9.8)에서 수정되었는지 확인합니다. 커널이 수정되지 않은 경우 즉시 임시 보호를 활성화하고 커널 업데이트 설치를 돕습니다.

보호는 위험을 줄이지만 취약점을 제거하지는 않습니다. 완전한 해결책은 하나뿐입니다: 수정된 커널을 설치하고 재부팅하는 것입니다. Red Hat의 평가에 따르면 IP 옵션이 포함된 패킷 필터링이 익스플로잇을 완전히 배제하지는 못합니다.

취약점 정보

  • 오류 위치. TCP 연결을 설정할 때 tcp_v4_syn_recv_sock()은 ireq_opt를 복사하지 않고 자식 소켓에 전달하며, inet_sock_destruct()는 이를 일반 kfree()로 해제합니다. 이 시점에 다른 CPU 코어에서 처리 중인 반복 SYN은 ip_options_build()에서 이미 해제된 메모리에 접근합니다.
  • 공격 가능 대상. 열린 TCP 포트에 접근할 수 있는 모든 노드, 인증 없이 가능합니다. 공격에는 IPv4 Record Route 또는 Timestamp 옵션이 포함된 SYN이 필요합니다.
  • 두 번째 취약 경로. 리스닝 소켓 간 요청 마이그레이션: net.ipv4.tcp_migrate_req=1 또는 BPF 프로그램 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.
  • MPTCP의 역할. 공개된 익스플로잇은 MPTCP 리스너를 공격합니다. Go 1.24+ 프로그램은 기본적으로 MPTCP를 통해 리스닝합니다. 그러나 오류 자체는 MPTCP에 국한되지 않습니다.
  • 영향받는 버전. 4.4부터의 커널. 업스트림 수정: ipv4: free inet_opt and ireq_opt after an RCU grace period (e3f33b0a1d89).
stable 브랜치수정된 버전
5.105.10.272
5.155.15.223
6.16.1.190
6.66.6.159
6.126.12.113
6.186.18.56
7.27.2.10
mainline7.3

2026년 11월 2일 기준 배포판 상태:

  • Debian 12: linux 6.1.190-1(DLA-4841-1) 및 linux-6.12 6.12.113-1~deb12u1(DLA-4850-1)에서 수정됨.
  • Debian 13: linux 6.12.113-1(DSA-6568-1)에서 수정됨.
  • Ubuntu 22.04, 24.04 이상: 수정 사항이 아직 출시되지 않음. Ubuntu 16.04–20.04: 취약한 것으로 표시되며 수정 사항이 없음.

스크립트가 하는 일

  1. 감사. 실행 중인 커널과 설치된 각 커널이 수정되었는지 판별합니다(«수정 여부 판별 방법» 섹션 참조).
  2. 커널이 수정되지 않은 경우의 보호. 첫 단계에서 활성화됩니다: 네트워크 없이, 질문 없이, 그리고 apt에 대한 어떠한 접근보다도 먼저.
    • prerouting 훅에서 raw 우선순위(−300)로, 즉 커널이 옵션을 파싱하기 전에 IP 옵션이 있는(IHL > 5) 수신 IPv4 TCP 패킷을 폐기합니다. nftables를 사용하며, 사용할 수 없는 경우 u32 모듈이 있는 iptables를 사용합니다.
    • net.mptcp.enabled = 0으로 설정합니다. 이미 열려 있는 MPTCP 소켓은 이때에도 MPTCP로 유지되므로, 스크립트는 해당 서비스를 재시작할 수 있도록 이들을 나열합니다.
    • 값이 1이었던 경우 net.ipv4.tcp_migrate_req = 0으로 설정합니다.
    • 보호를 영구적으로 만듭니다: systemd 유닛, nftables / netfilter-persistent / firewalld 재부팅 후 재적용, 그리고 5분마다 타이머로 확인.
  3. 커널 업데이트. 업데이트를 검색하고 메타패키지가 아닌 특정 새 커널에 수정 사항이 있는지 확인합니다. 그런 다음 설치를 제안하며 기본값은 «예»입니다. 해당 커널에서 수정이 확인되지 않더라도 커널 업데이트를 권장합니다: 다른 취약점들을 해결하기 때문입니다.
  4. 결과. 시스템에서 다시 읽어온 실제 상태를 출력하고 명확한 반환 코드로 종료합니다.

실행 중인 커널이 이미 수정되었다면 스크립트는 아무것도 변경하지 않으며 이전에 활성화한 보호를 해제하는 방법을 안내합니다.

요구 사항

  • Debian 11/12/13, Ubuntu 20.04/22.04/24.04 및 파생 배포판. Ubuntu Pro가 없는 Debian 11 및 Ubuntu 20.04는 더 이상 커널 수정 사항을 받지 못합니다: 해당 시스템에서는 스크립트가 보호를 활성화하지만 업데이트를 찾지 못합니다.
  • root 권한.
  • nftables(권장) 또는 iptables. 영구 보호에는 systemd가 필요합니다.

사용법

git clone https://github.com/IgrekLg/cve-2026-98432-mitigation.git
cd cve-2026-98432-mitigation
sudo bash mitigate-cve-2026-98432.sh            # аудит, защита, предложение обновить ядро
sudo bash mitigate-cve-2026-98432.sh --status   # только посмотреть, ничего не меняя
키동작
--status상태만 표시
--uninstall보호를 해제하고 원래 sysctl 값으로 복원 (커널이 패치되지 않은 경우 확인을 요청)
-y, --yes질문 없이: 커널 업데이트 설치, --uninstall 확인
--no-upgradeapt에 접근하지 않음: 감사 및 보호만 수행
--force커널이 이미 패치되었더라도 보호 활성화
--keep-mptcpMPTCP를 비활성화하지 않음
--keep-tcp-migratenet.ipv4.tcp_migrate_req를 건드리지 않음

터미널이 없고(Ansible, cron, -t 없는 ssh) --yes가 지정되지 않은 경우에도 보호는 활성화되며, 커널 설치 단계는 안내 메시지와 함께 건너뜁니다.

반환 코드

코드의미
0실행 중인 커널이 패치되었거나 영향을 받지 않음
3커널이 패치되지 않았고 보호가 활성 상태: 업데이트와 재부팅 필요
4커널이 패치되지 않았고 보호가 비활성 상태
1오류
2잘못된 인수

Ansible 예시:

- name: CVE-2026-98432 mitigation
  ansible.builtin.script: mitigate-cve-2026-98432.sh --yes
  register: cve
  failed_when: cve.rc not in [0, 3]
  changed_when: false

커널의 수정 여부 판별 방법

검사는 다음 순서로 진행됩니다:

  1. 커널 패키지의 changelog. 여기에 CVE-2026-98432 또는 수정 커밋의 제목이 언급되어 있으면 커널은 수정된 것입니다.
  2. 6.1.190-1 형태의 버전을 사용하는 Debian 및 파생 배포판. 버전의 업스트림 부분을 위 표와 비교합니다. Debian은 stable 업데이트를 통해 수정 사항을 받으며, changelog에 CVE 번호가 항상 명시되는 것은 아닙니다.
  3. Ubuntu. 버전 번호(5.15.0-NNN)는 stable 브랜치를 반영하지 않으므로, changelog로만 커널이 수정된 것으로 간주합니다. changelog가 없으면 상태는 "수정 확인되지 않음"이 되며 보호가 활성화됩니다. 추가로 pro fix CVE-2026-98432 --dry-run이 출력됩니다.
  4. 패키지가 아닌 커널 (mainline 또는 자체 빌드): uname -r의 버전을 비교합니다. 후보 커널(-rc)은 알 수 없는 것으로 간주합니다.

수정된 버전 표는 스크립트에 내장되어 있습니다(FIXED_IN, 2026-11-02 기준 데이터). 자체 커널을 사용하는 파생 배포판(Proxmox 등)의 경우 벤더 공지를 확인하십시오.

설치되는 항목

경로용도
/usr/local/sbin/cve-2026-98432-fw도우미: apply / ensure / remove / check
/etc/cve-2026-98432/mitigation.nftnftables 규칙 (테이블 ip cve_2026_98432)
/etc/systemd/system/cve-2026-98432-mitigation.service부팅 시 network-pre.target 이전에 규칙 적용
/etc/systemd/system/cve-2026-98432-mitigation-check.{service,timer}5분마다 검사하여 누군가 규칙을 삭제한 경우 복원 (syslog에 기록)
/etc/systemd/system/{nftables,netfilter-persistent,firewalld}.service.d/50-cve-2026-98432.conf해당 서비스가 규칙을 (재)로드한 후 다시 적용; 설치된 서비스에 대해서만 생성됨
/etc/sysctl.d/99-zz-cve-2026-98432.confsysctl; /etc/sysctl.conf 이후에 파일이 읽히도록 이름이 선택됨
/var/lib/cve-2026-98432/sysctl.orig--uninstall을 위한 원래 sysctl 값

이전 버전 스크립트의 파일(mitigate-CVE-2026-98432.service, 99-CVE-2026-98432.conf 및 중복된 iptables 규칙)은 자동으로 삭제됩니다.

부작용 및 제한 사항

  • IP 옵션이 포함된 패킷. 옵션이 있는 모든 수신 IPv4 TCP 패킷은 폐기됩니다. 인터넷에서는 이런 패킷이 거의 나타나지 않지만, CIPSO 레이블이 있는 네트워크(SELinux MLS, labeled networking)는 작동을 멈추게 됩니다. 이러한 호스트에서는 스크립트를 실행하지 마십시오. MPTCP를 수동으로 비활성화하고 커널을 업데이트하십시오.
  • IPv4 전용. 주요 IPv6 오류에는 영향을 미치지 않습니다. tcp_v6_syn_recv_sock()는 옵션을 복사합니다.
  • BPF를 통한 마이그레이션. 스크립트는 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE 프로그램을 탐지할 수 없으므로 수동으로 확인하십시오.
  • 보호되지 않는 구간. systemctl stop nftables(또는 서비스 외부에서의 모든 nft flush ruleset) 이후 규칙은 즉시가 아니라 타이머에 따라 5분 이내에 복원됩니다.
  • Go 서비스. Go 프로그램의 경우 추가로 GODEBUG=multipathtcp=0을 설정할 수 있습니다. Go 보안팀은 프로그램별 MPTCP 비활성화를 신뢰할 수 없는 조치라고 밝히고 있습니다.

보호 해제

수정된 커널로 재부팅한 후:

sudo bash mitigate-cve-2026-98432.sh --uninstall

테스트

# логика определения версий, без изменений в системе
bash tests/test-logic.sh

# фильтр в изолированном сетевом пространстве имён (хост не затрагивается):
# ожидается plain=ok options=blocked при включённом правиле
sudo unshare -n sh -c 'python3 tests/netns-probe.py up && nft -f /etc/cve-2026-98432/mitigation.nft && python3 tests/netns-probe.py probe'

출처

  • CVE 레코드 텍스트 (Linux kernel CNA) 및 NVD
  • Debian Security Tracker
  • Ubuntu CVE
  • 배포판별 상태 및 보호 조치 개요
  • 공격 조건 및 MPTCP의 역할
  • AI Collaborator: Gemini (Google) — 개발 지원, 보안 감사 및 스크립트 작성.
  • AI Collaborator: Claude (Anthropic) — 키 추가, 리팩터링 수행.
도구 다운로드