
RxRPC 제자리 복호화를 통해 페이지 캐시를 손상시키고 읽기 전용 파일을 덮어쓰고 셸코드를 실행하며 검증 모드가 있는 CVE-2026-31635용 Linux 커널 로컬 권한 상승 익스플로잇입니다.
Linux 로컬 권한 상승 취약점 (RxRPC/GSSAPI 복호화 경로)
rxgk_decrypt_skb()에서skb_cow_data()검사 누락으로 인해, 권한이 없는 로컬 공격자가 페이지 캐시 페이지를 손상시키고 읽기 전용 파일의 메모리 내 내용을 덮어쓸 수 있습니다.
이 저장소는 Linux 커널 net/rxrpc/rxgk.c에서 발생하는 로컬 권한 상승 취약점인 CVE-2026-31635에 대한 연구 자료와 개념 증명(PoC)을 포함합니다.
이 취약점은 RxRPC가 AES-CBC를 사용하여 패킷 데이터가 비공개임을 먼저 확인하지 않고 패킷을 제자리(in-place)에서 복호화할 때 발생합니다. 패킷이 페이지 캐시 페이지로 구성된 경우, 커널이 공유 파일 지원 메모리에 직접 복호화할 수 있습니다.
목표에 맞는 경로를 선택하세요:
CONFIG_RXGK 확인./dirtydecrypt --check 사용cd exploitmakedocs/vulnerability-analysis.md로 시작docs/patch-analysis.md 및 docs/exploit-development.md 검토⚠️ 이 저장소는 승인된 연구 및 테스트 용도로만 사용하십시오. 명시적 허가 없이 시스템에 사용하지 마십시오.
다음 검사를 실행하여 환경이 해당 범위에 속하는지 확인하십시오:
uname -r
zgrep CONFIG_RXGK /proc/config.gz 2>/dev/null || grep CONFIG_RXGK /boot/config-$(uname -r)
커널이 6.10–6.13 범위에 있고 CONFIG_RXGK가 활성화되어 있다면 시스템이 취약할 수 있습니다.
그런 다음 익스플로잇 PoC 확인 모드를 사용하십시오:
cd exploit
./dirtydecrypt --check
검사가 성공하면 시스템이 취약한 것입니다. 검사가 깔끔하게 실패하거나 RxRPC 지원이 없다고 보고하면 해당 커널은 익스플로잇이 불가능합니다.
익스플로잇은 변조된 RxRPC 패킷을 사용하여 커널이 공유 페이지 캐시 페이지로 복호화하도록 강제합니다.
단계:
rxgk_decrypt_skb()를 호출합니다.익스플로잇은 exploit/dirtydecrypt.c에 시연되어 있습니다.
6.10 ~ 6.13CONFIG_RXGK=m 또는 CONFIG_RXGK=yrxgk 없는 구형 커널CONFIG_RXGK 비활성화git clone https://github.com/0xFuffM3/CVE-2026-31635-DirtyDecrypt.git
cd exploit
make
완전 정적 바이너리의 경우:
make static
./dirtydecrypt --check
사용 예:
./dirtydecrypt -f /usr/bin/sudo -o /tmp/sudo_patched
./dirtydecrypt -p shellcode/payload.bin
docs/vulnerability-analysis.mddocs/exploit-development.mddocs/patch-analysis.mddocs/affected-kernels.md필요하지 않은 경우 RxRPC를 비활성화하십시오:
sudo rmmod rxrpc
sudo modprobe -r rxgk
echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf
패치된 커널 릴리스로 업그레이드하십시오:
6.13.26.12.106.6.75관련 소켓 생성 및 키 작업을 감사하십시오:
sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock
Q: 이 익스플로잇으로 디스크의 파일을 수정할 수 있나요?
A: 아닙니다. 이 취약점은 페이지 캐시 내용만 손상시킵니다. 디스크에 있는 실제 파일은 페이지가 나중에 플러시되지 않는 한 변경되지 않습니다.
Q: 이 취약점은 6.13보다 최신 커널에 존재하나요?
A: 아닙니다. 패치가 백포팅되어 6.13.2 이후의 커널에서는 취약한 코드 경로가 수정되었습니다.
Q: 이를 테스트하는 가장 안전한 방법은 무엇인가요?
A: 기본 취약 커널과 일회용 사용자 계정을 사용하여 격리된 VM에서 테스트하십시오.
Q: 익스플로잇 소스 코드는 어디에서 찾을 수 있나요?
A: exploit/dirtydecrypt.c와 exploit/README.md를 참조하십시오.
CVE-2026-31635-DirtyDecrypt/
├── README.md
├── LICENSE
├── DISCLAIMER.md
├── CHANGELOG.md
├── exploit/
│ ├── README.md
│ ├── dirtydecrypt.c
│ ├── Makefile
│ └── shellcode/
│ └── payload.asm
└── docs/
├── vulnerability-analysis.md
├── exploit-development.md
├── affected-kernels.md
├── patch-analysis.md
└── references.md
MIT — LICENSE 참조.
이 저장소는 교육 및 승인된 보안 연구 용도로만 사용됩니다.
| 속성 | 세부사항 |
|---|
| CVE | CVE-2026-31635 |
| 구성 요소 | net/rxrpc/rxgk.c — rxgk_decrypt_skb() |
| 근본 원인 | 복호화 전 skb_cow_data() 검사 누락 |
| 영향 | 로컬 권한 상승으로 root 획득 |
| 영향받는 커널 | 6.10 – 6.13 |
| 수정 버전 | 6.13.2 · 6.12.10 · 6.6.75 |