
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 होता है। Responsible disclosure advisory।
Moonshot AI Kimi के HTML artifact Preview में Stored XSS, जो सार्वजनिक Share view के माध्यम से पहुँचा जा सकता है, जिससे session-token की चोरी और account takeover होता है।
| Vendor / product | Moonshot AI — Kimi |
| Components | HTML artifact Preview rendering; सार्वजनिक Share view |
| Weakness | CWE-79 — Improper Neutralization of Input During Web Page Generation |
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 को केवल signed in रहते हुए एक share link खोलना है — share links इसी के लिए होते हैं।
| Observed | How |
|---|---|
| Script executes in the victim's browser | एक request attacker के endpoint तक पहुँची, जो victim के session से उत्पन्न हुई |
| The three values are script-readable | तीनों उस request body में मौजूद थीं |
| The values authenticate on their own | उन्हें एक ऐसे browser में लिखा गया जिसने कभी Kimi में sign in नहीं किया था; reload के बाद, उस browser में authenticated session था |
| The values are the cause | Control: same browser, values omitted, reload — unauthenticated रहा |
इसमें शामिल दोनों accounts researcher द्वारा बनाए और नियंत्रित किए गए थे। किसी भी समय किसी तीसरे पक्ष के data तक पहुँच नहीं की गई।
Chain ऊपर पूरी तरह documented है। Working payload और receiving endpoint withheld हैं — उन्हें प्रकाशित करना attack का वर्णन करने के बजाय उसे हथियार बना देगा।
Artifact prompt इस रूप का होता है:
Generate an HTML page that reads the three localStorage values above
and POSTs them to <attacker endpoint>.