
CVE-2026-109618 / CVE-2026-109619 ऑडिट: सत्र विषाक्तता से कमांड निष्पादन तक पुनरुत्पादित; BGCTX OOM पूर्वशर्त पुनरुत्पादित; दावा किया गया progress-array UAF स्टॉक बिल्ड्स पर पुनरुत्पादित नहीं हुआ।
"php2shell" दावों का ऑडिट, साथ में एक काम करने वाला स्थानीय PoC।
中文 · PHP 8.5.4 · केवल-लैब
MITRE:
CVE_RECORD_DNE· NVD: कोई रिकॉर्ड नहीं · php.net: केवल पूर्व-घोषणा। यह रेपो तकनीकी दावों का ऑडिट करता है; यह पहचानकर्ताओं की पुष्टि नहीं करता।
| प्रश्न | उत्तर |
|---|---|
| क्या यह शेल दे सकता है? | ✅ स्थानीय रूप से — एक unserialize() सिंक + एक __destruct गैजेट के साथ |
| क्या वही CVE है? | ⚠️ शायद नहीं — CVE BG कॉन्टेक्स्ट अनाथों जैसा दिखता है (नोट 08) |
| क्या यह प्री-ऑथ है? | ❌ प्री-ऑथ पथ हमारे परीक्षणों में ARM / क्रैश पर रुक जाता है |
| क्या लीक हुआ बंडल सही है? | ❌ post_bytes_processed UAF पुनरुत्पादित नहीं होता |
multipart POST ──► php_hash_environment() ← RINIT से पहले
│
├─ serialize encode ──► OOM ──► BG(serialize) अनाथ (64 B)
└─ unserialize decode ──► OOM ──► BG(unserialize) अनाथ (8208 B)
│
▼
SAPI बचता है? ── हाँ ──► अगला अनुरोध मुक्त कॉन्टेक्स्ट का पुनः उपयोग करता है
│ │
नहीं ├─ Bug S: क्रैश / लीक
▼ └─ Bug U: RCE वर्ग
केवल DoS
हमारे PoC द्वारा उपयोग किया गया अलग बग:
var_destroy() ──► back-ref चंक्स मुक्त करता है ──► dtor वॉक (कोई serialize_lock नहीं)
└─ __destruct ──► आंतरिक unserialize ──► R:N मुक्त चंक पढ़ता है
└─ नकली क्लोज़र ──► zif_system(cmd)
php exploit/var_destroy_uaf_rce.php "id > /tmp/proof"
cat /tmp/proof # uid=... gid=...
आवश्यकताएँ: कमज़ोर PHP (8.5.4 सत्यापित) · हमलावर डेटा पर unserialize() · एक
__destruct क्लास · Linux /proc/self/mem · nm से प्रति-बिल्ड ऑफ़सेट।
| दावा | परिणाम |
|---|---|
लीक हुआ बंडल: post_bytes_processed UAF | ❌ पुनरुत्पादित नहीं (Z_TRY_ADDREF) |
Bug S — BG(serialize) अनाथ | ⚠️ ASAN के अंतर्गत UAF 3/3 · arm पुनरुत्पादित · कोई RCE नहीं |
Bug U — BG(unserialize) अनाथ | ⚠️ arm पुनरुत्पादित · kill / system पुनरुत्पादित नहीं |
| var_destroy UAF → RCE | ✅ काम करता है, 10/10, स्व-स्थान-निर्धारक |
सत्र विषाक्तता → include | ✅ पुनरुत्पादित (पूर्व-मौजूद तकनीक) |
हैंडलर बेमेल → __destruct | ✅ पुनरुत्पादित (एक गैजेट क्लास चाहिए) |
| डेमो बाइनरी ऑफ़सेट | ✅ 8.5.4-0ubuntu1.3 से मेल खाते हैं (delta 0xbe3f0) |
| पथ | क्या |
|---|---|
exploit/var_destroy_uaf_rce.php | स्व-स्थान-निर्धारक UAF → RCE PoC |
analysis/01-05 | जीवनकाल · एब्लेशन · संस्करण · लीक हुआ बंडल · पहुँचयोग्यता |
analysis/06 | BG(serialize) पथ + ASAN रसीद |
analysis/07 | सत्र विषाक्तता → कमांड निष्पादन |
analysis/08 | BG कॉन्टेक्स्ट अनाथ (re-up पैकेज) |
analysis/09 | var_destroy UAF → RCE (ऑफ़सेट, स्व-स्थान-निर्धारक) |
evidence/ | ASAN ट्रेस · OOM लॉग · बाइनरी ऑफ़सेट · रन |
lab/ | बिल्ड स्क्रिप्ट · ट्रिगर · मैट्रिक्स · एब्लेशन |
PROVENANCE.md | आर्टिफ़ैक्ट URL · तिथियाँ · हैश |
स्थानीय बिल्ड, स्थानीय Apache / php-fpm / Docker लैब, और नामित Ubuntu पैकेज। PoC PHP प्रक्रिया उपयोगकर्ता के रूप में चलता है; गैजेट पूर्वशर्त वास्तविक है।