flawopen.com/Incidents/openai-community-forum-heif-sso-chain-september-2026
OpenAI फ़ोरम से SSO तक की शृंखला: CVE-2026-32882
Hacktron ने Discourse की छवि-प्रसंस्करण प्रक्रिया से होकर libheif के अल्फ़ा-प्लेन की सीमा-बाह्य रीड और OpenAI की अलग SSO खामी को जोड़ने वाली शृंखला की सूचना दी। CVE-2026-32882 को libheif 1.22.0 में ठीक किया गया; शोधकर्ताओं का कहना है कि पहुँच साबित करने वाला अहानिकर pull request जमा करने के बाद उन्होंने परीक्षण रोक दिया।[4], [1], [2]
दो पारदर्शी शीट की कल्पना करें: एक में रंगीन खानों की चौड़ी पंक्ति है और दूसरी में पारदर्शिता के मानों की संकरी पंक्ति। डिकोडर ने अगला पारदर्शिता मान खोजने के लिए रंगीन शीट की पंक्ति की लंबाई इस्तेमाल की। हर पंक्ति के साथ पढ़ना छोटी शीट के बाहर और आगे बढ़ता गया। सुधार में पारदर्शिता वाली शीट की अपनी पंक्ति-लंबाई इस्तेमाल होती है।[1]
इस पेज के मुख्य शब्द
HEIF / HEIC- छवियों का कंटेनर फ़ॉर्मैट। HEIF फ़ाइल में व्युत्पन्न छवियाँ, ओवरले और अलग रंग तथा अल्फ़ा प्लेन हो सकते हैं; डिकोडर को हर प्लेन की अपनी सीमा बनाए रखनी चाहिए।[1]
libheif- HEIF और AVIF छवियों को डिकोड और एन्कोड करने वाली नेटिव लाइब्रेरी। Discourse की सलाहकार सूचना इसकी छवि-अपलोड प्रक्रिया को
CVE-2026-32882से जोड़ती है।[1], [2] Stride- छवि प्लेन की एक पंक्ति के आरंभ से अगली पंक्ति के आरंभ तक बाइटों की संख्या। अलग बिट-गहराई के कारण रंग और अल्फ़ा प्लेन के stride अलग हो सकते हैं।[1]
CWE-125- सीमा-बाह्य रीड: सॉफ़्टवेयर बफ़र के लिए आवंटित मेमोरी क्षेत्र से आगे पढ़ता है। यहाँ अल्फ़ा-प्लेन का पता रंग-प्लेन के stride से आगे बढ़ाया गया।[1]
SSO विश्वास-सीमा- लॉगिन सेवा और ऐप्लिकेशन के बीच पहचान-संबंध। Hacktron के अनुसार OpenAI फ़ोरम के SSO संबंध ने फ़ोरम के अलग समझौते का प्रभाव बढ़ाया; सार्वजनिक रिपोर्ट में SSO की सटीक खामी या उसका पैच नहीं बताया गया।[4]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-125
घटना का समयक्रम (Timeline)
libheif के अनुरक्षक ने GHSA-hg7q-rjr2-8x46 प्रकाशित किया, CVE-2026-32882 दर्ज किया और libheif 1.22.0 को ठीक संस्करण बताया।[1]
Hacktron के अनुसार शोधकर्ता Discourse की छवि प्रक्रिया के रास्ते OpenAI फ़ोरम तक पहुँचे, OpenAI की SSO खामी की सूचना दी और पहुँच साबित करने वाला अहानिकर pull request जमा करने के बाद परीक्षण रोक दिया।[4]
Discourse ने GHSA-vhm9-85gw-x335 प्रकाशित किया, ठीक किए गए संस्करण सूचीबद्ध किए और स्वयं-प्रबंधित इंस्टॉलेशन को दोबारा बनाने की सलाह दी।[2]
Hacktron ने समन्वित प्रकटीकरण का विवरण प्रकाशित किया। रिपोर्ट कहती है कि OpenAI ने SSO सुधार की पुष्टि की और स्पष्ट करती है कि इनाम OpenAI-पक्ष की खोज के लिए था, Discourse-होस्ट किए गए फ़ोरम पर परीक्षण के लिए नहीं।[4]
हमले का चरण-दर-चरण प्रवाह
रंग-प्लेन का लेआउट अल्फ़ा के लिए इस्तेमाल होता है
HeifPixelImage::overlay() में असुरक्षित कोड alpha_p को y * in_stride से आगे बढ़ाता है, जबकि उस प्लेन के लिए alpha_stride लिया गया था। अल्फ़ा और रंग की बिट-गहराई अलग होने पर पंक्ति के आकार अलग होते हैं और पढ़ना अल्फ़ा आवंटन से आगे जा सकता है। अपस्ट्रीम सलाहकार सूचना इसे CWE-125 बताती है।[1]
आगे का प्रभाव होस्ट प्रक्रिया पर निर्भर है
libheif की सलाहकार सूचना क्रैश या डिकोड किए गए पिक्सेल के ज़रिए संभावित जानकारी-प्रकटीकरण बताती है। Discourse की अलग सूचना अपलोड प्रक्रिया में रिमोट कोड निष्पादन बताती है और Discourse समस्या को CVSS 8.8 देती है। इस उत्पाद-स्तरीय असर और स्कोर को CVE के अपने CVSS 7.1 तथा सीमा-बाह्य रीड से न मिलाएँ।[1], [2]
अलग SSO खामी ने बताई गई शृंखला का प्रभाव बढ़ाया
Hacktron का कहना है कि फ़ोरम के समझौते के बाद OpenAI SSO समस्या से कर्मचारी ChatGPT/Codex खातों तक पहुँचा गया और अहानिकर pull request ने जुड़े रिपॉज़िटरी तक पहुँच दिखाई। सार्वजनिक साक्ष्य SSO कोड की खामी, खाते की सटीक अनुमतियाँ या पुनः उपयोग योग्य SSO सुधार नहीं दिखाते।[4]
साक्ष्य और दावों की सीमा स्पष्ट रखें
Hacktron कहता है कि पहुँच दिखाने वाले pull request के बाद परीक्षण रोक दिया गया। रिपोर्ट शोधकर्ताओं के नियंत्रित प्रकटीकरण का वर्णन करती है, न कि दुर्भावनापूर्ण घटना या ग्राहक डेटा प्राप्त होने के प्रमाण का। शोधकर्ताओं के अनुसार OpenAI का इनाम उसकी SSO खोज के लिए था और Discourse-होस्ट किए गए फ़ोरम पर परीक्षण उसमें शामिल नहीं थे।[4]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
यह केंद्रित अंश है, स्वतंत्र डिकोडर या पूरे पैच की शब्दशः प्रति नहीं। अनुरक्षक की सूचना असुरक्षित अभिव्यक्ति दिखाती है और कहती है कि libheif 1.22.0 में इसे ठीक किया गया। हर प्लेन को उसके अपने stride से इंडेक्स करें; अलग बिट-गहराई वाले प्लेन में रंग का stride दोहराने से अल्फ़ा रीड बहुत आगे पहुँचती है। होस्ट ऐप में डिकोडर भी अपडेट रखें और अविश्वसनीय अपलोड के रूपांतरण को अलग सैंडबॉक्स में चलाएँ।[1], [3]
// बताए गए access pattern का सरल अंश।
// alpha_stride उपलब्ध था, लेकिन color plane का stride इस्तेमाल हुआ।
uint8_t alpha_value = alpha_p[in_x0 + y * in_stride + x];// alpha plane का अपना row layout उपयोग करें।
// upstream सुधार libheif 1.22.0 में शामिल है।
uint8_t alpha_value = alpha_p[in_x0 + y * alpha_stride + x];इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓स्वयं-प्रबंधित Discourse को GHSA-vhm9-85gw-x335 में सूचीबद्ध ठीक संस्करण पर अपडेट करें और ऐप्लिकेशन इमेज दोबारा बनाएँ; केवल वेब इंटरफ़ेस से अपडेट करने पर नेटिव libheif पैकेज बदलना सिद्ध नहीं होता।[2], [4]
- ✓हर छवि-प्रसंस्करण कंटेनर में वास्तव में उपयोग हो रही libheif की संस्करण संख्या और वितरण के backport की स्थिति जाँचें; अपस्ट्रीम संस्करण संख्या अकेले वितरण पैकेज की सुधार स्थिति नहीं बताती।[6], [4]
- ✓छवि प्लेन को इंडेक्स करते समय उसी प्लेन का stride और आकार इस्तेमाल करें। अलग बिट-गहराई तथा stride वाले रंग और अल्फ़ा प्लेन के लिए regression परीक्षण जोड़ें।[1], [3]
- ✓अविश्वसनीय HEIF/AVIF अपलोड को सीमित, अस्थायी worker में बदलें: फ़ाइल-सिस्टम पहुँच न्यूनतम हो, वातावरण के credentials विरासत में न मिलें और CPU तथा मेमोरी पर सीमाएँ हों।[2]
- ✓पार्सर सुधार से अलग SSO विश्वास-संबंध की समीक्षा करें: issuer, audience, redirect URI, खाता लिंकिंग और session binding जाँचें; पहचान-सीमा टूटने की आशंका हो तो session रद्द करें।[4]
- ✓OpenAI के SSO कार्यान्वयन या सटीक पैच को ज्ञात तथ्य की तरह न लिखें; सार्वजनिक रिपोर्ट शोधकर्ताओं का विवरण देती है, कोड की खामी या सुधार नहीं।[4]