Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
CVE-2026-68138 — Preuve de concept d'un exploit d'élévation de privilèges locale pour une condition de course sur les tables de débit (rate-table) de qdisc sous Linux, utilisant le grooming du tas BPF et une fuite de pipe pour obtenir les privilèges root. | Kitploit
Outils/GitHubGitHub/aramosf/cve-2026-68138
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation de Binaires
GitHubaramosf/cve-2026-68138

CVE-2026-68138

Preuve de concept d'un exploit d'élévation de privilèges locale pour une condition de course sur les tables de débit (rate-table) de qdisc sous Linux, utilisant le grooming du tas BPF et une fuite de pipe pour obtenir les privilèges root.

Voir le dépôt
33611il y a 1 moisVérifié par Kitploit

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

CVE-2026-68138 : course sur la table de débit qdisc de Linux menant au root local

CVE-2026-68138 live exploit

Ce dépôt contient une preuve de concept d'exploitation d'élévation de privilèges locaux pour CVE-2026-68138, une course dans le code des tables de débit du contrôle de trafic Linux. Dans l'environnement QEMU testé, la PoC passe d'un processus ordinaire avec un UID externe 1000 à un shell avec UID 0 dans l'espace de noms utilisateur initial.

Avertissement

Ce code corrompt volontairement l'état du tas (heap) du noyau. Ne l'utilisez que dans une VM isolée et jetable qui vous appartient. Une course manquée ou un nettoyage prématuré peut provoquer un panic dans l'invité. Ne l'exécutez pas sur une station de travail, un serveur ou un système tiers.

Résumé de la vulnérabilité

qdisc_get_rtab() et qdisc_put_rtab() gèrent une liste chaînée simple globale au processus, qdisc_rtab_list, ainsi qu'un simple int refcnt non atomique. Historiquement, les appelants détenaient le mutex RTNL, ce qui sérialisait l'accès à la liste et au compteur de références.

Le classifieur flower définit TCF_PROTO_OPS_DOIT_UNLOCKED. Une requête RTM_NEWTFILTER pour une règle flower peut par conséquent atteindre une action police et appeler les fonctions d'aide des tables de débit qdisc sans RTNL :

tc_new_tfilter()
  -> fl_change()
     -> tcf_exts_validate_ex()
        -> tcf_action_init()
           -> tcf_police_init()
              -> qdisc_get_rtab()/qdisc_put_rtab()

Des requêtes concurrentes utilisant la même table de débit peuvent entrer en course sur la liste globale et son compteur de références. Le résultat est une utilisation après libération (use-after-free) ou une double libération de struct qdisc_rate_table, un objet de 1056 octets alloué depuis kmalloc-2k sur le noyau x86-64 testé.

Comme la liste est globale plutôt que propre à chaque espace de noms réseau, des requêtes provenant d'espaces de noms réseau distincts entrent toujours en course sur le même objet.

Versions concernées et corrigées

L'enregistrement CNA Linux identifie le commit d'introduction 470502de5bdb, publié dans Linux 5.1.

LigneStatutCommit/version
Linux antérieur à 5.1Non concernéLa modification d'introduction est absente
Linux 5.1 à 7.1.5Concerné sauf si un rétroportage du fournisseur est présentDe 470502de5bdb jusqu'au commit précédant le correctif stable
Linux 7.1.yCorrigé7.1.6, fb29e1b41052
Série de développement Linux 7.2Concerné avant rc5De rc1 à rc4
MainlineCorrigé7.2-rc5, f43ee0c0730d

Les noyaux de distribution rétroportent fréquemment les correctifs sans passer à la version amont indiquée ci-dessus. Vérifiez si l'un ou l'autre des commits de correctif — ou la modification équivalente du spinlock des tables de débit qdisc — est présent dans la source exacte du noyau utilisée par le système.

