
# Exploit di escalation dei privilegi locali per il kernel Linux per CVE-2026-31635 che corrompe la cache delle pagine tramite decrittazione in-place di RxRPC, sovrascrive file di sola lettura ed esegue shellcode, con modalità di verifica.
Escalation dei privilegi locali in Linux nel percorso di decifratura RxRPC/GSSAPI. La mancanza di un controllo
skb_cow_data()inrxgk_decrypt_skb()consente a un attaccante locale non privilegiato di corrompere le pagine della cache delle pagine e sovrascrivere i contenuti in memoria di file di sola lettura.
Questo repository contiene i materiali di ricerca e la proof-of-concept per CVE-2026-31635, un'escalation dei privilegi locali nel kernel Linux net/rxrpc/rxgk.c.
La vulnerabilità si verifica quando RxRPC decifra i pacchetti in-place usando AES-CBC senza prima assicurarsi che i dati del pacchetto siano privati. Se il pacchetto è costruito dalle pagine della cache delle pagine, il kernel può decifrare direttamente nella memoria condivisa basata su file.
Scegli il percorso che corrisponde al tuo obiettivo:
CONFIG_RXGK./dirtydecrypt --checkcd exploitmakedocs/vulnerability-analysis.mddocs/patch-analysis.md e docs/exploit-development.md⚠️ Questo repository è destinato esclusivamente a ricerca autorizzata e test. Non utilizzarlo contro sistemi senza autorizzazione esplicita.
Esegui i seguenti controlli per determinare se il tuo ambiente rientra nel campo d'azione:
uname -r
zgrep CONFIG_RXGK /proc/config.gz 2>/dev/null || grep CONFIG_RXGK /boot/config-$(uname -r)
Se il kernel è nell'intervallo 6.10–6.13 e CONFIG_RXGK è abilitato, il sistema potrebbe essere vulnerabile.
Quindi usa la modalità di verifica del PoC dell'exploit:
cd exploit
./dirtydecrypt --check
Se il controllo ha successo, il sistema è vulnerabile. Se fallisce senza errori o segnala la mancanza del supporto RxRPC, allora il kernel non è sfruttabile.
L'exploit utilizza un pacchetto RxRPC malformato per forzare il kernel a decifrare in una pagina condivisa della cache delle pagine.
Passaggi:
rxgk_decrypt_skb() nel kernel.L'exploit è dimostrato in exploit/dirtydecrypt.c.
6.10 a 6.13CONFIG_RXGK=m o CONFIG_RXGK=yrxgkCONFIG_RXGK disabilitato per impostazione predefinitagit clone https://github.com/0xFuffM3/CVE-2026-31635-DirtyDecrypt.git
cd exploit
make
Per un binario completamente statico:
make static
./dirtydecrypt --check
Esempio di utilizzo:
./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.mdDisabilita RxRPC se non è necessario:
sudo rmmod rxrpc
sudo modprobe -r rxgk
echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf
Aggiorna a una versione del kernel con la patch:
6.13.26.12.106.6.75Controlla le operazioni relative ai socket e alle chiavi:
sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock
D: Questo exploit può modificare i file su disco?
R: No. La vulnerabilità corrompe solo il contenuto della cache delle pagine; il file di backing su disco rimane invariato a meno che la pagina non venga successivamente scaricata.
D: Questa vulnerabilità è presente su kernel più recenti della 6.13?
R: No, la patch è stata backportata e il percorso di codice vulnerabile è risolto nei kernel successivi alla 6.13.2.
D: Qual è il modo più sicuro per testare?
R: Usa una VM isolata con un kernel vulnerabile standard e un account utente usa e getta.
D: Dove posso trovare il codice sorgente dell'exploit?
R: Vedi exploit/dirtydecrypt.c e 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 — vedi LICENSE.
Questo repository è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza autorizzata.
| Proprietà | Dettaglio |
|---|
| CVE | CVE-2026-31635 |
| Componente | net/rxrpc/rxgk.c — rxgk_decrypt_skb() |
| Causa principale | Mancanza del controllo skb_cow_data() prima della decifratura |
| Impatto | Escalation dei privilegi locali a root |
| Kernel interessati | 6.10 – 6.13 |
| Risolto in | 6.13.2 · 6.12.10 · 6.6.75 |