PoC : deux vulnérabilités DoS dans Discord via parsing WebM/Vorbis et M4A (Chromium/FFmpeg)
đ Contexte PubliĂ© le 15/09/2026 sur GitHub (aftermathlabs/discord-crasher), ce dĂ©pĂŽt prĂ©sente media-gen, un outil en ligne de commande Rust permettant de gĂ©nĂ©rer deux cas de test de vulnĂ©rabilitĂ©s de parsing mĂ©dia affectant Discord Desktop 1.0.9257 (Electron 42.11.1 / Chromium 148.0.7778.280) et Chrome 153.0.8010.48. đŻ Cas 1 : WebM/Vorbis â Crash du renderer (STATUS_BREAKPOINT) MĂ©canisme : Un fichier WebM avec une piste A_VORBIS est modifiĂ© pour exploiter un DiscardPadding nĂ©gatif Matroska converti en saut avant Vorbis. Un « bridge » est construit pour couvrir Ă la fois lâancien chemin Vorbis Ă dĂ©lai dâun buffer et le chemin actuel Ă rejet immĂ©diat. Impact : Le renderer se termine avec 0x80000003 (STATUS_BREAKPOINT) dans AudioDiscardHelper::ProcessBuffers de Chromium, car lâinvariant discarded_frames <= decoder_delay (129 <= 128) Ă©choue. DĂ©clencheur : Lecture/dĂ©codage du fichier mĂ©dia (le simple chargement des mĂ©tadonnĂ©es ne suffit pas). SHA-256 du fichier gĂ©nĂ©rĂ© : a0ab9e146c629f037b86612addc1ab6fff9200711d45aa5f5edbb9576cc206ac đŻ Cas 2 : M4A â Allocation mĂ©moire excessive (~6,6 Go) MĂ©canisme : Un fichier M4A est modifiĂ© pour dĂ©clarer un nombre de samples constant (sample_count = 178,956,969) dans les tables stsz, stsc et stts. Le dĂ©muxeur FFmpeg intĂ©grĂ© Ă Discord traite ce compteur comme autoritaire et alloue ~36 octets par entrĂ©e (AVIndexEntry + tables de timing). Impact : Le renderer Discord atteint un pic de mĂ©moire privĂ©e de 6,614,761,472 octets (~6,6 Go) lors du chargement des mĂ©tadonnĂ©es. ClassĂ© CWE-400 (consommation de ressources non contrĂŽlĂ©e). DĂ©clencheur : Chargement des mĂ©tadonnĂ©es aprĂšs passage de preload="none" Ă metadata sur lâĂ©lĂ©ment audio. Valeur limite : 178,956,970 est rejetĂ©e par FFmpeg et ne dĂ©clenche pas lâallocation. đ ïž MĂ©thode de dĂ©couverte : BLARE2 Lâoutil blare2 (instrumentation binaire) a Ă©tĂ© utilisĂ© pour : ...