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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31431-live-code-corruption — CVE-2026-31431 (Copy Fail) 신규 익스플로잇: 페이지 캐시를 통한 실시간 코드 변조. MAP_PRIVATE 페이지 공유를 통해 libc exit() 코드를 덮어씀 — 실행 중인 모든 프로세스에 영향. | Kitploit
도구/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationBinary Exploitation
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) 신규 익스플로잇: 페이지 캐시를 통한 실시간 코드 변조. MAP_PRIVATE 페이지 공유를 통해 libc exit() 코드를 덮어씀 — 실행 중인 모든 프로세스에 영향.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
13개월 전아직 검토되지 않음

CVE-2026-31431 — 페이지 캐시를 통한 라이브 코드 손상

Linux 커널의 페이지 캐시를 통해 실행 중인 프로세스의 실행 코드를 손상시켜 루트 권한 상승을 달성하는 CVE-2026-31431("Copy Fail")에 대한 새로운 공격 기법입니다.

차별점

이 CVE에 대해 공개된 모든 익스플로잇은 데이터 파일을 손상시킵니다 — /etc/passwd를 수정하여 root의 UID를 변경하거나, 디스크의 setuid 바이너리를 패치합니다. 이 익스플로잇은 근본적으로 다른 접근 방식을 사용합니다: 커널의 페이지 캐시 메커니즘을 통해 메모리 내 라이브 실행 코드를 손상시킵니다.

공개된 익스플로잇이 익스플로잇
대상데이터 파일 (/etc/passwd, /usr/bin/su)실행 코드 (libc .text 섹션)
메커니즘프로그램이 파싱하는 파일 콘텐츠CPU가 직접 실행하는 코드 페이지
범위단일 파일libc를 매핑하는 모든 프로세스
디스크 변경있음 (파일 콘텐츠 수정)없음 (메모리 내 페이지 캐시만)
탐지파일 무결성 모니터링파일시스템 검사에 보이지 않음

작동 원리

페이지 캐시 인사이트

Linux가 MAP_PRIVATE로 공유 라이브러리를 매핑할 때, 파일 페이지를 즉시 복사하지 않습니다. 대신 프로세스의 페이지 테이블 엔트리가 페이지 캐시 물리 페이지를 직접 가리킵니다. 복사는 쓰기 시에만 발생합니다(COW, copy-on-write). 코드 페이지(.text)의 경우 프로세스가 절대 쓰지 않으므로 페이지 캐시와 영구적으로 공유됩니다.

root@kitploit:~
Process A (bash)     Process B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (clean page)        (clean page)      └──────────┘
                                               ↑
                                    Copy Fail writes here!

CVE-2026-31431은 읽기 가능한 모든 파일의 페이지 캐시에 통제된 4바이트 쓰기를 제공합니다. libc의 코드 페이지를 손상시켜 모든 프로세스가 실행하는 명령어를 수정합니다.

익스플로잇

  1. 셸코드 작성 (39바이트) — libc 페이지 캐시의 on_exit() 함수 위치에 4바이트씩 10회 쓰기
  2. exit() 패치 — 셸코드로 점프하도록 4바이트 1회 쓰기
  3. 트리거: exit()를 호출하는 모든 프로그램(사실상 모든 프로그램)이 셸코드를 실행

셸코드는 setuid(0) → setgid(0) → execve("/bin/sh")를 수행하여 루트 셸을 제공합니다.

CVE-2026-31431 개요

  • 버그: crypto/algif_aead.c의 논리 오류 — 2017년 in-place 최적화(72548b093ee3)로 인해 splice()가 페이지 캐시 페이지를 AEAD 복호화에 공급할 수 있습니다. authencesn 알고리즘의 ESN 재배열이 4개의 스크래치 바이트를 소스 scatterlist에 다시 쓰면서 splice된 파일의 페이지 캐시를 손상시킵니다.
  • 프리미티브: 읽기 가능한 모든 파일의 페이지 캐시에 대한 결정적 4바이트 쓰기
  • 요구 사항: 없음 — AF_ALG 소켓은 권한 없는 사용자도 사용 가능
  • 수정: 암호화 작업 전에 out-of-place 버퍼로 복사 (커널 6.12.85+, 6.15+)

사용법

root@kitploit:~
# 컴파일
gcc -o exploit exploit.c

# 권한 없는 사용자로 실행
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# 트리거 — 아무 프로그램이나 실행 (exit() 호출)
su -c id
# uid=0(root) gid=0(root) groups=0(root)

테스트 환경

  • 커널: 6.12.79 (Ubuntu/Debian, 6.12.85 수정 이전)
  • glibc: 2.31-0ubuntu9.7
  • 결과: 전체 루트 셸, 커널 로그로 확인: process 'id' launched '/bin/sh'

파일

  • exploit.c — 셸코드 주입이 포함된 전체 익스플로잇
  • copyfail_test.c — 프리미티브 검증 (4바이트 쓰기 테스트)

타임라인

  • 2017: In-place 최적화 도입 (72548b093ee3)
  • 2026-04-29: CVE-2026-31431 공개
  • 2026-04-30: 커널 6.12.85에서 수정 릴리스
  • 2026-05-06: 이 익스플로잇 개발 (새로운 라이브 코드 손상 기법)

참고 자료

  • NVD — CVE-2026-31431
  • 수정 커밋
  • Copy Fail 분석 (Xint)

면책 조항

이 도구는 승인된 보안 연구 및 교육 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에 사용하지 마십시오.

관련: Dirty Frag (2026년 5월 7일)

Dirty Frag는 동일한 버그 클래스에서 두 가지 추가 페이지 캐시 쓰기 변형을 공개했습니다:

  • ESP 경로 (esp4/esp6): Copy Fail과 동일한 authencesn 싱크, IPsec ESP-in-UDP를 통해 도달. 사용자 네임스페이스 필요. 4바이트 쓰기.
  • RxRPC 경로 (rxrpc/rxkad): splice 고정 페이지에 대한 pcbc(fcrypt) in-place 복호화. 네임스페이스 불필요. 8바이트 쓰기.

이 저장소의 라이브 코드 손상 기법은 이러한 모든 페이지 캐시 쓰기 프리미티브와 함께 작동합니다 — write4() 함수를 ESP 또는 RxRPC 트리거로 교체하기만 하면 됩니다. 이 기법은 프리미티브에 독립적입니다.

도구 다운로드