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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-25604-PoC — CVE-2026-25604 को प्रदर्शित करने के लिए एक PoC | Kitploit
उपकरण/GitHubGitHub/john-jung/cve-2026-25604-poc
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षालर्निंग और शिक्षा
GitHubjohn-jung/cve-2026-25604-poc

CVE-2026-25604-PoC

CVE-2026-25604 को प्रदर्शित करने के लिए एक PoC

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

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

सभी देखें →

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

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

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

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

CVE-2026-25604 PoC

Apache Airflow के AWS Auth Manager में Host Header Injection से SAML प्रमाणीकरण बायपास

एक हमलावर SAML लॉगिन प्रवाह में दुर्भावनापूर्ण Host हेडर इंजेक्ट कर सकता है, जिससे Assertion Consumer Service (ACS) URL हमलावर के नियंत्रण वाले सर्वर की ओर इंगित हो जाता है। इससे हमलावर मान्य SAML प्रतिक्रियाओं को कैप्चर कर सकता है और उन्हें रीप्ले करके पीड़ित के Airflow इंस्टेंस तक अनधिकृत पहुँच प्राप्त कर सकता है — या विभिन्न एक्सेस नियंत्रणों वाले विभिन्न Airflow इंस्टेंसों में टोकन का पुन: उपयोग कर सकता है।

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

पैकेजप्रभावितस्थिर (Fixed)
apache-airflow-providers-amazon8.0.0 – 9.21.x9.22.0

आधिकारिक विवरण

CVE-2026-25604: AWS Auth Manager में Origin Validation Error (CWE-346)

AWS Auth Manager में, SAML प्रमाणीकरण का मूल (origin) क्लाइंट द्वारा प्रदान किया गया मान लिया जाता था और वास्तविक इंस्टेंस URL के विरुद्ध सत्यापित नहीं किया जाता था। इससे अन्य इंस्टेंसों से SAML प्रतिक्रिया का पुन: उपयोग करके विभिन्न एक्सेस नियंत्रणों वाले विभिन्न इंस्टेंसों तक पहुँच प्राप्त करना संभव हो गया।

— NVD

संदर्भ

स्रोतलिंक
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-25604
Fix PRhttps://github.com/apache/airflow/pull/61368

भेद्यता सारांश

Apache Airflow का AWS Auth Manager प्रमाणीकरण के लिए AWS IAM Identity Center के माध्यम से SAML 2.0 का उपयोग करता है। SAML प्रमाणीकरण अनुरोध का निर्माण करते समय, _prepare_flask_request() विधि ACS कॉलबैक URL बनाने के लिए सीधे आने वाले HTTP अनुरोध से Host हेडर पढ़ती है:

root@kitploit:~
# Vulnerable code in aws_auth_manager.py
def _prepare_flask_request(req):
    host = req.headers.get("Host", req.host)  # <-- Attacker-controlled
    
    if ":" in host:
        hostname, port = host.rsplit(":", 1)
    else:
        hostname = host
        port = "443" if req.scheme == "https" else "80"
    
    return {
        "http_host": hostname,    # Used to build ACS URL
        "server_port": port,
        ...
    }

परिणामी http_host और server_port का उपयोग SAML AssertionConsumerService URL बनाने के लिए किया जाता है। चूँकि Identity Provider (IdP) इस URL पर भरोसा करता है, यह प्रमाणित उपयोगकर्ता को — हस्ताक्षरित SAML प्रतिक्रिया के साथ — उस स्थान पर पुनर्निर्देशित करता है जहाँ Host हेडर इंगित करता है।

हमले का प्रवाह

root@kitploit:~
┌──────────┐         ┌──────────────┐         ┌─────────────┐
│ Attacker │         │ Victim       │         │ AWS IAM     │
│          │         │ Airflow      │         │ Identity    │
│          │         │ Instance     │         │ Center      │
└────┬─────┘         └──────┬───────┘         └──────┬──────┘
     │                      │                        │
     │ 1. GET /login        │                        │
     │ Host: evil.com:8080  │                        │
     │─────────────────────>│                        │
     │                      │                        │
     │                      │ 2. SAML AuthnRequest   │
     │                      │    ACS URL =           │
     │                      │    evil.com:8080/       │
     │                      │    login_callback       │
     │                      │───────────────────────>│
     │                      │                        │
     │                      │ 3. User authenticates  │
     │                      │    at IdP login page   │
     │                      │                        │
     │ 4. IdP redirects     │                        │
     │    SAMLResponse to   │<───────────────────────│
     │    evil.com:8080     │                        │
     │<─────────────────────│                        │
     │                      │                        │
     │ 5. Attacker captures │                        │
     │    valid SAMLResponse│                        │
     │                      │                        │
     │ 6. Replay to victim  │                        │
     │    POST /login_callback                       │
     │    with captured     │                        │
     │    SAMLResponse      │                        │
     │─────────────────────>│                        │
     │                      │                        │
     │ 7. Authenticated!    │                        │
     │<─────────────────────│                        │
     └──────────────────────┴────────────────────────┘

दो शोषण परिदृश्य

परिदृश्य A — फ़िशिंग के माध्यम से टोकन चोरी: एक हमलावर एक वैध उपयोगकर्ता को (रिवर्स प्रॉक्सी के माध्यम से स्पूफ़ किए गए Host हेडर के साथ) एक निर्मित लॉगिन लिंक भेजता है। उपयोगकर्ता के IAM Identity Center के साथ प्रमाणित होने के बाद, SAML प्रतिक्रिया हमलावर के सर्वर पर पुनर्निर्देशित हो जाती है। हमलावर इसे वास्तविक Airflow इंस्टेंस के विरुद्ध रीप्ले करता है।

