flawopen.com/Incidents/openai-community-forum-heif-sso-chain-september-2026
Chaîne du forum au SSO d’OpenAI : CVE-2026-32882
Hacktron a décrit une chaîne entre une lecture hors limites du plan alpha de libheif, via le traitement d’images de Discourse, et une faille distincte du SSO d’OpenAI. CVE-2026-32882 est corrigée dans libheif 1.22.0 ; les chercheurs indiquent avoir arrêté après une pull request inoffensive prouvant l’accès.[4], [1], [2]
Imaginez deux feuilles transparentes : l’une a une rangée large de carrés colorés, l’autre une rangée plus étroite de valeurs de transparence. Le décodeur a utilisé la longueur de la rangée colorée pour trouver la valeur de transparence suivante. À chaque rangée, la lecture s’éloignait davantage de la petite feuille. Le correctif utilise la longueur propre à la rangée de transparence.[1]
Concepts Clés et Termes
HEIF / HEIC- Format conteneur d’images. Un fichier HEIF peut inclure des images dérivées, des superpositions et des plans couleur et alpha séparés, que le décodeur doit maintenir dans leurs propres limites.[1]
libheif- Bibliothèque native qui décode et encode les images HEIF et AVIF. L’avis de Discourse relie son chemin de traitement des téléversements d’images à
CVE-2026-32882.[1], [2] Stride- Nombre d’octets entre le début d’une ligne d’un plan d’image et celui de la suivante. Des profondeurs de bits différentes peuvent donner des strides différents aux plans couleur et alpha.[1]
CWE-125- Lecture hors limites : le logiciel lit au-delà de la région mémoire allouée à un tampon. Ici, l’adresse du plan alpha avançait avec le stride du plan couleur.[1]
Frontière de confiance SSO- Relation d’identité entre un service de connexion et une application. Hacktron indique que la relation SSO du forum OpenAI a amplifié l’impact de la compromission distincte du forum ; le rapport public ne révèle ni la faille SSO exacte ni son correctif.[4]
Correspondances de référentiels
- Référence CWE pour la faiblesse décrite dans ce guide : CWE-125
Chronologie de l'Incident
Le mainteneur de libheif publie GHSA-hg7q-rjr2-8x46, identifie CVE-2026-32882 et indique que libheif 1.22.0 est corrigée.[1]
Hacktron affirme que ses chercheurs ont atteint le forum OpenAI via le chemin d’images de Discourse, signalé le problème SSO côté OpenAI et arrêté les tests après une pull request inoffensive prouvant l’accès.[4]
Discourse publie GHSA-vhm9-85gw-x335, répertorie les versions corrigées et recommande de reconstruire les installations autogérées.[2]
Hacktron publie son récit de la divulgation coordonnée. Le rapport indique qu’OpenAI a confirmé le correctif SSO et précise que la récompense reconnaissait cette découverte côté OpenAI, et non les tests sur le forum hébergé par Discourse.[4]
Déroulement de l'Attaque Étape par Étape
Le layout du plan couleur sert aussi au plan alpha
Dans HeifPixelImage::overlay(), le code vulnérable avance alpha_p de y * in_stride alors que alpha_stride a été obtenu pour ce plan. Si les profondeurs de bits alpha et couleur diffèrent, les lignes ont des tailles différentes et la lecture peut dépasser l’allocation alpha. L’avis upstream classe le défaut CWE-125.[1]
L’impact en aval dépend du chemin hôte
L’avis libheif décrit un plantage ou une divulgation potentielle via les pixels décodés. L’avis distinct de Discourse décrit une exécution de code à distance via son chemin de téléversement et attribue CVSS 8.8 au problème Discourse. Ne remplacez pas cette gravité produit par le CVSS 7.1 et la lecture hors limites propres à la CVE.[1], [2]
Une faille SSO distincte a élargi la chaîne rapportée
Hacktron affirme que la compromission du forum a permis d’accéder aux comptes ChatGPT/Codex d’employés via un problème SSO OpenAI et qu’une pull request inoffensive a démontré l’accès au dépôt connecté. Les sources publiques ne révèlent pas le défaut du code SSO, les droits exacts du compte ni un correctif SSO réutilisable.[4]
Limitez les preuves et les affirmations
Hacktron indique avoir arrêté les tests après la pull request prouvant l’accès. Son rapport décrit une divulgation contrôlée par des chercheurs, pas un incident malveillant ni une preuve que des données clients ont été obtenues. Les chercheurs précisent aussi que la récompense d’OpenAI couvrait la faille SSO de l’entreprise et excluait les tests sur le forum hébergé par Discourse.[4]
Code Source : Vulnérable vs Sécurisé
Cet extrait ciblé n’est ni un décodeur autonome ni la reproduction littérale du correctif complet. L’avis du mainteneur identifie l’expression vulnérable et précise que le problème est corrigé dans libheif 1.22.0. Chaque plan doit être indexé avec son propre stride ; réutiliser le stride couleur fait avancer trop loin la lecture alpha lorsque les plans ont des profondeurs de bits différentes. Dans l’application hôte, maintenez aussi les décodeurs à jour et isolez la conversion des téléversements non fiables.[1], [3]
// Extrait simplifié du modèle d’accès décrit.
// alpha_stride était disponible, mais le stride de la couleur a été utilisé.
uint8_t alpha_value = alpha_p[in_x0 + y * in_stride + x];// Utilisez la disposition des lignes du plan alpha.
// Le correctif amont est disponible dans libheif 1.22.0.
uint8_t alpha_value = alpha_p[in_x0 + y * alpha_stride + x];Liste de Contrôle de Sécurité pour l'Ingénierie
- ✓Pour Discourse autogéré, passez à une version corrigée indiquée dans GHSA-vhm9-85gw-x335 et reconstruisez l’image de l’application ; une mise à jour via l’interface web seule ne prouve pas que le paquet natif libheif a changé.[2], [4]
- ✓Inventoriez la version de libheif réellement présente dans chaque conteneur de traitement d’images et vérifiez les rétroportages de la distribution ; la version upstream seule peut ne pas refléter l’état corrigé du paquet distribué.[6], [4]
- ✓Pour indexer un plan d’image, utilisez son stride et ses dimensions. Ajoutez des tests de régression où les plans alpha et couleur ont des profondeurs de bits et des strides différents.[1], [3]
- ✓Exécutez la conversion HEIF/AVIF des téléversements non fiables dans un worker isolé et éphémère, avec un accès minimal au système de fichiers, sans identifiants ambiants et avec des limites CPU et mémoire.[2]
- ✓Examinez les relations de confiance SSO séparément du correctif du parseur : validez émetteur, audience, URI de redirection, association de compte et liaison de session ; révoquez les sessions si la frontière d’identité a pu être franchie.[4]
- ✓Ne présentez pas comme connues l’implémentation SSO d’OpenAI ou son correctif exact ; le rapport public donne le récit des chercheurs, pas le défaut ni le correctif au niveau du code.[4]