FlawOpen

flawopen.com/Incidents/openai-community-forum-heif-sso-chain-september-2026

● OpenAI / Discourse / libheif · CVE-2026-32882 · 2026-07-25 · CVSS 7.1 · Haute
Recherche · FlawOpen

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]

💡 Explication en Langage Simple (ELI5)

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

2026-05-19

Le mainteneur de libheif publie GHSA-hg7q-rjr2-8x46, identifie CVE-2026-32882 et indique que libheif 1.22.0 est corrigée.[1]

2026-07-25

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]

2026-07-28

Discourse publie GHSA-vhm9-85gw-x335, répertorie les versions corrigées et recommande de reconstruire les installations autogérées.[2]

2026-09-13

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

Étape 1

Une image téléversée atteint un décodeur natif

Hacktron indique que le chemin d’images de Discourse envoyait les fichiers HEIF/HEIC à libheif via ImageMagick, car le flux normal de vérification des images ne prenait pas en charge ce format.[4], [2]

Étape 2

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]

Étape 3

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]

Étape 4

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]

Étape 5

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]

IMPLÉMENTATION VULNÉRABLE
// 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];
PATCH SÉCURISÉ ET ROBUSTE
// 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

Sources