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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-43499-poc — Arme de preuve de concept pour CVE-2026-43499 (GhostLock), un bug du rtmutex du noyau Linux permettant une élévation locale de privilèges. Inclut des chaînes d'exploitation par distribution, des analyses techniques et des tests de fiabilité. | Kitploit
Outils/GitHubGitHub/lkeld/cve-2026-43499-poc
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationExploitation de Binaires
GitHublkeld/cve-2026-43499-poc

CVE-2026-43499-poc

Arme de preuve de concept pour CVE-2026-43499 (GhostLock), un bug du rtmutex du noyau Linux permettant une élévation locale de privilèges. Inclut des chaînes d'exploitation par distribution, des analyses techniques et des tests de fiabilité.

Voir le dépôt
298il y a 1 moisPas encore vérifié

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

Recherche d'armement pour CVE-2026-43499 (ghostlock). le bug du chemin proxy remove_water() de rtmutex qui laisse le pi_blocked_on d'une tâche suspendu dans sa propre pile de noyau éjectée. La classe de bug et la stratégie d'exploit originale sont créditées à nebusec (leur analyse ici) tout ce qui se trouve dans ce dépôt est mon propre travail par distribution :

chaque famille de noyau nécessite des primitives sensiblement différentes et c'est ce qui rend cela si intéressant.

Le déclencheur de Ghostlock est totalement non privilégié (trois futexes, deux threads et aucun namespace). Le processus qui transforme le pointeur suspendu en root est là où chaque distribution diverge, cela dépend de la géométrie des frames, des mitigations, et de ce que « octets contrôlés à une adresse noyau connue » signifie réellement, tout change. Ce dépôt collectera les chaînes par famille cible.

chaînes

CibleChaîneStagingStatut
RHEL/CentOS 7 — 3.10.0-1160.102.1.el7el7/ — page physmap-alias + peintre auxv + marche sched_setschedulerroot-dans-namespace (conteneur privilégié)fonctionnel, test de stress 40/40 sur démarrages propres
RHEL/CentOS 7 — 3.10.0-693.el7même chaîne, géométrie de frame mesuréeidentiquecomposants validés 10/10 ; test de stress en attente

voir le WRITEUP.md de chaque sous-répertoire pour l'analyse technique complète, la cause racine, pourquoi la chaîne standard de l'ère 6.x ne se transfère pas, les découvertes de primitives, ce que j'ai construit à la place, les géométries de frame mesurées, et les données liées à la fiabilité.

la forme générale de chaque chaîne

chaîne d'exploit futex PI

là où les choses deviennent difficiles - la marche valide le ->lock du waiter forgé contre le verrou trouvé via (BUG_ON(w->lock != lock) sur 3.10), donc vous avez besoin de fausses structures dans une mémoire adressable par le noyau à une adresse que vous connaîtriez. c'est ce qui diffère énormément selon le noyau (l'astuce de la zone d'entrée CPU de l'ère 6.x utilisée par nebusec n'existe pas sur 3.10, el7 randomise la carte de base directe, etc.). Chaque analyse documente sa propre réponse.

prérequis - lisez ceci

le bug et le déclencheur : vous n'avez besoin d'aucun privilège, d'aucun namespace utilisateur, de rien. n'importe quel utilisateur local fonctionne.

chaque armement indique son propre staging dans son analyse. La chaîne el7 est stagée depuis root-dans-namespace (en pratique : n'importe quelle RCE dans un conteneur privilégié - cela a été validé depuis une instance MYSQL via son chemin de plugin UDF, qui est une position très typique). Le travail côté noyau après le staging utilise uniquement :

  • /proc/self/pagemap avec de vrais PFN (CAP_SYS_ADMIN dans le namespace)
  • /proc/kcore (CAP_SYS_RAWIO dans le namespace sur el7)
  • /proc/kallsyms non masqué (kptr_restrict=0 ou CAP_SYSLOG)

Aucun de ceux-ci n'est la vulnérabilité elle-même, ce ne sont que les commodités de staging qui remplacent les fuites d'informations que je n'ai pas encore construites. Sur el7 spécifiquement, une chaîne totalement non privilégiée est bloquée pour des raisons structurelles (le BUG_ON de 3.10, pas de CEA, pas de paire de faux verrous statiques dans le .data du noyau, le filtrage PFN de pagemap) L'analyse el7 contient l'analyse complète et les directions de recherche, principalement une primitive de fuite d'informations d'adresse de tête

notes de sécurité

  • Chaque chaîne ici est testée contre des bancs correspondants exacts avec KASLR et la randomisation des régions mémoire activées sous stress aléatoire (démarrages frais, timing avec gigue, placement de pages randomisé).
  • Là où une chaîne pourrait perdre sa course, elle avorte avant de toucher le noyau plutôt que de marcher sur un waiter à moitié forgé. Sur les hôtes panic_on_oops=1, une mauvaise marche provoquera un panic et une machine morte, donc traitez-le comme un paramètre faisant partie de votre modèle de menace lors des tests
  • Ne lancez pas ceci sur des hôtes que vous ne possédez pas ou pour lesquels vous n'êtes pas autorisé à tester :)

structure

el7/
  WRITEUP.md        analyse technique complète pour la chaîne el7
  ghostlock_el7.c   poc fichier unique pour les deux noyaux testés

références

  • NebuSec, IonStack partie II : GhostLock — https://nebusec.ai/research/ionstack-part-2/
  • Correctif : 3bfdc63936dd (« rtmutex : Utiliser waiter::task au lieu de current dans remove_waiter() ») ; suivi NPD 40a25d59e85b
  • Plage affectée : v2.6.39-rc1 → v7.1-rc1 (chaque distribution depuis 2011)
Télécharger l’outil