परिदृश्य B — क्रॉस-इंस्टेंस टोकन पुन: उपयोग: मल्टी-टेनेंट या मल्टी-इंस्टेंस Airflow वातावरण में, इंस्टेंस A से एक मान्य SAML प्रतिक्रिया इंस्टेंस B पर रीप्ले की जा सकती है। चूँकि मूल (origin) को वास्तविक इंस्टेंस URL के विरुद्ध कभी सत्यापित नहीं किया जाता, इंस्टेंस B पर विभिन्न एक्सेस नियंत्रण बायपास हो जाते हैं।

रिपॉज़िटरी संरचना

root@kitploit:~
CVE-2026-25604-PoC/
├── README.md           # This file
└── mock_airflow.py     # Mock vulnerable Airflow server

आवश्यक शर्तें

  • Python 3.8+
  • SAML 2.0 एप्लिकेशन कॉन्फ़िगर किए हुए AWS IAM Identity Center (पूर्व में AWS SSO)
  • एक EC2 इंस्टेंस या स्थानीय वातावरण जो IAM Identity Center SAML मेटाडेटा URL तक पहुँच सकता है

निर्भरताएँ

root@kitploit:~
pip install flask python3-saml

पुनरुत्पादन चरण

1. AWS IAM Identity Center कॉन्फ़िगर करें

AWS Auth Manager दस्तावेज़ीकरण के अनुसार AWS IAM Identity Center में एक SAML 2.0 एप्लिकेशन सेट अप करें:

  • एप्लिकेशन ACS URL: http://<airflow-host>:<port>/login_callback
  • एप्लिकेशन SAML श्रोता (audience): aws-auth-manager-saml-client
  • Identity Center कंसोल से SAML मेटाडेटा URL कॉपी करें।

2. नकली भेद्य Airflow सर्वर प्रारंभ करें

root@kitploit:~
python mock_airflow.py <SAML_METADATA_URL> [PORT]

उदाहरण के लिए:

root@kitploit:~
python mock_airflow.py https://portal.sso.us-east-1.amazonaws.com/saml/metadata/XXXX 8080

3. स्पूफ़ किए गए Host हेडर के साथ लॉगिन अनुरोध भेजें

एक अलग टर्मिनल में, हेरफेर किए गए Host हेडर के साथ SAML लॉगिन आरंभ करें:

root@kitploit:~
curl -v -H "Host: attacker.com:9090" http://127.0.0.1:8080/login

4. पुनर्निर्देशन का निरीक्षण करें

सर्वर AWS IAM Identity Center लॉगिन पृष्ठ पर 302 Redirect के साथ प्रतिक्रिया देता है। SAML AuthnRequest का निरीक्षण करें — AssertionConsumerService URL वैध सर्वर के बजाय attacker.com:9090/login_callback की ओर इंगित करेगा।

5. अपेक्षित आउटपुट

नकली Airflow सर्वर कंसोल पर:

root@kitploit:~
[LOGIN] Host header: attacker.com:9090
[DEBUG] http_host=attacker.com, server_port=9090

SAML AuthnRequest अब IdP को निर्देश देता है कि प्रमाणित SAML प्रतिक्रिया attacker.com:9090 पर पहुँचाई जाए, जिससे हमलावर को रीप्ले करने के लिए एक मान्य टोकन मिल जाता है।

भेद्य कोड

airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py — _prepare_flask_request() विधि:

root@kitploit:~
host = request.headers.get("Host", request.host)

यह पंक्ति क्लाइंट द्वारा प्रदान किए गए Host हेडर पर भरोसा करती है, बिना इसे कॉन्फ़िगर किए गए Airflow बेस URL (AIRFLOW__API__BASE_URL) के विरुद्ध सत्यापित किए।

पैच

फिक्स (PR #61368, 3 फ़रवरी 2026 को मर्ज) अनुरोध से प्राप्त होस्ट को Airflow कॉन्फ़िगरेशन के मान से प्रतिस्थापित करता है:

root@kitploit:~
- host = request.headers.get("Host", request.host)
+ host = conf.get("api", "base_url")

यह सुनिश्चित करता है कि ACS URL हमेशा प्रशासक द्वारा कॉन्फ़िगर किए गए वास्तविक इंस्टेंस URL से मेल खाता है, भले ही क्लाइंट कोई भी Host हेडर भेजे।

प्रभाव

  • गोपनीयता (Confidentiality): एक हमलावर को Airflow तक प्रमाणित पहुँच प्राप्त होती है, जिसमें संवेदनशील DAG कॉन्फ़िगरेशन, क्रेडेंशियल वाले कनेक्शन और डेटा पाइपलाइन मेटाडेटा हो सकते हैं।
  • अखंडता (Integrity): अनधिकृत उपयोगकर्ता DAG को ट्रिगर, संशोधित या हटा सकते हैं, जिससे महत्वपूर्ण डेटा वर्कफ़्लो बाधित हो सकते हैं।
  • क्रॉस-इंस्टेंस एस्केलेशन: मल्टी-टेनेंट वातावरण में, विभिन्न RBAC कॉन्फ़िगरेशन वाले इंस्टेंसों में SAML टोकन का पुन: उपयोग किया जा सकता है।

श्रेय

  • खोजकर्ता: Sungwuk Jung
  • फिक्स कर्ता: Vincent Beck (@vincbeck), Apache Airflow सुरक्षा टीम

अस्वीकरण

यह proof-of-concept केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। इसका उपयोग जिम्मेदारी से और केवल उन्हीं प्रणालियों के विरुद्ध करें जिनके स्वामी आप हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति है।

टूल डाउनलोड करें
Fix Commit
1a86aec