1 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Une vulnérabilité UAF due à une condition de concurrence dans le sous-système epoll du noyau Linux permet à un processus non privilégié d’obtenir les droits root, aussi bien sur des postes de travail et serveurs Linux que sur des appareils Android
  • Cette vulnérabilité a été signalée et exploitée comme 0-day par Jaeyoung Chung auprès de Google kernelCTF, qui offre des récompenses de 71 337 $ et plus pour les exploits du noyau Linux
  • L’IA Mythos d’Anthropic a trouvé un autre bug de condition de concurrence dans le même code epoll, CVE-2026-43074, mais a manqué Bad Epoll
  • epoll étant une fonction cœur du noyau dont dépendent les systèmes d’exploitation, les services réseau et les navigateurs, il ne peut pas être désactivé ; sans contournement simple, la seule solution est d’appliquer le correctif
  • La vulnérabilité a été introduite par le commit du 08/04/2023 58c9b016e128 et corrigée par le commit du 24/04/2026 a6dc643c6931 ; les distributions utilisant un noyau basé sur v6.4 ou ultérieur sans backport du correctif peuvent être affectées

Nature et gravité de Bad Epoll

  • Bad Epoll est une vulnérabilité use-after-free (UAF) due à une condition de concurrence dans le sous-système epoll du noyau Linux, identifiée sous CVE-2026-46242
  • Un processus non privilégié peut obtenir les droits root, et la vulnérabilité peut affecter non seulement les postes de travail et serveurs Linux, mais aussi les appareils Android
  • Elle a été soumise comme 0-day à Google kernelCTF, et signalée et exploitée par Jaeyoung Chung
  • kernelCTF offre des récompenses de 71 337 $ et plus pour les exploits du noyau Linux

Pourquoi c’est dangereux

  • Il s’agit d’un bug d’élévation de privilèges Linux rare par sa possibilité de root Android
    • Beaucoup de vulnérabilités d’élévation de privilèges Linux nécessitent des modules qu’Android ne charge pas, et ne mènent donc pas à un root Android
    • Parmi environ 130 vulnérabilités exploitées dans Google kernelCTF, une dizaine seulement sont candidates au root Android, et Bad Epoll en fait partie
  • Il peut être déclenché même dans le renderer sandbox de Chrome
    • Cette sandbox bloque presque tous les autres bugs du noyau
    • En chaînant un exploit de renderer avec Bad Epoll, on peut atteindre un impact d’exécution de code noyau similaire au cas montré par Project Zero avec MSG_OOB
  • epoll n’a pas de kill-switch
    • Les vulnérabilités de la famille Copy Fail peuvent être neutralisées en déchargeant le module vulnérable
    • epoll est une fonction cœur dont dépendent les systèmes d’exploitation, les services réseau et les navigateurs, et ne peut donc pas être désactivé
    • La seule solution consiste à appliquer le correctif
  • La fenêtre de concurrence est extrêmement petite, de l’ordre de 6 instructions
    • Les tentatives ordinaires ont très peu de chances de réussir
    • L’exploit élargit la fenêtre de concurrence et exécute une boucle de réessai qui ne fait pas planter le noyau
    • Il atteint ainsi un niveau de fiabilité d’environ 99 % sur la cible kernelCTF

Le bug manqué par Mythos

  • En 2023, un seul commit 58c9b016e128 a introduit deux conditions de concurrence distinctes dans environ 2 500 lignes de code epoll
  • Mythos d’Anthropic en a trouvé une, signalée sous CVE-2026-43074
    • Ce résultat constitue un cas significatif, compte tenu de la difficulté à détecter les bugs de condition de concurrence dans le noyau
    • Par la suite, un chercheur indépendant a soumis à kernelCTF un exploit 1-day pour cette vulnérabilité
  • L’autre condition de concurrence est Bad Epoll, que Mythos a manquée
    • Comme Mythos a trouvé le premier bug dans le même petit chemin de code epoll, il est possible qu’il ait exploré cette zone de manière significative
    • La raison exacte pour laquelle Bad Epoll a été manqué est inconnue
  • Facteurs ayant pu rendre Bad Epoll difficile à détecter
    • La fenêtre de concurrence n’est que d’environ 6 instructions, ce qui rend difficile d’imaginer l’entrelacement exact des threads en ne regardant que le code vulnérable
    • Après la correction de CVE-2026-43074, l’UAF de Bad Epoll ne déclenche généralement pas KASAN
    • Sans signal KASAN, Mythos n’a peut-être pas eu suffisamment de certitude pour le signaler comme un vrai bug
  • La correction n’a pas non plus été simple
    • Le premier patch du mainteneur n’a pas complètement résolu le problème
    • Le bon correctif a été intégré à la mainline deux mois après le premier signalement

