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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/eliot-code/cve-2026-52924
Vulnerability AnalysisExploitationPapers & ResearchLearning & EducationBinary Exploitation
GitHubeliot-code/cve-2026-52924

CVE-2026-52924

CVE-2026-52924에 대한 기술 분석: Linux 커널 SCTP의 만료된 쿠키 처리에서 발생하는 심각한 use-after-free 취약점으로, 근본 원인, 공격 흐름, 수정 사항 및 탐지 방법을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-52924: SCTP 스테일 쿠키 처리 시 Use-After-Free 취약점

취약점 요약

CVE ID: CVE-2026-52924
심각도: CRITICAL (CVSS 9.8)
구성 요소: Linux 커널 - SCTP(Stream Control Transmission Protocol)
유형: Use-After-Free (CWE-416, CWE-825)
공개일: 2026-06-24
상태: 패치 완료

영향을 받는 버전

  • Linux 커널 < 5.10.259
  • Linux 커널 < 5.15.210
  • Linux 커널 < 6.1.176
  • Linux 커널 < 6.6.143
  • Linux 커널 < 6.12.94
  • Linux 커널 < 6.18.36
  • Linux 커널 < 7.0.13
  • Linux 커널 < 7.1

기술적 세부 사항

근본 원인

이 취약점은 SCTP 상태 머신이 스테일 COOKIE-ECHO 패킷을 처리할 때 발생합니다. 이 문제는 연결(association)이 롤백될 때 발신(outbound) 스트림 큐가 제대로 정리되지 않는 것과 관련이 있습니다.

