
Exploit Linux d’élévation de privilèges locale pour CVE-2026-31635 qui corrompt le cache de pages via le déchiffrement en place RxRPC, écrase les fichiers en lecture seule et exécute du shellcode, avec un mode de vérification.
Élévation de privilèges locale sous Linux dans le chemin de déchiffrement RxRPC/GSSAPI. Un contrôle manquant de
skb_cow_data()dansrxgk_decrypt_skb()permet à un attaquant local non privilégié de corrompre les pages du cache de pages et d'écraser le contenu en mémoire de fichiers en lecture seule.
Ce dépôt contient les matériaux de recherche et la preuve de concept pour CVE-2026-31635, une élévation de privilèges locale dans net/rxrpc/rxgk.c du noyau Linux.
La vulnérabilité survient lorsque RxRPC déchiffre des paquets en place en utilisant AES-CBC sans d'abord s'assurer que les données du paquet sont privées. Si le paquet est construit à partir de pages du cache de pages, le noyau peut déchiffrer directement dans la mémoire partagée adossée à un fichier.
Choisissez le chemin qui correspond à votre objectif :
CONFIG_RXGK./dirtydecrypt --checkcd exploitmakedocs/vulnerability-analysis.mddocs/patch-analysis.md et docs/exploit-development.md⚠️ Ce dépôt est destiné uniquement à la recherche autorisée et aux tests. Ne l'utilisez pas contre des systèmes sans autorisation explicite.
Exécutez les vérifications suivantes pour déterminer si votre environnement est concerné :
uname -r
zgrep CONFIG_RXGK /proc/config.gz 2>/dev/null || grep CONFIG_RXGK /boot/config-$(uname -r)
Si le noyau est dans la plage 6.10–6.13 et que CONFIG_RXGK est activé, le système peut être vulnérable.
Utilisez ensuite le mode de vérification de la preuve de concept de l'exploit :
cd exploit
./dirtydecrypt --check
Si la vérification réussit, le système est vulnérable. Si elle échoue proprement ou signale l'absence de support RxRPC, le noyau n'est pas exploitable.
L'exploit utilise un paquet RxRPC malformé pour forcer le noyau à déchiffrer dans une page partagée du cache de pages.
Étapes :
rxgk_decrypt_skb() dans le noyau.L'exploit est démontré dans exploit/dirtydecrypt.c.
6.10 à 6.13CONFIG_RXGK=m ou CONFIG_RXGK=yrxgkCONFIG_RXGK désactivé par défautgit clone https://github.com/0xFuffM3/CVE-2026-31635-DirtyDecrypt.git
cd exploit
make
Pour un binaire entièrement statique :
make static
./dirtydecrypt --check
Exemple d'utilisation :
./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.mdDésactivez RxRPC s'il n'est pas nécessaire :
sudo rmmod rxrpc
sudo modprobe -r rxgk
echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf
Mettez à niveau vers une version corrigée du noyau :
6.13.26.12.106.6.75Auditez les opérations de création de socket et de clé pertinentes :
sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock
Q : Cet exploit peut-il modifier des fichiers sur le disque ?
R : Non. La vulnérabilité corrompt uniquement le contenu du cache de pages ; le fichier sous-jacent sur le disque reste inchangé, sauf si la page est vidée ultérieurement.
Q : Cette vulnérabilité est-elle présente sur les noyaux plus récents que 6.13 ?
R : Non, le correctif a été rétroporté et le chemin de code vulnérable est corrigé dans les noyaux après 6.13.2.
Q : Quelle est la manière la plus sûre de tester cela ?
R : Utilisez une VM isolée avec un noyau vulnérable standard et un compte utilisateur jetable.
Q : Où puis-je trouver le code source de l'exploit ?
R : Consultez exploit/dirtydecrypt.c et 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 — voir LICENSE.
Ce dépôt est destiné uniquement à un usage éducatif et à des recherches de sécurité autorisées.
| Propriété | Détail |
|---|
| CVE | CVE-2026-31635 |
| Composant | net/rxrpc/rxgk.c — rxgk_decrypt_skb() |
| Cause racine | Contrôle manquant de skb_cow_data() avant le déchiffrement |
| Impact | Élévation de privilèges locale vers root |
| Noyaux affectés | 6.10 – 6.13 |
| Corrigé dans | 6.13.2 · 6.12.10 · 6.6.75 |