
CVE-2026-43284 및 CVE-2026-43500 Dirty Frag PoC 및 익스플로잇
CVE-2026-43284 (XFRM/ESP) 및 CVE-2026-43500 (RxRPC/RXKAD)용 읽기 가능한 N4C 데모.
이 PoC는 한 가지 질문에 답합니다: 권한이 없는 프로세스가 공유 sk_buff 프래그먼트를 통해 root 소유의 읽기 전용 파일의 페이지 캐시를 변경할 수 있는가?
이는 /usr/bin/su나 /etc/passwd를 덮어쓰지 않으며, 페이로드를 설치하지 않고, PAM/NSS를 호출하지 않으며, 셸을 시작하지 않습니다. 전체 공개 익스플로잇은 exploit 브랜치에 남아 있습니다.
dirtyfrag-poc.c — 두 가지 페이지 캐시 프리미티브와 작은 CLI.prepare-lab.sh — 무해한 root 소유 픽스처 두 개를 생성합니다.run_as_1000.c / run-as-1000 — VM의 root 셸을 uid/gid 1000으로 낮춥니다.Makefile — 재현 가능한 정적 빌드.--esp)읽기 전용 픽스처
-> splice(file -> pipe -> UDP 소켓)
-> skb 페이징 프래그먼트
-> ESP authencesn 제자리 STORE
-> 처음 4개의 캐시된 바이트가 "N4C!"가 됨
XFRM SA 하나와 4바이트 쓰기 하나만 사용됩니다. 공개 익스플로잇의 root 셸 ELF와 48-트리거 어셈블리 루프는 제거되었습니다.
--rxrpc)읽기 전용 픽스처
-> splice(file -> 위조된 RxRPC DATA 패킷)
-> RXKAD pcbc(fcrypt) 제자리 복호화
-> 키로 선택된 8바이트 쓰기 한 번
-> 캐시된 바이트가 원본 픽스처와 달라짐
이 PoC는 변경된 8바이트 블록만으로도 프리미티브를 증명할 수 있으므로 비밀번호 형태의 평문을 검색하지 않습니다. 오프라인 fcrypt 무차별 대입, 중첩 쓰기 플래너, PAM, getent, 비밀번호 없는 su, PTY 처리 및 셸 코드는 제거되었습니다.
필요한 커널 기능을 포함한 일회용, 승인된 Linux VM에서만 사용하십시오.
make
# VM의 root 사용자로 한 번 실행하여 알려진 픽스처 바이트를 재생성합니다.
./prepare-lab.sh
# 그런 다음 헬퍼가 uid/gid 1000으로 PoC를 실행합니다.
./run-as-1000 ./dirtyfrag-poc --esp --verbose
./prepare-lab.sh
./run-as-1000 ./dirtyfrag-poc --rxrpc --verbose
종료 상태:
0 — 마커가 페이지 캐시에 나타남; 프리미티브 관찰됨.1 — 마커가 나타나지 않음; 공유 프래그먼트 쓰기가 거부됨.2 — 잘못된 픽스처, 지원되지 않는 환경 또는 설정 실패.3 — 검증 전에 RxRPC 트리거가 실패함.실행 사이에 픽스처를 재생성하거나 일회용 VM을 재부팅하십시오.
main()은 프리미티브 하나를 선택하고 uid 0으로 실행을 거부합니다.esp_poc()는 4바이트 XFRM/ESP 사례를 보여줍니다.rxrpc_poc()는 트리거 하나와 직접적인 전후 비교를 보여줍니다.프로토콜 구성은 Linux 커널 소스와 커밋 aab16fcada27142dd8ce8704906cf6736cf213b8의 공개 V4bel/dirtyfrag 참조 구현에서 파생되었습니다. N4C는 실행 흐름을 이 픽스처 전용 데모로 재작성하고 권한 상승 페이로드 및 소비자 단계를 제거했습니다.