
यह रिपॉजिटरी CVE-2026-29145 के परीक्षण के लिए डिज़ाइन किया गया एक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) वातावरण शामिल करता है।
इस रिपॉजिटरी में CVE-2026-29145 के परीक्षण के लिए डिज़ाइन किया गया एक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) वातावरण शामिल है।
यह भेद्यता Apache Tomcat के Mutual TLS (CLIENT_CERT) कार्यान्वयन में एक प्रमाणीकरण बायपास है। जब OCSP (ऑनलाइन सर्टिफिकेट स्टेटस प्रोटोकॉल) को सॉफ्ट-फेल अक्षम के साथ कॉन्फ़िगर किया जाता है, तो Tomcat OCSP जाँच विफलता को कठोर अस्वीकृति के रूप में मानने में विफल हो सकता है। यह संभावित रूप से रद्द या असत्यापित सर्टिफिकेट वाले क्लाइंट को प्रमाणीकरण बायपास करने की अनुमति देता है यदि OCSP रिस्पॉन्डर अप्राप्य है या त्रुटि लौटाता है।
| गुण | मान |
|---|---|
| CVE ID | CVE-2026-29145 |
| CVSS स्कोर | 9.1 (क्रिटिकल) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| अटैक वेक्टर | नेटवर्क |
| आवश्यक विशेषाधिकार | कोई नहीं |
| प्रभाव | प्रमाणीकरण बायपास |
.ps1 स्क्रिप्ट का उपयोग कर रहे हैंrun_test.sh स्क्रिप्ट पूरी प्रक्रिया को स्वचालित करती है: सफाई, सर्टिफिकेट निर्माण, और सभी परीक्षण परिदृश्यों (भेद्य, सफल, और पैच किए गए) को चलाना।
# प्रोजेक्ट निर्देशिका पर नेविगेट करें
cd CVE-2026-29145-Tester
# स्क्रिप्ट को निष्पादन योग्य बनाएं
chmod +x cleanup.sh setup_certs.sh run_test.sh
# Python निर्भरताएँ इंस्टॉल करें (यदि poc_exploit.py को उनकी आवश्यकता है)
pip install -r requirements.txt
# पूर्ण परीक्षण सूट चलाएं
./run_test.sh
Linux/macOS पर:
./setup_certs.sh
Windows पर (PowerShell):
.\setup_certs.ps1
यह क्या करता है:
http://localhost:8888 की ओर इशारा करते हुए OCSP एक्सटेंशन के साथ क्लाइंट सर्टिफिकेट उत्पन्न करता हैअपेक्षित आउटपुट:
[INFO] CVE-2026-29145 परीक्षण वातावरण के लिए सर्टिफिकेट निर्माण शुरू
[INFO] OpenSSL मिला: OpenSSL 3.0.x (...)
[INFO] certs निर्देशिका बनाई गई
[INFO] रूट CA उत्पन्न किया जा रहा है...
[INFO] सर्वर सर्टिफिकेट उत्पन्न किया जा रहा है...
[INFO] OCSP एक्सटेंशन के साथ क्लाइंट सर्टिफिकेट उत्पन्न किया जा रहा है...
[INFO] सर्टिफिकेट सेटअप सफलतापूर्वक पूर्ण!
docker-compose up -d
यह क्या करता है:
कंटेनर चल रहे हैं सत्यापित करें:
docker-compose ps
python poc_exploit.py
अपेक्षित आउटपुट:
भेद्य सिस्टम:
[INFO] https://localhost:8443/protected-resource से कनेक्शन का प्रयास...
[WARNING] भेद्य: OCSP जाँच विफलता के बावजूद पहुँच प्रदान की गई।
[WARNING] प्रतिक्रिया पूर्वावलोकन: <html>...
पैच किया गया सिस्टम:
[INFO] https://localhost:8443/protected-resource से कनेक्शन का प्रयास...
[INFO] भेद्य नहीं: पहुँच अस्वीकृत (प्रमाणीकरण कार्य कर रहा है)।
| परिदृश्य | OCSP स्थिति | अपेक्षित (पैच किया गया) | परिणाम (भेद्य) | नोट्स |
|---|---|---|---|---|
| सामान्य संचालन | ऑनलाइन और मान्य | 200 OK ✓ | 200 OK ✓ | OCSP जाँच सफल, पहुँच प्रदान की गई |
| सॉफ्ट विफलता | ऑफलाइन/टाइमआउट | 403 Forbidden ✓ | 200 OK ✗ | बायपास - OCSP रिस्पॉन्डर अप्राप्य |
| हार्ड रद्दीकरण | ऑनलाइन और रद्द | 403 Forbidden ✓ | 403 Forbidden ✓ | सर्टिफिकेट स्पष्ट रूप से रद्द |
| अमान्य सर्टिफिकेट | अमान्य श्रृंखला | 403 Forbidden ✓ | 403 Forbidden ✓ | श्रृंखला सत्यापन विफल |
परीक्षण 1: डिफ़ॉल्ट (OCSP रिस्पॉन्डर विफल)
# कंटेनर चालू रखें
python poc_exploit.py
परीक्षण 2: OCSP रिस्पॉन्डर रोकें (टाइमआउट का अनुकरण)
docker-compose pause ocsp-responder
python poc_exploit.py
docker-compose unpause ocsp-responder
परीक्षण 3: curl के साथ मैन्युअल परीक्षण
curl -v \
--cert certs/client-cert.pem \
--key certs/client-key.pem \
--cacert certs/ca-chain.pem \
https://localhost:8443/protected-resource
CVE-2026-29145-Tester/
├── README.md # यह फ़ाइल
├── setup_certs.sh # सर्टिफिकेट निर्माण स्क्रिप्ट - Bash (Linux/macOS)
├── setup_certs.ps1 # सर्टिफिकेट निर्माण स्क्रिप्ट - PowerShell (Windows)
├── cleanup.sh # सफाई और रीसेट स्क्रिप्ट - Bash (Linux/macOS)
├── cleanup.ps1 # सफाई और रीसेट स्क्रिप्ट - PowerShell (Windows)
├── run_test.sh # स्वचालित पूर्ण परीक्षण चक्र स्क्रिप्ट
├── docker-compose.yml # Docker सेवा ऑर्केस्ट्रेशन
├── requirements.txt # Python निर्भरताएँ
├── poc_exploit.py # मुख्य परीक्षण स्क्रिप्ट (लॉगिंग और त्रुटि हैंडलिंग के साथ)
├── simple_proxy_fail.py # मॉक OCSP रिस्पॉन्डर (विस्तृत लॉगिंग के साथ)
├── .gitignore # सर्टिफिकेट और लॉग के लिए Git इग्नोर नियम
├── certs/ # उत्पन्न सर्टिफिकेट (setup_certs स्क्रिप्ट द्वारा बनाए गए)
│ ├── ca-chain.pem # रूट CA सर्टिफिकेट
│ ├── ca-key.pem # रूट CA निजी कुंजी
│ ├── server-cert.pem # Tomcat सर्वर सर्टिफिकेट
│ ├── server-key.pem # Tomcat सर्वर निजी कुंजी
│ ├── client-cert.pem # परीक्षण क्लाइंट सर्टिफिकेट
│ └── client-key.pem # परीक्षण क्लाइंट निजी कुंजी
├── tomcat/
│ └── server.xml # भेद्य Tomcat कॉन्फ़िगरेशन
└── logs/ # Tomcat लॉग (रनटाइम पर बनाए गए)
tomcat/server.xml फ़ाइल कॉन्फ़िगर करती है:
<SSLHostConfig
hostName="localhost"
certificateVerification="required"
caCertificateFile="conf/certs/ca-chain.pem">
<OpenSSLConf>
<ConfCommand name="OCSP" value="on"/>
</OpenSSLConf>
</SSLHostConfig>
मुख्य सेटिंग्स:
certificateVerification="required" - CLIENT_CERT प्रमाणीकरण लागू करता हैOCSP on - OCSP रद्दीकरण जाँच सक्षम करता हैमॉक OCSP रिस्पॉन्डर (simple_proxy_fail.py):
localhost:8888 पर सुनता है# macOS
brew install openssl
# Ubuntu/Debian
sudo apt-get install openssl
# CentOS/RHEL
sudo yum install openssl
कारण: सर्टिफिकेट निर्माण विफल हुआ या नहीं चलाया गया।
# साफ करें और पुनः उत्पन्न करें
rm -rf certs
./setup_certs.sh
कारण: Tomcat कंटेनर चल नहीं रहा है या तैयार नहीं है।
# कंटेनर स्थिति जांचें
docker-compose ps
# लॉग जांचें
docker-compose logs vulnerable-tomcat
# सुनिश्चित करें कि दोनों सेवाएँ चल रही हैं और स्वस्थ हैं
docker-compose up -d
sleep 10 # सेवाओं के प्रारंभ होने की प्रतीक्षा करें
कारण: Tomcat को प्रारंभ होने में बहुत समय लग रहा है या नेटवर्क समस्याएँ हैं।
# Tomcat स्टार्टअप लॉग जांचें
docker-compose logs vulnerable-tomcat