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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-42533-Config-Scanner — Static config scanner जो nginx कॉन्फ़िगरेशन को फ़्लैग करता है जो complex_value two-pass capture-clobbering bug (regex map + regex capture → heap overflow / info leak) के लिए असुरक्षित हैं। | Kitploit
उपकरण/GitHubGitHub/0xcyberstan/cve-2026-42533-config-scanner
स्थैतिक विश्लेषणभेद्यता स्कैनरकोड विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगवेब सुरक्षाDevSecOpsगलत कॉन्फ़िगरेशन
GitHub0xcyberstan/cve-2026-42533-config-scanner

CVE-2026-42533-Config-Scanner

Static config scanner जो nginx कॉन्फ़िगरेशन को फ़्लैग करता है जो complex_value two-pass capture-clobbering bug (regex map + regex capture → heap overflow / info leak) के लिए असुरक्षित हैं।

रिपॉजिटरी देखें
295403 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

nginx capture-clobber स्कैनर

एक read-only स्टैटिक स्कैनर जो उन nginx कॉन्फ़िगरेशन को चिह्नित करता है जो complex_value two-pass capture-clobbering बग वर्ग के प्रति संवेदनशील हैं (F5/nginx SIRT सलाहकार, जुलाई 2026)। यह आपके कॉन्फ़िगरेशन को पार्स करता है और संवेदनशील पैटर्न को कारण और स्थान के साथ रिपोर्ट करता है। यह किसी भी चीज़ का शोषण नहीं करता और चल रहे सर्वर को स्पर्श नहीं करता।

एकल फ़ाइल, केवल मानक लाइब्रेरी, Python 3.6+।

भेद्यता का पूरा विवरण: https://cyberstan.co.uk/nginx-rce/

बग

nginx कई निर्देश मानों को दो पास में बनाता है। एक LEN पास लंबाई मापता है और एक बफ़र आवंटित करता है, फिर एक VALUE पास उसमें लिखता है। Regex कैप्चर ($1 से $9, या नामित (?P<name>...)) प्रति-अनुरोध साझा स्थिति से पढ़े जाते हैं। एक map जिसकी मिलान कुंजी एक रेगुलर एक्सप्रेशन है, उसके वेरिएबल का मूल्यांकन होते ही एक नया PCRE मिलान चलाता है, और वह मिलान साझा कैप्चर स्थिति को अधिलेखित कर देता है। यदि किसी कैप्चर को LEN पास में मापा जाता है और फिर VALUE पास उस कैप्चर को फिर से लिखने से पहले एक regex map चलता है, तो दोनों पास असहमत हो जाते हैं:

  • clobber मान को मापे गए से लंबा बना देता है: heap buffer overflow (हमलावर-नियंत्रित out-of-bounds write)
  • clobber मान को मापे गए से छोटा बना देता है: क्लाइंट को uninitialised heap लौटाया जाता है (libc/heap पॉइंटर्स का info leak)

दोनों दिशाएँ दूरस्थ रूप से ट्रिगर करने योग्य हैं जब map इनपुट हमलावर-प्रभावित हो ($request_body, $http_*, $arg_*, $uri, $ssl_preread_server_name, इत्यादि)।

किसे संवेदनशील माना जाता है

स्कैनर एक location या server को चिह्नित करता है जब ये सभी एक ही two-pass बफ़र में, शोषणकारी क्रम में आते हैं:

  1. कैप्चर स्रोत: एक regex location ~, server_name ~, rewrite, if (... ~ ...), या कैप्चर समूह वाला एक regex map।
  2. Clobber ट्रिगर: ~ या ~* regex मिलान कुंजी वाला एक map (http या stream), जिसे उसके आउटपुट वेरिएबल द्वारा संदर्भित किया गया हो।
  3. कैप्चर ref और regex-map वेरिएबल दोनों का उपयोग करने वाला two-pass sink:
    • single-value निर्देश (return, set, add_header, proxy_method, proxy_pass, rewrite, index, और अन्य): दोनों refs एक ही मान में।
    • param/header परिवार (proxy_set_header, proxy_set_body, fastcgi_param, scgi_param, uwsgi_param, grpc_set_header): ये पूरे परिवार के लिए प्रति-अनुरोध एक बफ़र बनाते हैं, इसलिए दोनों refs एक ही location में अलग-अलग निर्देशों में हो सकते हैं।
  4. क्रम: कैप्चर का मूल्यांकन regex map से पहले होना चाहिए। एक regex map एक बार चलता है और कैश करता है, इसलिए map-before-capture एक सुसंगत स्थिति पढ़ता है और संवेदनशील नहीं है। स्कैनर उन्हें cleared के रूप में रिपोर्ट करता है (सुरक्षित लेकिन नाज़ुक, क्रम न बदलें)।

