Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-2441 — CVE-2026-2441 के लिए विस्तृत प्रूफ-ऑफ-कॉन्सेप्ट और तकनीकी विश्लेषण, एक क्रोम CSS use-after-free कमजोरी जो सैंडबॉक्स्ड रेंडरर RCE को तैयार HTML पृष्ठों के माध्यम से सक्षम करती है। | Kitploit
उपकरण/GitHubGitHub/martinastarone/cve-2026-2441
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणफिशिंगमालवेयर विश्लेषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोललर्निंग और शिक्षारेड टीमिंगपेलोड डेवलपमेंटबाइनरी शोषण
264 महीने पहलेअभी तक समीक्षित नहीं
GitHub
martinastarone/cve-2026-2441

CVE-2026-2441

CVE-2026-2441 के लिए विस्तृत प्रूफ-ऑफ-कॉन्सेप्ट और तकनीकी विश्लेषण, एक क्रोम CSS use-after-free कमजोरी जो सैंडबॉक्स्ड रेंडरर RCE को तैयार HTML पृष्ठों के माध्यम से सक्षम करती है।

रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-2441 — Chrome CSSFontFeatureValuesMap में उपयोग-पश्चात मुक्ति

CVSS 8.8 (उच्च) | सक्रिय रूप से जंगली में शोषित | रेंडरर RCE (सैंडबॉक्स्ड)

Google Chrome के Blink CSS इंजन में एक उपयोग-पश्चात मुक्ति भेद्यता जो एक दूरस्थ हमलावर को एक निर्मित HTML पृष्ठ के माध्यम से ब्राउज़र सैंडबॉक्स के अंदर मनमाना कोड निष्पादित करने की अनुमति देती है।

भेद्यता विवरण