Déroulement de l’attaque

  • Deux chemins de fermeture epoll s’exécutent simultanément et entrent en conflit
    • Pendant qu’un chemin libère l’objet, l’autre continue d’écrire dedans, provoquant une UAF
  • L’exploit organise quatre objets epoll en deux paires
    • Une paire déclenche la condition de concurrence
    • L’autre paire devient l’objet victime
  • Il transforme ensuite une écriture UAF de 8 octets en UAF d’objet file
    • Une attaque cross-cache permet de contrôler l’intégralité du contenu de file
  • Une fois le contrôle obtenu, il assure une lecture arbitraire de la mémoire noyau via /proc/self/fdinfo
  • À la dernière étape, il détourne le flux de contrôle et exécute une chaîne ROP pour obtenir un shell root
  • Documentation technique détaillée

Atténuation et versions affectées

  • epoll ne peut pas être désactivé, il n’existe donc pas de contournement simple
  • La solution consiste à appliquer le commit upstream a6dc643c6931 ou le backport fourni par la distribution
  • Dates d’introduction et de correction de la vulnérabilité
    • Introduction : [58c9b016e128], 08/04/2023
    • Correction : [a6dc643c6931], 24/04/2026
  • Les distributions Linux utilisant un noyau basé sur v6.4 ou ultérieur et n’ayant pas encore appliqué le backport du correctif peuvent être affectées
  • Les noyaux plus anciens basés sur v6.1 ne sont pas affectés, car la vulnérabilité a été introduite dans v6.4

Cibles de l’exploit et état côté Android

  • L’exploit actuel est écrit pour les cibles Google kernelCTF
    • lts-6.12.67 (LTS) : fiable à 99 %
    • cos-121-18867.294.100 (COS) : fiable à 98 %
  • L’exploit Android est encore en cours
    • Pixel 10, kernel v6.6+ : le PoC actuel déclenche l’UAF, et l’exploit root complet est en cours
    • L’exploit Android et le writeup seront publiés une fois terminés
    • Le Pixel 8 et les autres appareils basés sur v6.1 ne sont pas affectés, car la vulnérabilité a été introduite dans v6.4

Chronologie

  • 08/04/2023 : le bug est introduit dans epoll par le commit 58c9b016e128
  • 17/02/2026 : le bug est signalé à security@kernel.org
  • 17/02/2026 : un mainteneur propose un prototype de patch, mais ce n’est pas le bon correctif et la discussion s’interrompt
  • 02/04/2026 : le correctif de CVE-2026-43074 trouvé par Mythos est intégré à la mainline
  • 22/04/2026 : le problème restant est signalé à nouveau
  • 24/04/2026 : le commit de correction de Bad Epoll a6dc643c6931 est intégré à la mainline

Nom et références

  • Le nom Bad Epoll suit la série « Bad » des bugs noyau pouvant permettre un root Android
  • Cette page est une version courte ; l’analyse complète de la root-cause, la documentation d’exploitation et le code sont fournis via des liens séparés

1 commentaires

 
GN⁺ 4 시간 전
Commentaires sur Lobste.rs
  • Le fait que cette vulnérabilité soit accessible depuis la sandbox de Chrome est vraiment énorme, et je suis un peu surpris qu’elle ait été signalée via kCTF et que la récompense se soit limitée à 71 k$.

  • Bryan Cantrill avait encore raison.

    • C’est un peu gênant de l’admettre, mais honnêtement, j’ai eu exactement la même première réaction.
    • Je suis curieux. Je ne connais pas le contexte : sur quoi avait-il raison ?
    • Si possible, j’aimerais bien qu’on me donne un peu de contexte.
  • Ne vous laissez pas tromper par le dépôt qui a l’air vide au premier abord. L’exploit est lié vers le bas du README.
    Je ne l’ai pas encore testé, et il n’y a pas de mesure d’atténuation. Les auteurs affirment qu’il permet aussi de rooter Android ; vu l’écosystème Android, je suppose que mon fabricant ne me fournira un correctif que dans un mois environ. En plus, il fonctionne aussi depuis la sandbox du renderer Chrome.

    • J’ai acheté un téléphone Android en 2023, et sa dernière mise à jour du kernel date de mi-2024. Si ce bug date de cette période, recevoir un correctif pourrait en fait être plutôt rare.
  • Ça fonctionne aussi sur Android ?

    • C’est écrit dans la deuxième phrase.
  • Y a-t-il des infos sur la manière dont cela a été découvert ? Apparemment, Mythos l’a raté ; je me demande si ça a été trouvé avec l’aide d’un autre grand modèle de langage, ou par une revue humaine.
    Et dans ce cas, je me demande aussi pourquoi cette partie a été examinée.

  • « De nombreuses distributions Linux peuvent être affectées si elles utilisent un kernel basé sur v6.4 ou ultérieur et n’ont pas encore rétroporté le correctif. Pour savoir si le commit correctif ci-dessus a été rétroporté, consultez les mises à jour de sécurité du kernel de votre distribution. Les anciens kernels basés sur v6.1 ne sont pas affectés, car le bug a été introduit en v6.4. »
    Dommage. J’espérais que ce serait une bonne méthode pour rooter un téléphone, mais c’est trop récent et ça ne sera probablement pas particulièrement utile. Mon téléphone est en 5.15.