उपयोग

# scan a single config (follows include directives by default)
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf

# scan a directory (uses nginx.conf if present, else all *.conf)
python3 nginx_capture_clobber_scan.py /etc/nginx/

# scan several roots
python3 nginx_capture_clobber_scan.py site-a.conf site-b.conf

# machine-readable output
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf --json

# do not expand include directives
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf --no-includes

विकल्प

विकल्पप्रभाव
--jsonटेक्स्ट के बजाय JSON रिपोर्ट उत्सर्जित करें।
--no-includesinclude निर्देशों का पालन न करें।

एग्ज़िट कोड

कोडअर्थ
0कोई भेद्य कॉन्फ़िगरेशन नहीं मिला।
1कम से कम एक भेद्य कॉन्फ़िगरेशन मिला।
2उपयोग त्रुटि (कोई पथ नहीं दिया गया, या कोई नहीं मिला)।

CI में उपयोग करने योग्य, क्योंकि भेद्य कॉन्फ़िगरेशन गैर-शून्य के साथ बाहर निकलता है:

python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf || echo "review needed"

आउटपुट

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

{
  "vulnerable": true,
  "findings": [
    {
      "file": "/etc/nginx/conf.d/api.conf",
      "line": 12,
      "scope": "location ~ ^/api/(.+)$",
      "directive": "proxy (family buffer)",
      "captures": ["$1"],
      "map_vars": ["$is_bot"],
      "triggers": ["$is_bot <- regex-map on $http_user_agent [nginx.conf:30]"],
      "reason": "..."
    }
  ],
  "cleared_safe_order": [],
  "regex_maps": [],
  "missing_includes": []
}

जो पाया जाता है उसे ठीक करना

  1. वेंडर पैच लागू करें (nginx 1.30.4 stable / 1.31.3 mainline, NGINX Plus R36 P7 / 37.0.3.1)। यही एकमात्र पूर्ण समाधान है। यह पैच एक सीमा-रक्षक (boundary guard) (ngx_http_script_check_length()) जोड़ता है जो VALUE पास को आवंटित बफ़र से आगे लिखने से रोकता है, और लौटाई गई स्ट्रिंग की लंबाई LEN-पास माप के बजाय वास्तव में लिखे गए बाइट्स से गणना करता है, जिससे ओवरफ़्लो और सूचना-लीक दोनों दिशाएँ बंद हो जाती हैं।
  2. अंतरिम कॉन्फ़िग हार्डनिंग (गहन रक्षा, पैच का विकल्प नहीं):
    • किसी regex map वेरिएबल को उसी location या बफ़र में संदर्भित न करें जहाँ $1 से $9 या नामित-कैप्चर संदर्भ हो।
    • एक ही (?P<name>...) समूह को कई regex maps में दोबारा उपयोग न करें।
    • कैप्चर संदर्भों और regex-map संदर्भों को एक ही proxy_set_header या fastcgi_param परिवार से बाहर रखें।

सीमाएँ

  • स्थिर विश्लेषण: यह कॉन्फ़िग पढ़ता है, रनटाइम व्यवहार नहीं। यह गतिशील रूप से set किए गए वेरिएबल्स द्वारा उत्पन्न मानों को हल नहीं कर सकता।
  • अपठनीय include लक्ष्य (उदाहरण के लिए ऐसे निरपेक्ष पथ जो स्थानीय रूप से मौजूद नहीं हैं) missing_includes के अंतर्गत रिपोर्ट किए जाते हैं, चुपचाप छोड़े नहीं जाते। पूर्ण कवरेज के लिए इसे उस होस्ट पर चलाएँ जहाँ कॉन्फ़िग हल होता है।
  • एक चिह्नित capture-before-map हिट को रनटाइम पर निष्क्रिय किया जा सकता है यदि वह map वेरिएबल उसी अनुरोध में पहले ही मूल्यांकित हो चुका हो (यह पहले से कैश्ड होगा)। स्कैनर फिर भी इन्हें रिपोर्ट करता है, जो सुरक्षा स्व-स्कैन के लिए रूढ़िवादी विकल्प है।

संदर्भ

भेद्यता लेख और शोषण श्रृंखला: https://cyberstan.co.uk/nginx-rce/

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