Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-74469 — CVE-2026-74469(DiagSpill) 연구 저장소로, Linux 커널 SCTP 피어 전송 카운터 오버플로로 인한 범위 초과 쓰기 취약점을 다루며 PoC, 근본 원인 분석, 패치 세부 정보를 포함합니다. | Kitploit
도구/GitHubGitHub/0xblackash/cve-2026-74469
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationPapers & ResearchLearning & EducationBinary ExploitationLabs & Practice
GitHub0xblackash/cve-2026-74469

CVE-2026-74469

CVE-2026-74469(DiagSpill) 연구 저장소로, Linux 커널 SCTP 피어 전송 카운터 오버플로로 인한 범위 초과 쓰기 취약점을 다루며 PoC, 근본 원인 분석, 패치 세부 정보를 포함합니다.

저장소 보기
7시간 48분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

⚡ CVE-2026-74469 — DiagSpill

Linux 커널 SCTP 피어 전송 개수 오버플로

Linux 커널 SCTP 취약점으로, 16비트 피어 전송 카운터 오버플로로 인해 카운터가 65535에서 0으로 랩어라운드될 수 있습니다. SCTP 진단 덤프 중 랩어라운드된 값은 skb 페이로드 예약 부족을 초래하고, 이어서 피어 주소 데이터의 범위를 벗어난 쓰기(out-of-bounds write)를 유발할 수 있습니다.


⚠️ 면책 조항

이 저장소는 승인된 보안 연구, 커널 취약점 분석, CTF 환경, 커널 디버깅 및 방어적 테스트 목적으로만 사용됩니다.

명시적 승인 없이 시스템에 대해 개념 증명 코드를 사용하지 마십시오.


📌 취약점 개요

Linux 커널 CVE 권고는 이 문제를 SCTP의 16비트 transport_count 오버플로로 설명하며, 이어서 크기가 부족한 INET_DIAG_PEERS 할당과 진단 덤프 중 범위를 벗어난 쓰기가 발생한다고 밝히고 있습니다.


🧬 취약점 설명

취약한 코드는 고유한 피어 전송의 개수를 16비트 카운터로 유지합니다:

root@kitploit:~
transport_count

새로 추가되는 고유한 피어마다 카운터가 증가합니다.

임계 경계는 다음과 같습니다:

root@kitploit:~
65535

고유한 전송을 하나 더 추가하면 다음과 같이 됩니다:

root@kitploit:~
65535 + 1
     ↓
     0

이로 인한 랩어라운드는 다음 두 값 사이에 불일치를 만듭니다:

root@kitploit:~
transport_count

그리고:

root@kitploit:~
transport_addr_list

진단 하위 시스템은 이후 응답 버퍼의 크기를 계산할 때 랩어라운드된 카운터를 신뢰하지만, 여전히 피어 주소의 전체 목록을 순회합니다.


🔬 근본 원인

취약점은 다음과 같이 나타낼 수 있습니다:

root@kitploit:~
                    SCTP Association
                           │
                           ▼
                 Add unique peers
                           │
                           ▼
                 transport_count
                    uint16_t
                           │
                           ▼
                    65,535 peers
                           │
                           ▼
                 + 1 unique peer
                           │
                           ▼
                    Integer wrap
                           │
                           ▼
                transport_count = 0
                           │
                           ▼
                  SCTP sock_diag
                           │
                           ▼
             Reserve incorrect payload
                           │
                           ▼
          Iterate complete peer list
                           │
                           ▼
             Out-of-bounds skb write

업스트림 권고는 65,536번째 전송이 카운터를 0으로 랩어라운드시킨다고 명시하고 있습니다.


🧠 버그가 발생하는 이유

진단 코드는 사실상 동일한 상태에 대한 두 가지 서로 다른 관점에 의존합니다.

할당 측

root@kitploit:~
transport_count
       │
       ▼
payload size

복사 측

root@kitploit:~
transport_addr_list
       │
       ▼
copy every peer address

정수가 랩어라운드된 후:

root@kitploit:~
transport_count = 0

transport_addr_list =
    [peer 1]
    [peer 2]
    [peer 3]
    ...
    [peer 65536]

따라서 할당자는 다음을 기준으로 공간을 예약합니다:

root@kitploit:~
0 peers

반면 복사 작업은 여전히 다음을 처리할 수 있습니다:

root@kitploit:~
65536 peer addresses

이 불일치가 메모리 안전성 위반을 발생시킵니다.


💥 메모리 손상

Linux 커널 권고는 그 결과로 발생하는 진단 덤프가 빈 페이로드를 예약한 뒤 약 8 MiB의 피어 주소를 skb tail 너머에 기록한다고 설명합니다.

개념적으로:

root@kitploit:~
Expected skb:

┌───────────────────────────────┐
│ INET_DIAG header              │
├───────────────────────────────┤
│ Peer addresses                │
└───────────────────────────────┘
              ▲
              │
          valid end


Actual vulnerable state:

