
CVE-2026-6765, केवल परीक्षण Firefox में उजागर FormAutofill हैंडलर
Mozilla द्वारा MFSA 2026-30 में श्रेय दिया गया रिपोर्टर: Abdulaziz Alasaiqah। यह निर्देशिका इस भेद्यता के लिए एक वास्तविक पुनरुत्पादन हार्नेस रखती है। इसे स्थानीय रूप से डाउनलोड किए गए भेद्य Firefox बिल्ड के विरुद्ध चलाने के लिए बनाया गया है। यह कभी भी किसी लाइव या तृतीय-पक्ष सिस्टम को स्पर्श नहीं करता।
मिलता-जुलता PoC रिपॉज़िटरी: https://github.com/defineid/SkeletonKey
राइटअप: इस पोर्टफ़ोलियो में writeup-ff-autofill.html।
| फ़ील्ड | मान | स्रोत |
|---|---|---|
| CVE | CVE-2026-6765 | MITRE cvelistV5 (स्थिति PUBLISHED, CNA Mozilla) |
| शीर्षक | Form Autofill घटक में सूचना प्रकटीकरण | NVD · MFSA 2026-30 |
| गंभीरता | मध्यम · CVSS 5.3 · AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N | NVD |
| CWE | 359 · निजी सूचना का प्रकटीकरण | NVD |
| इसमें ठीक किया गया | Firefox 150 · Firefox ESR 140.10 · Thunderbird 150 / 140.10 | MFSA 2026-30 |
| बग | bugzilla.mozilla.org/show_bug.cgi?id=2022419 (सुरक्षा प्रतिबंधित) | NVD संदर्भ |
| रिपोर्टर | Abdulaziz Alasaiqah | MFSA 2026-30 |
FormAutofill JSWindowActor युग्म (कंटेंट में FormAutofillChild और
पैरेंट प्रक्रिया में FormAutofillParent) संदेशों का आदान-प्रदान करता है।
वर्तमान mozilla-central में FormAutofillParent.receiveMessage अनुमति-समुच्चय
से बाहर की किसी भी चीज़ को ऑटोमेशन जाँच के पीछे सीमित करता है:
// toolkit/components/formautofill/FormAutofillParent.sys.mjs (fixed tree)
if (!FORM_AUTOFILL_MESSAGES.has(name) && !Cu.isInAutomation) {
return undefined;
}
स्रोत टिप्पणी में कहा गया है कि Save और Remove हैंडलर केवल परीक्षणों द्वारा ही आमंत्रित किए जाते हैं:
FormAutofill:SaveAddressFormAutofill:SaveCreditCardFormAutofill:RemoveAddressesFormAutofill:RemoveCreditCardsप्रभावित बिल्ड्स पर वे केवल-परीक्षण वाले हैंडलर Cu.isInAutomation गेट के बिना
पहुँच योग्य थे, इसलिए कोई कंटेंट कॉन्टेक्स्ट उन FormAutofill पथों तक पहुँच सकता था
जो कभी वेब कंटेंट का सामना करने के लिए बनाए ही नहीं गए थे। Mozilla ने परिणामी
एक्सपोज़र को संग्रहीत ऑटोफ़िल डेटा के सूचना प्रकटीकरण के रूप में वर्गीकृत किया।
पहुँच पर टिप्पणी: getActor windowGlobalChild पर स्थित है, जो एक केवल-क्रोम
प्रॉपर्टी है। सामान्य पेज स्क्रिप्ट इसे कभी नहीं देखती, इसलिए खतरे का मॉडल एक
ऐसा कंटेंट प्रोसेस है जिसे हमलावर पहले से प्रभावित कर चुका है (एक रेंडरर
समझौता या कंटेंट-साइड कोड पथ) जो एक्टर संदेश भेजता है, न कि कोई साधारण वेब
पेज। हार्नेस कंटेंट पथ का प्रयास करता है और ईमानदारी से रिपोर्ट करता है कि
क्या पैरेंट ने उत्तर दिया या सीमा टिकी रही।
सटीक प्रकटीकरण प्रिमिटिव bug 2022419 में निहित है जो सुरक्षा-प्रतिबंधित है। यह हार्नेस एक केवल-परीक्षण हैंडलर की पहुँच क्षमता प्रदर्शित करता है जिसे एक ठीक किया गया बिल्ड अवरुद्ध करता है। अपनी रिपोर्ट में प्रयुक्त सटीक कॉल को
--messageके साथ पास करें।
एक कंटेंट प्रोसेस जिसे हमलावर पहले से प्रभावित कर चुका है (एक रेंडरर समझौता या कंटेंट-साइड कोड पथ) एक FormAutofill एक्टर संदेश भेजता है जो केवल परीक्षण हार्नेस से ही आना चाहिए था। किसी असुरक्षित बिल्ड पर पैरेंट उत्तर देता है। किसी ठीक किए गए बिल्ड पर ऑटोमेशन गेट उसे गिरा देता है।
https://ftp.mozilla.org/pub/firefox/releases/140.9.0esr/।pip install marionette-driver
कमज़ोर बिल्ड को एक नई प्रोफ़ाइल और Marionette सक्षम करके शुरू करें:
/path/to/firefox --marionette --no-remote --profile ./poc-profile about:blank
फिर about:preferences#privacy में एक सिंथेटिक सहेजा गया पता और एक सिंथेटिक कार्ड जोड़ें, उदाहरण के लिए नाम POC TESTER, कार्ड नंबर 4111 1111 1111 1111। यह केवल परीक्षण डेटा है।
python3 poc.py # default handler and 127.0.0.1:2828
python3 poc.py --help # options
python3 poc.py --message FormAutofill:SaveAddress
getActor केवल chrome है, इसलिए कंटेंट सैंडबॉक्स से सादा हार्नेस एक्टर को अगम्य बताता है (poc-run.png देखें)। संदेश को ऐसे कॉन्टेक्स्ट से चलाने के लिए जिसके पास वास्तव में एक्टर हो, एक भेद्य बिल्ड पर Browser Toolbox सक्षम करें (devtools.chrome.enabled और devtools.debugger.remote-enabled), इसे Ctrl+Alt+Shift+I से खोलें, और कंटेंट-प्रोसेस कंसोल से windowGlobalChild से एक्टर प्राप्त करें और उसी सिंथेटिक पेलोड के साथ sendQuery कॉल करें। यह बिना किसी वास्तविक डेटा के समझौता-ग्रस्त-कंटेंट-प्रोसेस खतरा मॉडल को दर्शाता है।
undefined लौटाती है क्योंकि Cu.isInAutomation false है। स्क्रिप्ट बताती है कि गेट लागू है।यह हार्नेस सार्वजनिक रिकॉर्ड और वर्तमान mozilla-central स्रोत से लिखा गया था। इसे यहाँ स्थानीय Firefox 140.11.0esr बिल्ड के विरुद्ध निष्पादित किया गया, जो CVE-2026-6765 के लिए पहले से ही पैच किया गया है। कैप्चर किया गया रन poc-run.png में है: कंटेंट कॉन्टेक्स्ट से FormAutofill एक्टर अगम्य है (windowGlobalChild.getActor कंटेंट के लिए उजागर नहीं है), इसलिए पैरेंट सीमा कायम है। यह ठीक किए गए बिल्ड पर सही, ईमानदार परिणाम है।
सीमा को पार होते देखने के लिए आपको एक भेद्य बिल्ड (Firefox 150 से पहले या ESR 140.10 से पहले, उदाहरण के लिए 140.9.0esr) के साथ-साथ सिंथेटिक ऑटोफ़िल डेटा से भरा एक अस्थायी प्रोफ़ाइल चाहिए, और आप ऊपर दिए गए ब्राउज़र-टूलबॉक्स फ़ॉलबैक के अनुसार कंटेंट-प्रोसेस कॉन्टेक्स्ट से एक्टर संदेश चलाते हैं। --message को अपनी मूल रिपोर्ट के सटीक प्रिमिटिव में समायोजित करें।
यह लेखक के अपने रिपोर्ट किए गए और पहले से पैच किए गए CVE के लेखन के लिए सिंथेटिक डेटा के साथ स्थानीय रूप से डाउनलोड किए गए बिल्ड को लक्षित करता है। यह किसी भी लाइव या तृतीय-पक्ष सेवा पर हमला नहीं करता है।