
Exploit d'élévation de privilèges du noyau Linux pour CVE-2026-46242, une condition de concurrence de type utilisation après libération dans epoll, avec un accès root fiable à 99% sur les ordinateurs de bureau, les serveurs et les appareils Android.

Un processus non privilégié s'élevant vers root sur Google kernelCTF.
Bad Epoll (CVE-2026-46242) est une condition de course de type use-after-free dans le sous-système epoll du noyau Linux. Ce bug permet à un processus non privilégié de devenir root, non seulement sur les ordinateurs de bureau et serveurs Linux, mais aussi sur les appareils Android.
Bad Epoll a été signalé et exploité par Jaeyoung Chung en tant que soumission 0-day à Google kernelCTF, qui récompense un exploit du noyau Linux à hauteur de 71 337 $+. La soumission Bad Epoll a reçu une récompense de 92 337 $.
[!NOTE] L'IA d'Anthropic, Mythos, a trouvé un autre bug de course dans le même code epoll mais a manqué Bad Epoll.
Un bug rare qui peut rooter Android. La plupart des bugs d'élévation de privilèges sous Linux ne peuvent pas du tout rooter Android. Copy Fail et ses variantes, par exemple, nécessitent des modules qu'Android ne charge jamais. Sur les quelque 130 vulnérabilités exploitées sur le kernelCTF de Google, seulement une dizaine sont candidates pour rooter Android. Bad Epoll est l'une d'entre elles.
Aucun interrupteur d'arrêt. Copy Fail et ses variantes peuvent être neutralisés en déchargeant leurs modules vulnérables, mais epoll n'offre pas une telle option. C'est une fonctionnalité centrale du noyau sur laquelle le système d'exploitation, les services réseau et les navigateurs s'appuient tous. Le seul moyen de le corriger est d'appliquer le patch.
Fenêtre de course minuscule, mais l'attaque est fiable à 99 %. La fenêtre de course du bug ne fait qu'environ six instructions de large, et une tentative normale ne l'atteint presque jamais. L'exploit élargit cette fenêtre et exécute une boucle de réessai qui ne fait jamais planter le noyau. Le résultat est un exploit fiable à 99 %, comme le décrit l'aperçu de l'attaque ci-dessous.
Un seul commit en 2023 a introduit deux conditions de course distinctes dans le code epoll, qui ne compte qu'environ 2 500 lignes au total. Les deux se sont révélées être des bugs critiques pouvant mener à une élévation de privilèges.
Le premier a été trouvé par Mythos d'Anthropic et signalé comme CVE-2026-43074, avec les détails dans le rapport public d'Anthropic, ANT-2026-CM0TCREP. Ce résultat est impressionnant en soi, car les bugs de course du noyau sont connus pour être difficiles à trouver. Il a démontré la capacité d'un modèle d'IA de pointe à trouver des bugs de course. Un chercheur indépendant a ensuite soumis un exploit 1-day pour celui-ci à kernelCTF.
L'autre course est Bad Epoll, que Mythos a manqué. Étant donné que Mythos a trouvé le premier bug dans ce petit chemin de code epoll, il a probablement examiné la même zone avec une profondeur significative. Nous ne pouvons pas savoir exactement pourquoi il a manqué Bad Epoll, mais deux facteurs l'ont probablement rendu difficile à trouver.
La fenêtre de course est minuscule. Elle ne fait qu'environ six instructions de large, donc l'entrelacement exact des threads est difficile à imaginer même en regardant le code vulnérable.
Il y avait peu de preuves à l'exécution. Après la correction de CVE-2026-43074, le use-after-free de Bad Epoll ne déclenche généralement pas KASAN, le principal détecteur d'erreurs mémoire du noyau. Sans ce signal, Mythos n'a peut-être pas eu suffisamment de confiance pour le signaler comme un vrai bug.
Bad Epoll a également été difficile à corriger. Le premier patch des mainteneurs n'a pas entièrement corrigé le problème, et un patch correct n'a été intégré que deux mois après le premier signalement du bug. C'est long pour un noyau qui traite habituellement les problèmes de sécurité avec urgence.
Dans l'ensemble, Bad Epoll montre à quel point les conditions de course sont difficiles à chaque étape. Elles sont difficiles à trouver même pour un modèle de pointe, difficiles à corriger correctement et, comme le montre la section suivante, difficiles à exploiter de manière fiable. Cela suggère également une direction de recherche sur les vulnérabilités qui reste digne d'être explorée en présence de modèles d'IA de pointe : découvrir un impact de sécurité réel derrière des conditions temporelles étroites et des preuves faibles.
[!NOTE] Les chercheurs indépendants Qi Tang et Junxi Qian ont également signalé CVE-2026-43074 à l'équipe du noyau Linux le 30 mars 2026, le même jour qu'Anthropic. Leurs noms ont été omis par inadvertance des crédits pour le correctif upstream. Merci à Guidong Han d'avoir signalé ces rapports indépendants. Les trois chercheurs ont ensuite trouvé encore une autre condition de course de type use-after-free dans epoll.
Voici un aperçu de haut niveau de l'attaque, pour les curieux.
Deux objets epoll liés. Les fermer tous les deux en même temps déclenche la course.
Deux des chemins de fermeture d'epoll s'exécutent en même temps et entrent en collision. L'un libère un objet pendant que l'autre y écrit encore, et c'est le use-after-free (UAF).
La fenêtre de course, et comment l'exploit la pilote.
L'exploit utilise quatre objets epoll regroupés en deux paires. Une paire déclenche la course, tandis que l'autre devient la victime. À partir de là, l'exploit transforme l'écriture UAF de 8 octets en un UAF sur un objet fichier, et utilise une attaque cross-cache pour contrôler entièrement le contenu du fichier.