공격 흐름

  1. 정상 동작: 연결이 COOKIE_ECHOED 상태로 전환됨
  2. 사용자 데이터 큐잉: 애플리케이션이 데이터를 전송하고, 해당 데이터가 전송을 위해 큐에 대기함
  3. 스테일 쿠키 오류: 원격 피어가 Stale Cookie 오류를 전송함
  • 롤백 트리거: 연결이 COOKIE_ECHOED → COOKIE_WAIT 상태로 롤백됨
  • 스트림 상태 업데이트: sctp_stream_update()가 이전 스트림 테이블을 해제하고 새 테이블을 설치함
  • 잘못된 포인터: stream->out_curr가 여전히 해제된 sctp_stream_out 항목을 가리킴
  • 디큐 접근: 스케줄러가 디큐(FCFS, RR, PRIO)를 시도할 때 out_curr->ext에 접근함
  • Use-After-Free: 해제된 메모리에 접근 → KASAN 탐지를 통한 커널 크래시 발생
  • 문제가 있는 코드 흐름

    root@kitploit:~
    sctp_sf_do_5_2_6_stale():
      ├─ Stale Cookie 오류 수신
      ├─ 연결 상태 롤백
      └─ sctp_stream_update() 호출
           ├─ 이전 스트림 테이블 해제
           ├─ 새 스트림 테이블 설치
           └─ 버그: stream->out_curr이 무효화되지 않음 ❌
    
    이후 디큐 시도 시:
      sctp_sched_fcfs_dequeue():
        └─ stream->out_curr->ext 접근 (해제된 메모리) 💥
    

    크래시 예시

    root@kitploit:~
    BUG: KASAN: slab-use-after-free in sctp_sched_fcfs_dequeue+0x13a/0x140
    Read of size 8 at addr ff1100004d4d3208 by task mini_poc/9312
    CPU: 1 UID: 1001 PID: 9312 Comm: mini_poc Not tainted 7.1.0-rc1-00305-gbd3a4795d574 #5 PREEMPT(full)
    
    Call trace:
      sctp_sched_fcfs_dequeue+0x13a/0x140
      sctp_outq_flush+0x1603/0x33e0
      sctp_do_sm+0x31c9/0x5d30
      sctp_assoc_bh_rcv+0x392/0x6f0
      sctp_inq_push+0x1db/0x270
      sctp_rcv+0x138d/0x3c10
    

    단순히 out_curr을 업데이트하는 것만으로는 부족한 이유

    단순한 수정 방법은 stream->out_curr을 그냥 초기화하는 것입니다:

    root@kitploit:~
    // 불충분한 수정 ❌
    stream->out_curr = NULL;
    

    문제점: 아웃큐에는 여전히 다음 항목이 남아 있습니다:

    • 이전 스트림 상태를 참조하는 큐에 대기 중인 데이터 청크
    • 이전 스트림을 가리키는 재전송 큐 항목
    • 이전 스트림 메타데이터와 함께 번들된 제어 청크

    이러한 스테일 참조는 접근 시 여전히 use-after-free를 유발합니다.

    올바른 수정 방법

    해결책: 스테일 쿠키 처리 중 연결의 아웃큐를 완전히 비웁니다.

    root@kitploit:~
    // 올바른 수정 ✓
    sctp_outq_free(&asoc->outqueue);
    

    이렇게 하면 다음이 보장됩니다:

    1. 대기 중인 모든 전송 데이터가 삭제됨
    2. 모든 재전송 큐 항목이 해제됨
    3. 스케줄러 캐시 포인터(out_curr 등)가 무효화됨
    4. COOKIE_WAIT 재시작 중 스트림 상태를 안전하게 재구축할 수 있음
    5. 해제된 스트림 항목에 대한 매달린 참조가 없음

    구현 위치

    파일: net/sctp/sm_statefuns.c
    함수: sctp_sf_do_5_2_6_stale()
    추가 사항: sctp_stream_update() 호출 전에 sctp_outq_free(&asoc->outqueue) 호출

    root@kitploit:~
    enum sctp_disposition sctp_sf_do_5_2_6_stale(...)
    {
        // ... 기존 코드 ...
        
        // 스트림 상태 재구축 전에 아웃큐 비우기
        sctp_outq_free(&asoc->outqueue);
        
        // 이제 스트림 업데이트가 안전함
        sctp_stream_update(&asoc->stream, &asoc->c.h_init_tag);
        
        // ... 나머지 함수 코드 ...
    }
    

    영향 분석

    심각도 요소 (CVSS 9.8)

    • 공격 벡터: 네트워크 (CVSS:3.1/AV:N)
    • 공격 복잡도: 낮음 (CVSS:3.1/AC:L)
    • 필요 권한: 없음 (CVSS:3.1/PR:N)
    • 사용자 상호작용: 없음 (CVSS:3.1/UI:N)
    • 범위: 변경 없음 (CVSS:3.1/S:U)
    • 기밀성 영향: 높음 (CVSS:3.1/C:H)
    • 무결성 영향: 높음 (CVSS:3.1/I:H)
    • 가용성 영향: 높음 (CVSS:3.1/A:H)

    악용 요구 사항

    1. 대상 시스템에 대한 네트워크 접근(SCTP 포트가 열려 있어야 함)
    2. 연결을 설정하기 위해 SCTP 패킷을 전송할 수 있는 능력
    3. 특정 시점(COOKIE_ECHOED 상태)에 Stale Cookie 오류 전송
    4. 스케줄러 디큐 작업 트리거

    공격 시나리오

    1. 서비스 거부(DoS): 커널을 반복적으로 크래시 → DoS
    2. 정보 유출: UAF를 통한 커널 메모리 읽기
    3. 권한 상승: 메모리 조작을 통한 잠재적 권한 상승
    4. 원격 코드 실행: 메모리 손상 익스플로잇을 통한 실행 가능성

    탐지 방법

    KASAN 탐지 (런타임)

    root@kitploit:~
    # 커널 설정에서 KASAN 활성화
    CONFIG_KASAN=y
    CONFIG_KASAN_GENERIC=y
    
    # 런타임 출력:
    BUG: KASAN: slab-use-after-free
    

    정적 분석

    root@kitploit:~
    # 검증 없이 안전하지 않은 stream->out_curr 접근 찾기
    grep -r "out_curr->ext" net/sctp/
    grep -r "out_curr->" net/sctp/sched*.c
    

    네트워크 탐지

    • SCTP Stale Cookie ERROR 패킷(Type 3, Code 1) 모니터링
    • 연결 롤백 패턴 추적
    • 빠른 COOKIE_ECHOED → COOKIE_WAIT 전환에 대한 알림 설정

    완화 전략

    임시 완화 조치 (패치 적용 전까지)

    1. SCTP 비활성화: SCTP 모듈 제거 또는 SCTP 포트(132, 132 UDP) 차단

      root@kitploit:~
      echo "install sctp /bin/true" >> /etc/modprobe.d/sctp-disable.conf
      
    2. 방화벽 규칙: 네트워크 경계에서 SCTP 트래픽 차단

      root@kitploit:~
      iptables -A INPUT -p sctp -j DROP
      
    3. 커널 버전: 패치된 버전으로 업그레이드

      • 5.10.259+
      • 5.15.210+
      • 6.1.176+
      • 6.6.143+
      • 6.12.94+
      • 6.18.36+
      • 7.0.13+
      • 7.1+ (최신)

    영구 수정

    sctp_sf_do_5_2_6_stale()에서 sctp_outq_free()를 호출하는 커널 패치를 적용합니다.

    참고 자료

    • CWE-416: Use After Free
    • CWE-825: 만료된 포인터 역참조
    • CVSS 계산기: https://www.first.org/cvss/calculator/3.1
    • NVD 항목: CVE-2026-52924
    • Linux 커널 보안: https://www.kernel.org/doc/html/latest/security/

    테스트 권장 사항

    단위 테스트

    1. sctp_outq_free()가 out_curr을 올바르게 무효화하는지 검증
    2. outq_free 중 모든 큐에 대기 중인 데이터가 해제되는지 검증
    3. 재전송 큐가 비워지는지 검증
    4. outq 정리 후 스케줄러 동작 테스트

    통합 테스트

    1. 정상적인 스테일 쿠키 복구 흐름
    2. 스테일 쿠키 수신 시 전송 중인 데이터가 있는 경우
    3. 여러 번의 빠른 연속 스테일 쿠키
    4. 다양한 SCTP 스케줄러(FCFS, RR, PRIO)

    퍼즈 테스트

    1. 스테일 쿠키 오류가 포함된 SCTP 패킷 전송
    2. 오류 주입 시점 변경
    3. 전송 중인 데이터 양 변경
    4. 높은 부하 조건에서 테스트

    타임라인

    • 2026-06-24: 취약점 공개
    • 상태: 수정 가능
    • EPSS 점수: 0.3% (27번째 백분위수)
      • 낮은 악용 확률
      • 특정 네트워크 조건 필요
      • 인덱스된 실제 익스플로잇 제한적

    ** 작성자 : Elliot 문서 버전: 1.0
    최종 업데이트: 2026-09-07
    분류: 공개 정보

    도구 다운로드