Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
page-cache-corruption-lpes — CVE-2026-46331 and CVE-2026-43503 | Kitploit
Outils/GitHubGitHub/rjt-gupta/page-cache-corruption-lpes
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationCTFApprentissage et ÉducationExploitation de Binaires
GitHubrjt-gupta/page-cache-corruption-lpes

page-cache-corruption-lpes

CVE-2026-46331 and CVE-2026-43503

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
123il y a 29 joursPas encore vérifié

LPE par corruption du cache de pages

3 exploits d'élévation de privilèges locaux du noyau Linux. Même classe de bug que Dirty COW et Dirty Pipe. Shell root en quelques secondes. Toutes les distributions majeures sont concernées.

Les trois corrompent le cache de pages du noyau — la copie en mémoire des fichiers que les processus lisent et exécutent réellement. Le fichier sur disque n'est jamais touché. Les outils d'intégrité de fichiers ne voient rien. execve("/usr/bin/su") charge depuis le cache → exécute votre shellcode → root.


Les exploits

ExploitCVEMécanismeTemps pour rootLignes
Dirty PeditCVE-2026-46331Faille COW de TC pedit (débordement u32)< 1 seconde275
skb_shiftCVE-2026-43503Perte du flag de transfert de fragments lors de TCP SACK~10 secondes500
GRO Flag LossCVE-2026-43503Perte du flag de transfert de fragments lors de la coalescence GRO~10 secondes550

Les trois : non privilégié → root. Aucune permission spéciale. Uniquement des espaces de noms utilisateur.


Quelle est la classe de bug ?

Chaque exploit de ce dépôt suit le même schéma :

root@kitploit:~
1. Get page-cache pages into a kernel buffer (splice)
2. Bypass the copy-on-write defense
3. Write in-place → read-only file corrupted in memory

Ce qui diffère, c'est comment la défense est contournée et ce qui effectue l'écriture :


La lignée

root@kitploit:~
2016  Dirty COW         COW race via mmap + fork
2022  Dirty Pipe        Stale PIPE_BUF_FLAG_CAN_MERGE in splice
2026  Copy Fail         AF_ALG in-place AEAD on page-cache scatterlist
2026  Dirty Frag        ESP skip_cow on splice'd frags (missing flag)
2026  Fragnesia         skb_try_coalesce drops SHARED_FRAG flag
2026  Dirty Pedit  ←    TC pedit COW gap, no crypto needed
2026  skb_shift    ←    TCP SACK drops SHARED_FRAG, ESP writes
2026  GRO Flag Loss ←   GRO merge drops SHARED_FRAG, ESP writes

Versions concernées

Configurations par défaut. Aucun durcissement nécessaire pour être vulnérable. Si vous utilisez Linux, vous étiez concerné.


Pourquoi Dirty Pedit est différent

skb_shift et GRO utilisent tous deux la même technique d'exploitation : perdre le flag SKBFL_SHARED_FRAG, puis laisser la crypto ESP faire un XOR dans les pages du cache de pages, un octet à la fois, à l'aide d'une table de correspondance IV précalculée.

Dirty Pedit est un tout autre animal :

  • Pas de crypto. Pas de XFRM, pas d'ESP, pas d'AES-GCM, pas de tables IV.
  • Écriture directe. TC pedit écrit exactement les octets que vous spécifiez via skb_store_bits.
  • Moins d'une seconde. Un paquet = 12 octets écrits. Root en un seul coup.
  • Contournement de défense différent. Ne touche pas du tout à SHARED_FRAG — casse skb_ensure_writable par débordement d'entier.

Compilation

root@kitploit:~
# Build all three
cd dirty_pedit && gcc -static -O2 -o exploit exploit.c && cd ..
cd skb_shift   && gcc -static -O2 -o exploit exploit.c && cd ..
cd gro         && gcc -static -O2 -o exploit exploit.c && cd ..

Chaque exploit est un fichier C unique et autonome. Aucune dépendance au-delà de libc.


Exécution

root@kitploit:~
# Any of the three (as unprivileged user):
./exploit
# → root shell

Prérequis : noyau Linux dans la plage de versions concernée + CONFIG_USER_NS=y (par défaut sur toutes les distributions majeures).


Sortie (Dirty Pedit)

root@kitploit:~
[*] Dirty Pedit — Local Privilege Escalation
[*] uid=1000 pid=42
[*] Victim line at offset 186: nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
[*] Injecting user 'a' (uid=0, no password) over victim line...
[+] User 'a' injected with uid=0!
[+] Running: su a
# id
uid=0(root) gid=0(root) groups=0(root)

Sortie (skb_shift / GRO)

root@kitploit:~
[*] uid=1000 euid=1000
[*] IV table pre-computed (256 entries)
[*] Writing 192 bytes to /usr/bin/su...
  [120] 0x00→0x48 ... OK
  [121] 0x00→0x31 ... OK
[*] Write complete: 192/192
[!] /usr/bin/su page cache overwritten!
# whoami
root

Propriétés clés


Divulgation responsable

Toutes les vulnérabilités ont été divulguées de manière responsable à l'équipe de sécurité du noyau Linux et aux mainteneurs réseau. Les correctifs sont fusionnés en amont et rétroportés vers les arbres stables.

  • CVE-2026-46331 : Corrigé en v7.1-rc7, commit 899ee91156e5
  • CVE-2026-43503 : Corrigé en v7.1-rc5, commit 48f6a5356a33

Ces exploits sont publiés à des fins éducatives et défensives, une fois les correctifs disponibles. La corruption du cache de pages est limitée à la mémoire — un redémarrage ou echo 1 > /proc/sys/vm/drop_caches restaure les fichiers d'origine.


Auteur

Rajat Gupta — Offensive Security @ Qualcomm


Licence

MIT

Télécharger l’outil
ExploitDéfense contournéeÉcrivain
Dirty Peditskb_ensure_writable (débordement u32 → COW partiel)skb_store_bits (écriture directe de 4 octets)
skb_shiftflag SKBFL_SHARED_FRAG perdu lors de TCP SACKdéchiffrement ESP AES-GCM (1 octet par paquet)
GRO Flag Lossflag SKBFL_SHARED_FRAG perdu lors d'une fusion GROdéchiffrement ESP AES-GCM (1 octet par paquet)
ExploitIntroduitCorrigéDistributions concernées
Dirty Peditv5.18 (mai 2022)v7.1-rc7Ubuntu, RHEL, Debian, Fedora, SUSE
skb_shiftv3.9 (2013)v7.1-rc5Toutes les distributions depuis 13 ans
GRO Flag Lossv3.9 (2013)v7.1-rc5Toutes les distributions depuis 13 ans
PropriétéDirty Peditskb_shiftGRO
PrivilègesAucun (userns)Aucun (userns)Aucun (userns)
Accès fichierO_RDONLYO_RDONLYO_RDONLY
Crypto requiseNonOui (AES-GCM)Oui (AES-GCM)
Contrôle d'écriture4 octets/paquet1 octet/paquet1 octet/paquet
FiabilitéDéterministeDéterministeProbabiliste (réessai)
Évasion de conteneur K8sNon (pas de veth nécessaire)NonOui (veth+GRO par défaut)
Surface d'attaquegeneve + TCloopback + espintcpveth + ESP-in-UDP