┌───────────────────────────────┐
│ INET_DIAG header              │
└───────────────────────────────┘
              ▲
              │
          skb tail

              ↓
      Peer address writes
              ↓
      Peer address writes
              ↓
      Peer address writes
              ↓
      OUT-OF-BOUNDS WRITE

Red Hat은 이 결함을 CWE-787: 범위를 벗어난 쓰기로 분류합니다.


🔎 취약한 코드 경로

관련 경로는 다음과 같이 요약할 수 있습니다:

root@kitploit:~
SCTP association
      │
      ▼
sctp_assoc_add_peer()
      │
      ▼
transport_count++
      │
      ▼
16-bit overflow
      │
      ▼
SCTP sock_diag
      │
      ▼
INET_DIAG_PEERS
      │
      ▼
skb payload reservation
      │
      ▼
transport_addr_list iteration
      │
      ▼
Out-of-bounds write

영향받는 소스 파일은 다음과 같습니다:

root@kitploit:~
net/sctp/associola.c

Linux 커널 CVE 공지에서 이 파일을 명시적으로 지목하고 있습니다.


🩹 업스트림 수정

업스트림 수정은 다음과 같습니다:

root@kitploit:~
bd0e9289e2642f6a5c54faad304ce0f41e926d22

커밋:

root@kitploit:~
sctp: prevent peer transport count overflow

이 수정은 다음과 같은 경우 새로운 고유 피어를 거부합니다:

root@kitploit:~
transport_count >= U16_MAX

중요한 점은 이 검사가 기존 피어 조회 이후에 수행된다는 것입니다.

이로써 연관이 한계에 도달한 경우에도 이미 존재하는 전송을 조회할 수 있는 능력이 유지됩니다.


🛡️ 패치 로직

취약

root@kitploit:~
New peer
   │
   ▼
transport_count++
   │
   ▼
Possible 16-bit wrap
   │
   ▼
Diagnostic size mismatch
   │
   ▼
OOB write

패치됨

root@kitploit:~
New peer
   │
   ▼
Existing peer?
   │
 ┌─┴──────────┐
 │            │
YES           NO
 │            │
 ▼            ▼
Reuse       Check U16_MAX
transport       │
                ▼
          Reject at limit

중요한 보안 속성은 기존 피어에 대한 정상적인 조회 의미 체계를 유지하면서 카운터가 절대 랩어라운드되지 않도록 하는 것입니다.


📊 취약 vs 패치됨


💥 보안 영향

메모리 손상은 잠재적으로 다음을 초래할 수 있습니다:

  • 커널 크래시
  • 서비스 거부
  • 커널 메모리 손상
  • 범위를 벗어난 커널 쓰기
  • 잠재적 권한 상승
  • 잠재적 커널 코드 실행

공개 이후 발표된 공개 연구는 특정 조건에서 로컬 루트 익스플로잇을 보고하는 반면, 원래 Linux 커널 CNA 점수는 AV:L/AC:H/PR:L/UI:N을 사용합니다.

이 취약점은 매우 특정한 SCTP/주소 구성 상황에서 잠재적으로 원격 도달이 가능하다고도 설명되지만, 이를 일반적으로 원격 익스플로잇 가능한 취약점과 동일시해서는 안 됩니다.


🧪 연구 환경

권장되는 격리된 토폴로지:

root@kitploit:~
┌───────────────────────────────────────────┐
│              Linux VM                    │
│                                           │
│       ┌───────────────────┐               │
│       │   SCTP Association │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │ Multiple SCTP      │               │
│       │ Peer Transports    │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │   SCTP sock_diag   │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│          INET_DIAG_PEERS                  │
│                                           │
└───────────────────────────────────────────┘

유용한 도구:

root@kitploit:~
ip sctp
ss
ss -a
ss -A sctp
dmesg -w
gdb
pwndbg
crash

SCTP 지원 확인:

root@kitploit:~
lsmod | grep sctp

커널 구성 확인:

root@kitploit:~
grep CONFIG_IP_SCTP /boot/config-$(uname -r)

🔎 커널 검증

실행 중인 커널 확인:

root@kitploit:~
uname -r

SCTP 구성 확인:

root@kitploit:~
grep -E 'CONFIG_IP_SCTP|CONFIG_SCTP' \
/boot/config-$(uname -r)

로드된 SCTP 모듈 확인:

root@kitploit:~
lsmod | grep -i sctp

SCTP 소켓 검사:

root@kitploit:~
ss -A sctp

🧪 재현 워크플로

통제된 커널 연구를 위해:

root@kitploit:~
01. Build vulnerable kernel
          ↓
02. Boot isolated VM
          ↓
03. Enable SCTP
          ↓
04. Create controlled SCTP association
          ↓
05. Populate unique peer transports
          ↓
06. Reach transport-count boundary
          ↓
07. Trigger SCTP diagnostic dump
          ↓
08. Monitor skb diagnostics
          ↓
09. Capture kernel behavior
          ↓
10. Apply upstream fix
          ↓
11. Repeat test
          ↓
12. Compare vulnerable vs patched