L'exploit a été développé et validé contre le commit vulnérable 92d3817649df2b0b6a008a686c8275c88d7ef594, parent direct du correctif mainline. Le témoin du noyau corrigé utilisait f43ee0c0730d6191629b5ee1ceae27b1ebfdc047.

Statut dans les distributions Ubuntu

Au 2026-08-12, la recherche du suivi CVE Ubuntu ne renvoyait aucune entrée pour cette CVE. Le tableau ci-dessous est donc une inspection directe des sources, et non une détermination du statut de sécurité Canonical. Chaque tag Ubuntu lié possède toujours qdisc_rtab_list non verrouillé et ne contient pas le correctif qdisc_rtab_lock.

Ligne UbuntuPaquet/tag inspectéRésultat source
Ubuntu 22.04 GA5.15.0-187.197Code vulnérable présent ; exploit complet reproduit dans QEMU
Ubuntu 22.04 HWE6.8.0-136.136~22.04.1Code vulnérable présent ; chaîne d'exploitation non testée
Ubuntu 24.04 HWE7.0.0-28.28~24.04.1Code vulnérable présent ; cette chaîne d'exploitation n'est pas compatible avec son durcissement de l'allocateur
Ubuntu 26.047.0.0-28.28Code vulnérable présent ; cette chaîne d'exploitation n'est pas compatible avec son durcissement de l'allocateur

Aucun paquet Ubuntu corrigé n'a été identifié à cette date d'inspection. Les futurs paquets Ubuntu devront être vérifiés pour un rétroportage équivalent aux correctifs amont liés, plutôt que jugés uniquement par leur numéro de version.

L'exploit Ubuntu 22.04 spécifique à cette build, le laboratoire QEMU, la somme de contrôle exacte de l'image et les conditions sont documentés dans ubuntu/README.md. Il a été validé contre le noyau officiel 5.15.0-187-generic #197-Ubuntu avec la comptabilité memory-cgroup activée.

Conditions requises par la PoC principale

Le bug sous-jacent et cette chaîne d'exploitation particulière ont des exigences différentes. La PoC a été validée avec :

  • Linux x86-64 et quatre CPU virtuelles ;
  • espaces de noms utilisateur non privilégiés et espaces de noms réseau activés ;
  • CONFIG_USER_NS=y et CONFIG_NET_NS=y ;
  • CONFIG_NET_CLS=y, CONFIG_NET_CLS_FLOWER=y, CONFIG_NET_CLS_ACT=y et CONFIG_NET_ACT_POLICE=y ;
  • filtres de socket BPF classiques et prise en charge du BPF JIT ;
  • CONFIG_TMPFS_XATTR=y pour le spray de tas simple_xattr ;
  • CONFIG_MODULES=y et un /sbin/modprobe utilisable pour le helper root final ;
  • CONFIG_MEMCG=n, afin que les allocations qdisc/BPF/pipe/xattr utilisées par cette chaîne partagent le cache kmalloc-2k attendu ;
  • une limite de descripteurs de fichiers par processus d'au moins 4096 ; et
  • une VM jetable avec environ 5 Gio de RAM.

CONFIG_SLAB_BUCKETS=y, la randomisation des freelistes et le durcissement des freelistes étaient activés dans le noyau de test réussi. KASLR n'est pas contourné de manière inhérente avec une adresse codée en dur : la PoC obtient les pointeurs de page et d'opérations requis à partir de la fuite par pipe. Le laboratoire fourni utilisait nokaslr pour simplifier le débogage.

Les noyaux avec comptabilité memory-cgroup activée ou des dispositions d'allocateur/cache différentes nécessitent une stratégie de récupération différente. La PoC refuse délibérément de revendiquer une portabilité à travers des configurations de distribution arbitraires.

La variante Ubuntu distincte met en œuvre cette stratégie de récupération différente ; ses exigences sont volontairement plus restreintes et sont listées dans ubuntu/README.md.

Processus d'exploitation

1. Déclencher la course qdisc

Télécharger l’outil