फ़ील्डमान
CVECVE-2026-2441
CVSS8.8 (उच्च)
प्रकारउपयोग-पश्चात मुक्ति (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
क्रोमियम-आधारित ब्राउज़र (Edge, Brave, Opera, Vivaldi)विक्रेता सलाहकारी देखेंभिन्न

मूल कारण

FontFeatureValuesMapIterationSource ने आंतरिक FontFeatureAliases हैश मैप के लिए एक कच्चा पॉइंटर (const FontFeatureAliases* aliases_) संग्रहीत किया। जब set() या delete() के माध्यम से पुनरावृत्ति के दौरान मैप को बदला जाता है, तो हैश मैप रीहैश होता है — नया स्टोरेज आवंटित करता है और पुराने को मुक्त करता है। कच्चा पॉइंटर लटकता हुआ हो जाता है, और अगली FetchNextItem() कॉल मुक्त मेमोरी से पढ़ती है।

असुरक्षित कोड पथ

CreateIterationSource()
  → FontFeatureValuesMapIterationSource(map, aliases_)
  → aliases_ = raw pointer to internal HashMap
  → iterator_ = aliases_->begin()

FetchNextItem()
  → reads iterator_->key  (through aliases_)

If map.set() / map.delete() is called between iterations:
  → HashMap rehashes (new alloc, old freed)
  → aliases_ → dangling pointer
  → iterator_ → invalidated
  → Next FetchNextItem() → USE-AFTER-FREE

फिक्स

- const FontFeatureAliases* aliases_;   // raw pointer → dangling after rehash
+ const FontFeatureAliases aliases_;    // deep copy → immune to rehash

फिक्स कच्चे पॉइंटर को हैश मैप की गहरी प्रतिलिपि से बदल देता है। भले ही मूल मैप रीहैश हो, पुनरावृत्तिकर्ता अपनी प्रतिलिपि पर संचालित होता है, जिससे लटकता पॉइंटर रुक जाता है।

प्रमाण की अवधारणा (PoC)

उपयोग

  1. एक असुरक्षित Chrome संस्करण (< 145.0.7632.75) में poc.html खोलें
  2. पृष्ठ तीन विभिन्न विधियों के माध्यम से UAF को ट्रिगर करने का प्रयास करेगा

अपेक्षित परिणाम

Chrome संस्करणअपेक्षित व्यवहार
< 145.0.7632.75 (अनपैच)रेंडरर क्रैश — STATUS_ACCESS_VIOLATION (Windows) या SIGSEGV (Linux/macOS)। Chrome "Can't open this page" त्रुटि दिखाता है।
>= 145.0.7632.75 (पैच किया गया)कोई क्रैश नहीं — PoC पूरा चलता है, सभी प्रविष्टियाँ सामान्य रूप से पढ़ी जाती हैं।

PoC कैसे काम करता है

PoC को एक स्पष्ट और पुनरुत्पादनीय क्रम में शोषण श्रृंखला दिखाने के लिए व्यवस्थित किया गया है। पहला भाग असुरक्षित Blink/CSS ऑब्जेक्ट बनाता है, दूसरा भाग पुनरावृत्तिकर्ता अमान्यकरण को ट्रिगर करता है, और अंतिम भाग एक सुरक्षित शैक्षणिक वातावरण में पोस्ट-शोषण प्रभावों का अनुकरण करता है।

महत्वपूर्ण नोट: UAF ट्रिगर वास्तविक ब्राउज़र-एक्सपोज़्ड CSS/JavaScript API के माध्यम से कार्यान्वित किया गया है। हीप लीक और एक्सफ़िल्ट्रेशन डैशबोर्ड को जानबूझकर नियंत्रित/अनुकरण किया गया है ताकि एक हथियारबंद Chromium शोषण जारी होने से बचा जा सके।

चरण 1: असुरक्षित CSS संरचना का निर्माण

पेलोड पहले एक CSS @font-feature-values नियम परिभाषित करता है:

@font-feature-values VulnFont {
  @styleset {
    a0: 1; a1: 2; a2: 3; a3: 4;
    a4: 5; a5: 6; a6: 7; a7: 8;
  }
}

यह नियम Blink को एक आंतरिक CSSFontFeatureValuesMap बनाने का कारण बनता है। असुरक्षित कार्यान्वयन में, इस मैप पर पुनरावृत्ति असुरक्षित है क्योंकि पुनरावृत्तिकर्ता आंतरिक FontFeatureAliases स्टोरेज के लिए एक कच्चा पॉइंटर रखता है।

JavaScript पेलोड बाद में स्टाइलशीट से मैप प्राप्त करता है:

const sheet = document.getElementById("uaf-style").sheet;
const rule = sheet.cssRules[0];
const map = rule && rule.styleset;

इस बिंदु पर, हमलावर-नियंत्रित पृष्ठ के पास एक ब्राउज़र ऑब्जेक्ट का JavaScript हैंडल होता है जिसका आंतरिक C++ कार्यान्वयन पुनरावृत्तिकर्ता अमान्यकरण के लिए असुरक्षित है।

चरण 2: UAF ट्रिगर का विलंबित निष्पादन

ट्रिगर तुरंत निष्पादित नहीं होता है। PoC असुरक्षित अनुक्रम चलाने से पहले 800 ms प्रतीक्षा करता है:

setTimeout(triggerUAF, 800);

यह विलंब डेमो स्थिरता के लिए उपयोग किया जाता है। यह मेमोरी-भ्रष्टाचार ट्रिगर चलने से पहले पृष्ठ और नकली बैंकिंग सत्यापन फॉर्म को प्रस्तुत करने की अनुमति देता है। वास्तविक ड्राइव-बाय परिदृश्य में, वही ट्रिगर दुर्भावनापूर्ण पृष्ठ लोड होते ही स्वचालित रूप से लॉन्च किया जा सकता है।

चरण 3: पुनरावृत्तिकर्ता निर्माण और समवर्ती मैप उत्परिवर्तन

मुख्य UAF प्रिमिटिव निम्नलिखित लूप है:

const it = map.entries();
let step = 0;

while (step < 4) {
    const res = it.next();
    if (res.done) break;

    const [key] = res.value;

    map.delete(key);
    map.set("uaf_" + step, [step, step + 1]);

    step++;
}

भेद्यता संचालन के क्रम से ट्रिगर होती है:

1. map.entries() CSSFontFeatureValuesMap पर एक पुनरावृत्तिकर्ता बनाता है।
2. असुरक्षित Blink कार्यान्वयन में, पुनरावृत्तिकर्ता आंतरिक मैप स्टोरेज को संदर्भित करता है।
3. it.next() उस पुनरावृत्तिकर्ता के माध्यम से अगली प्रविष्टि पढ़ता है।
4. map.delete(key) उसी मैप को उत्परिवर्तित करता है जबकि पुनरावृत्तिकर्ता अभी भी जीवित है।
5. map.set(...) एक नई प्रविष्टि सम्मिलित करता है और अंतर्निहित HashMap को रीहैश करने के लिए बाध्य कर सकता है।
6. रीहैशिंग पुराने स्टोरेज को मुक्त या स्थानांतरित कर सकती है।
7. पुनरावृत्तिकर्ता अभी भी पुराने स्टोरेज को संदर्भित कर सकता है।
8. अगली पुनरावृत्तिकर्ता पहुंच इस प्रकार उपयोग-पश्चात मुक्ति बन सकती है।

चरण 4: आक्रामक हीप स्प्रे के बजाय नियंत्रित हीप दबाव

मूल आक्रामक रणनीति में एक बड़ा हीप-स्प्रे-जैसा लूप इस्तेमाल किया गया था, उदाहरण के लिए प्रत्येक विलोपन के बाद सैकड़ों तत्वों जैसे 512 नई प्रविष्टियाँ सम्मिलित करना। यह मजबूत हीप दबाव बनाता है और पुनःआवंटन/पुन: उपयोग को अधिक संभावित बनाता है।

लाइव डेमो के लिए, इसे केवल 4 उत्परिवर्तन चरणों तक कम कर दिया गया:

while (step < 4) {
    // पुनरावृत्तिकर्ता पढ़ना + विलोपन + सेट
}

कारण व्यावहारिक और शैक्षणिक है: 512-तत्व स्प्रे अक्सर रेंडरर को तुरंत क्रैश कर देता है। क्रैश उपलब्धता प्रभाव साबित करने के लिए उपयोगी है, लेकिन यह बाकी प्रदर्शन को अनुकरणित डेटा चोरी और हमलावर डैशबोर्ड दिखाने से रोकता है। कम किया गया संस्करण अभी भी असुरक्षित पुनरावृत्तिकर्ता-अमान्यकरण तर्क को प्रदर्शित करता है जबकि लाइव प्रस्तुति के लिए ब्राउज़र को पर्याप्त स्थिर रखता है।

चरण 5: अनुकरणित हीप पॉइंटर लीक

एक वास्तविक हथियारबंद UAF शोषण को ASLR को बायपास करने के लिए हीप या V8 पॉइंटर्स को लीक करने के लिए एक मेमोरी प्रकटीकरण प्रिमिटिव की आवश्यकता होगी। डेमो वास्तविक मनमाना मेमोरी रीड लागू नहीं करता है। इसके बजाय, यह एक पूर्वनिर्धारित स्थिर श्रेणी से एक हीप-जैसा पता उत्पन्न करता है:

const base = 0x55a000000000 + Math.floor(Math.random() * 0x200000);

heapLeak = {
  raw:  "0x" + base.toString(16).toUpperCase(),
  base: "0x" + (base & ~0xfff).toString(16).toUpperCase()
};

यह मान एक अनुकरणित हीप लीक है:

  • 0x55a000000000 डेमो द्वारा उपयोग की जाने वाली निश्चित हीप-जैसी प्रारंभिक श्रेणी है।
  • Math.random() * 0x200000 एक छोटा यादृच्छिक ऑफसेट जोड़ता है।
  • base & ~0xfff पते को पृष्ठ सीमा पर संरेखित करता है।

उद्देश्य यह दिखाना है कि वास्तविक मेमोरी प्रकटीकरण शोषण को लागू किए बिना हमलावर डैशबोर्ड पर ASLR-बाईपास लीक कैसा दिखेगा।

चरण 6: स्थानीय हमलावर बैकएंड को एक्सफ़िल्ट्रेशन

UAF ट्रिगर और अनुकरणित हीप लीक के बाद, PoC एक पेलोड बनाता है जिसमें एकत्रित फॉर्म इनपुट, ब्राउज़र-निवासी सत्र डेटा, DOM स्निपेट, UAF स्थिति और अनुकरणित हीप लीक शामिल हैं। पेलोड स्थानीय हमलावर बैकएंड को भेजा जाता है:

टूल डाउनलोड करें