커널 출력 모니터링:

root@kitploit:~
sudo dmesg -w

디버깅을 위해:

root@kitploit:~
gdb vmlinux

또는:

root@kitploit:~
pwndbg vmlinux

📂 저장소 구조

root@kitploit:~
CVE-2026-74469-DiagSpill/
│
├── README.md
│
├── exploit/
│   ├── poc.c
│   └── Makefile
│
├── analysis/
│   ├── root-cause.md
│   ├── sctp-transport-count.md
│   ├── sock-diag.md
│   ├── skb-overflow.md
│   └── patch-analysis.md
│
├── kernel/
│   ├── vulnerable/
│   └── patched/
│
├── lab/
│   ├── setup.sh
│   ├── cleanup.sh
│   └── topology.md
│
├── screenshots/
│
├── docs/
│   └── research-notes.md
│
└── LICENSE

🛡️ 완화

주요 완화책은 업스트림 수정이 포함된 커널로 업그레이드하는 것입니다.

Debian/Kali의 경우:

root@kitploit:~
sudo apt update
sudo apt full-upgrade

그런 다음 재부팅:

root@kitploit:~
sudo reboot

확인:

root@kitploit:~
uname -r

SCTP가 필요하지 않은 경우, 관리자는 자신의 환경과 운영 요구 사항에 따라 영향받는 SCTP 기능을 비활성화하는 것도 고려할 수 있습니다. 공개 연구는 해당 구성 요소가 사용되지 않을 때 SCTP / sctp_diag를 비활성화하는 것을 즉각적인 완화책으로 명시적으로 나열하고 있습니다.


📦 수정된 커널 릴리스

업스트림 안정 공지는 다음 수정 릴리스를 나열합니다:

이 버전들은 Linux 커널 CVE 공지에서 가져온 것이며, 배포판은 다른 버전 번호 체계를 가진 패키지에 수정 사항을 백포트할 수 있습니다.


🧩 보안 교훈

01 — 경계가 있는 카운터가 조용히 랩어라운드되도록 허용하지 말 것

16비트 카운터는 하드 최대값을 가집니다:

root@kitploit:~
U16_MAX = 65535

보안에 민감한 코드는 이 경계를 명시적으로 처리해야 합니다.

02 — 할당과 복사 개수가 일치해야 함

버퍼를 할당하는 데 사용되는 크기는 실제로 그 안에 복사되는 객체 수와 대응해야 합니다.

03 — 진단 인터페이스는 보안에 민감함

커널 진단 API는 내부 상태가 일관성을 잃을 때 메모리 손상 공격 표면이 될 수 있습니다.

04 — 정수 버그는 메모리 안전성 버그가 될 수 있음

원래의 기본 요소는 정수 오버플로이지만, 그로 인한 보안 영향은 범위를 벗어난 커널 쓰기입니다.

05 — 커널 네트워킹 상태는 복잡함

SCTP 연관은 대규모 피어 전송 컬렉션을 포함할 수 있으므로, 카운터 한계와 목록 관리 로직이 보안상 중요합니다.


📚 참고 자료

  • CVE: CVE-2026-74469
  • 코드명: DiagSpill
  • 하위 시스템: Linux SCTP
  • 영향받는 파일: net/sctp/associola.c
  • 주요 함수: sctp_assoc_add_peer()
  • 수정: sctp: prevent peer transport count overflow
  • 업스트림 수정: bd0e9289e2642f6a5c54faad304ce0f41e926d22
  • CWE: CWE-787 / 범위를 벗어난 쓰기
  • Linux 커널 CVE 권고: CVE-2026-74469 advisory
  • Debian 보안 트래커: CVE-2026-74469 Debian tracker
  • Red Hat: CVE-2026-74469 Red Hat advisory

⚡ DiagSpill

CVE-2026-74469

Linux Kernel · SCTP · sock_diag · OOB Write · Kernel Security


Research • Analyze • Reproduce • Harden


0xBlackash

도구 다운로드
항목세부 정보
CVECVE-2026-74469
코드명DiagSpill
구성 요소Linux 커널
하위 시스템SCTP / sock_diag
영향받는 파일net/sctp/associola.c
주요 함수sctp_assoc_add_peer()
버그 분류정수 오버플로 / 범위를 벗어난 쓰기
영향커널 메모리 손상
잠재적 영향로컬 권한 상승
CVSS v3.17.0 — 높음
공격 벡터로컬
공격 복잡도높음
필요 권한낮음
사용자 상호작용없음
상태패치됨
보안 속성취약패치됨
16비트 전송 한계 적용❌✅
카운터 랩어라운드 방지❌✅
기존 피어 사용 가능 유지✅✅
진단 페이로드 크기 신뢰성❌✅
OOB skb 쓰기 방지❌✅
커널 메모리 손상 완화❌✅
브랜치수정 릴리스
5.105.10.265
5.155.15.216
6.16.1.183
6.66.6.151
6.126.12.103
6.186.18.44
7.17.1.8
7.27.2-rc6