
CVE-2026-90817 के लिए Python चेकर और एक्सप्लॉइट हुक, जो सर्वे __passthru रूटिंग के माध्यम से एक गंभीर अनऑथेंटिकेटेड REDCap RCE है, जिसमें मास स्कैनिंग और FOFA टारगेट इम्पोर्ट शामिल है।
Python 3 चेकर (और कॉन्फ़िगर करने योग्य exploit हुक) CVE-2026-90817 (Securifera / Ryan Wincey) के लिए।
| उत्पाद | REDCap (Vanderbilt) |
| प्रभावित | ≥ 13.3.0 (ब्रांच पैच तक) |
| ठीक किया गया | 16.0.49 LTS, 17.3.10 LTS, 17.4.4 Standard+ |
| CVSS 3.1 | 9.8 Critical |
| प्रमाणीकरण | कोई नहीं — पूरी चेन के लिए वैध सार्वजनिक सर्वे हैश (s=) आवश्यक |
| CWE | CWE-73, CWE-94 |
एक सार्वजनिक सर्वे संदर्भ से, हमलावर अनपेक्षित कंट्रोलर (जैसे Data Import) तक पहुँचने के लिए __passthru (सर्वे पासथ्रू) रूटिंग का दुरुपयोग कर सकते हैं, फिर असुरक्षित फ़ाइल-पथ / स्ट्रीम हैंडलिंग को ट्रिगर करके RCE कर सकते हैं।
Securifera ने अभी तक पूरी HTTP चेन प्रकाशित नहीं की है (रिपॉज़िटरी प्रकाशन के समय GitHub / Exploit-DB पर कोई सार्वजनिक PoC नहीं)।
| मोड | यह क्या करता है |
|---|---|
check | REDCap फिंगरप्रिंट, संस्करण अनुमान, वैध s= सर्वे (यदि हैश दिया गया हो), __passthru → DataImport प्रोब |
exploit | केवल सत्यापित exploit_chain.json के साथ चलता है (प्लेसहोल्डर उदाहरण नहीं) |
exploit_chain.example.json केवल प्लेसहोल्डर है (अनुमानित रूट/पैरामीटर)। यह RCE नहीं करेगा।
शोध ड्राई रन: --allow-placeholder-chain (अनुरोध भेजता है; विफलता की अपेक्षा करें)।
pip install -r requirements.txtpip install -r requirements.txt
# Single target (survey hash required for survey + passthru tests)
python poc.py -u https://redcap.example.edu/redcap --hash Ab12Xy34Zq --mode check
# Shorthand: base|hash
python poc.py -u "https://redcap.example.edu/redcap|Ab12Xy34Zq" --mode check
# Mass check (one URL per line, optional |hash)
python poc.py --list targets.example.txt --mode check -j 20 -q
# Live stream: every host + test summary (recommended for long lists)
python poc.py --list targets.example.txt --mode check -j 20 -q --flow
# Exploit (after advisory → real exploit_chain.json)
cp exploit_chain.example.json exploit_chain.json # edit with real values
python poc.py -u https://redcap.example.edu/redcap --hash XXX --mode exploit -c id \
--chain exploit_chain.json
# Place export as fofa_csv_7561.csv (or any fofa*.csv), then:
python fofa_to_list.py
# Writes list.txt (gitignored) and normalizes the CSV with a url column
python poc.py --list list.txt --mode check -j 20 -q --flow
https://uni.edu/redcap|SurveyHash10
https://uni.edu/redcap?s=SurveyHash10
https://uni.edu/redcap
हैश के बिना, check अभी भी REDCap को फिंगरप्रिंट कर सकता है और संस्करण विंडो को फ़्लैग कर सकता है, लेकिन सर्वे को सत्यापित नहीं कर सकता या पासथ्रू प्रोब नहीं चला सकता।
--flow मास चेक)
| विकल्प | विवरण |
|---|---|
-u, --url | एकल बेस URL (या URL|hash) |
--hash | सार्वजनिक सर्वे हैश (s= मान) |
--list | लक्ष्य फ़ाइल (प्रति पंक्ति एक URL या URL|hash) |
--mode | check या exploit |
--chain | exploit मोड के लिए JSON चेन (डिफ़ॉल्ट exploit_chain.json) |
--allow-placeholder-chain | exploit मोड में उदाहरण JSON की अनुमति दें (वास्तविक RCE नहीं) |
-c, --command | शेल कमांड (exploit मोड; कार्यशील चेन आवश्यक) |
--threads, -j | मास कॉन्करेंसी (डिफ़ॉल्ट 15) |
--timeout | HTTP टाइमआउट सेकंड (डिफ़ॉल्ट 25) |
--proxy | HTTP(S) प्रॉक्सी URL |
--output | JSONL परिणाम (डिफ़ॉल्ट cve_2026_90817_results.jsonl) |
--vuln-list | Check → hits.txt; exploit → exploited.txt |
--quiet, -q | आवधिक प्रगति टिक को दबाएँ |
--flow, -f | प्रति पूर्ण लक्ष्य एक पंक्ति (साइट + परीक्षण सारांश) |
| फ़ाइल | सामग्री |
|---|---|
cve_2026_90817_results.jsonl | प्रति-लक्ष्य JSON |
hits.txt | उम्मीदवार (exploitable_candidate) |
status मान (check)| स्थिति | अर्थ |
|---|---|
passthru_dataimport_reachable | वैध सर्वे + पासथ्रू रूट Data Import जैसा दिखता है |
passthru_probe_reachable | पासथ्रू ने गैर-अवरुद्ध HTTP लौटाया |
likely_vulnerable_version | संस्करण प्रभावित विंडो में (सर्वे ठीक, प्रोब अनिर्णायक) |
redcap_version_hot_no_hash | प्रभावित संस्करण अनुमान, कोई सर्वे हैश प्रदान नहीं किया गया |
redcap_no_survey_hash | REDCap ठीक, कोई हैश नहीं, संस्करण अज्ञात |
patched / patched_no_survey | ब्रांच के लिए निश्चित संस्करण पर या उससे ऊपर |
no_valid_survey | हैश अमान्य या सर्वे सार्वजनिक नहीं |
no_redcap | होस्ट REDCap जैसा नहीं दिखता |
survey_ok_version_unknown | सर्वे ठीक, संस्करण स्ट्रिंग नहीं मिली |
__passthru रूट और पैरामीटर नाम आवश्यक हैं; डिफ़ॉल्ट प्लेसहोल्डर हैं।vulnerable_version null हो सकता है।title="REDCap" पंक्तियों में अक्सर सर्वे हैश नहीं होते — CVE पूर्वापेक्षाओं के लिए सार्वजनिक लिंक से s= आवश्यक है।title="REDCap"
body="redcap_version"
body="/surveys/?s="
.
├── poc.py
├── fofa_to_list.py
├── exploit_chain.example.json
├── poc.png # example --flow terminal output
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
केवल अधिकृत सुरक्षा परीक्षण के लिए। लागू कानूनों और कार्यक्रम नियमों के अनुपालन की जिम्मेदारी आपकी है।