
CVE-2026-79294 के लिए जिम्मेदार-प्रकटीकरण सलाह, Moonshot AI Kimi के HTML artifact Preview में सार्वजनिक Share view के माध्यम से एक stored XSS जो session-token चोरी और account takeover को सक्षम बनाता है।
CVE-2026-79294 — Moonshot AI Kimi के HTML artifact Preview में Stored XSS, जो सार्वजनिक Share view के माध्यम से पहुँचाया गया, जिससे session token की चोरी हुई और account takeover प्रदर्शित किया गया। जिम्मेदार disclosure advisory।
| Vendor / product | Moonshot AI — Kimi |
| Components | HTML artifact Preview rendering; सार्वजनिक Share view |
| Weakness | CWE-79 — Web Page Generation के दौरान Input का अनुचित Neutralization |
Kimi मॉडल द्वारा उत्पन्न HTML artifacts को Preview pane में एप्लिकेशन के अपने ही origin के अंदर render करता है, बिना script को neutralise किए। किसी conversation को share करने पर वह artifact एक सार्वजनिक Share URL पर प्रकाशित हो जाता है, इसलिए एक account द्वारा लिखा गया script उस लिंक को खोलने वाले किसी भी व्यक्ति के browser में चलता है।
Kimi जिन session values पर निर्भर करता है, वे localStorage में रखी जाती हैं और इसलिए उस
script द्वारा पढ़ी जा सकती हैं:
access_token
refresh_token
msh_user_id
इसलिए script execution script execution पर ही नहीं रुकता। वे तीनों values किसी victim के browser से पढ़ी जा सकती हैं, कहीं भी भेजी जा सकती हैं, और उस victim के रूप में authenticated session प्राप्त करने के लिए replay की जा सकती हैं।
attacker account → artifact containing exfiltration script → public Share
→ victim opens the link → script runs in Kimi's origin
→ the three localStorage values reach the attacker
→ replayed into a clean browser → authenticated as the victim
attacker को एक साधारण account चाहिए। victim को केवल साइन इन रहते हुए एक share link खोलना है — जो कि share links का उद्देश्य ही है।
| Observed | How |
|---|---|
| Script victim के browser में चलता है | एक request attacker के endpoint तक पहुँची, जो victim के session से उत्पन्न हुई |
| तीनों values script द्वारा पढ़ने योग्य हैं | तीनों उस request body में मौजूद थीं |
| values स्वयं ही authenticate करती हैं | उन्हें एक ऐसे browser में लिखा गया जिसने कभी Kimi में साइन इन नहीं किया था; reload के बाद, उस browser में एक authenticated session था |
| values ही कारण हैं | Control: वही browser, values हटाकर, reload — unauthenticated ही रहा |
इसमें शामिल दोनों accounts researcher द्वारा बनाए और नियंत्रित किए गए थे। किसी भी समय किसी तृतीय पक्ष के डेटा तक पहुँच नहीं की गई।
Chain का पूरा विवरण ऊपर प्रलेखित है। कार्यशील payload और प्राप्त करने वाला endpoint रोका गया है — उन्हें प्रकाशित करना हमले का वर्णन करने के बजाय उसे सशस्त्र बना देगा।
artifact prompt इस रूप में है:
Generate an HTML page that reads the three localStorage values above
and POSTs them to <attacker endpoint>.