
CVE-2026-89282 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: Apache Lounge Windows इंस्टॉल में प्रॉक्सी DLL सर्च-ऑर्डर हाईजैक, जो सेवा पुनःआरंभ पर SYSTEM विशेषाधिकार वृद्धि प्रदान करता है।
लेखक: Ashish Kunwar (@D0rkerDevil)
दिनांक: 2026-10-17
CVE: CVE-2026-89282
CWE: CWE-427 (अनियंत्रित सर्च पाथ एलिमेंट) / CWE-732 (महत्वपूर्ण संसाधन के लिए गलत अनुमति असाइनमेंट)
CVSS 3.1: 7.3 (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
इसमें ठीक किया गया: Apache Lounge 2.4.68-260920 Win64 (20 सितंबर, 2026)
Apache HTTP Server का Apache Lounge Windows वितरण (बिल्ड 2.4.68-260920 से पहले) असुरक्षित डिफ़ॉल्ट ACL के साथ इंस्टॉल होता है जो BUILTIN\Users को इंस्टॉलेशन डायरेक्टरी ट्री, जिसमें C:\Apache24\bin\ भी शामिल है, पर लेखन पहुँच (WD + AD) प्रदान करता है। मानक Windows DLL सर्च ऑर्डर के साथ मिलकर — जो KnownDLLs रजिस्ट्री कुंजी में न होने वाली DLL के लिए System32 से पहले एप्लिकेशन डायरेक्टरी से लोड करता है — कोई भी स्थानीय मानक उपयोगकर्ता एक प्रॉक्सी DLL रख सकता है जो Apache सेवा के पुनः आरंभ होने पर NT AUTHORITY\SYSTEM के रूप में मनमाना कोड निष्पादित करता है।
यह PoC पूर्ण शोषण प्रदर्शित करता है: एक निम्न-विशेषाधिकार वाला उपयोगकर्ता C:\Apache24\bin\ में 71 PE एक्सपोर्ट फ़ॉरवर्डर वाली एक प्रॉक्सी VCRUNTIME140.dll रखता है। Apache के पुनः आरंभ होने पर, httpd.exe (जो LocalSystem के रूप में चल रहा है) प्रॉक्सी को लोड करता है, जो सभी वैध कॉल्स को वास्तविक DLL को फ़ॉरवर्ड करता है और साथ ही DllMain में SYSTEM-विशेषाधिकार प्राप्त पेलोड निष्पादित करता है। Apache सामान्य रूप से सेवा देता रहता है — न क्रैश, न व्यवधान।
Apache Lounge का Windows इंस्टॉलर C:\ के अंतर्गत C:\Apache24\ बनाता है, जो Windows पर डिफ़ॉल्ट रूप से Authenticated Users: Modify अनुमतियाँ विरासत में प्राप्त करता है। इंस्टॉलर इन ACL को सुदृढ़ नहीं करता। यह किसी भी स्थानीय उपयोगकर्ता को नई फ़ाइलें लिखने की क्षमता प्रदान करता है:
| डायरेक्टरी | प्रभाव |
|---|---|
C:\Apache24\bin\ | DLL हाईजैक — 21 हाईजैक-योग्य सिस्टम DLL |
C:\Apache24\modules\ | सीधा मॉड्यूल इंजेक्शन |
C:\Apache24\conf\ | कॉन्फ़िगरेशन छेड़छाड़ |
C:\Apache24\htdocs\ | वेब सामग्री संशोधन |
Apache24 सेवा AUTO_START के साथ LocalSystem (SYSTEM) के रूप में चलती है, जिससे एप्लिकेशन डायरेक्टरी से लोड होने वाली कोई भी DLL उच्चतम Windows विशेषाधिकार स्तर पर निष्पादित होती है।
# Cross-compile from Linux/macOS (mingw-w64)
x86_64-w64-mingw32-gcc -shared -o VCRUNTIME140.dll vcruntime140_hijack.c vcruntime140.def \
-Wl,--enable-stdcall-fixup -s
# Or compile on Windows (MSVC)
cl /LD vcruntime140_hijack.c /link /DEF:vcruntime140.def /OUT:VCRUNTIME140.dll
REM Create hard link to the real DLL for export forwarding
mklink /H "C:\Apache24\bin\vcruntime140_orig.dll" "C:\Windows\System32\VCRUNTIME140.dll"
REM Plant the proxy DLL
copy VCRUNTIME140.dll "C:\Apache24\bin\VCRUNTIME140.dll"
रखी गई DLL अगली Apache सेवा पुनः आरंभ होने पर सक्रिय होती है। उत्पादन सर्वर पर, यह निम्न के माध्यम से होता है:
httpd -k restart)पुनः आरंभ के बाद, httpd.exe हमारी प्रॉक्सी DLL को SYSTEM के रूप में लोड करता है। DllMain पेलोड निष्पादित होता है:
Administrators समूह में जोड़ता हैhttpd.exe द्वारा लोड की जाने वाली 21 सिस्टम DLLs KnownDLLs रजिस्ट्री कुंजी में नहीं हैं और इन्हें C:\Apache24\bin\ से हाइजैक किया जा सकता है:
| DLL | KnownDLL | हाइजैक करने योग्य |
|---|---|---|
| VCRUNTIME140.dll | नहीं | हाँ — शोषित |
| ucrtbase.dll | नहीं | हाँ |
| KERNELBASE.dll | नहीं | हाँ |
| bcrypt.dll | नहीं | हाँ |
| msvcp_win.dll | नहीं | हाँ |
| CRYPTSP.dll | नहीं | हाँ |
| rsaenh.dll | नहीं | हाँ |
| CRYPTBASE.dll | नहीं | हाँ |
| bcryptPrimitives.dll | नहीं | हाँ |
| mswsock.dll | नहीं | हाँ |
| napinsp.dll | नहीं | हाँ |
| DNSAPI.dll | नहीं | हाँ |
| IPHLPAPI.DLL | नहीं | हाँ |
| winrnr.dll | नहीं | हाँ |
| nlansp_c.dll | नहीं | हाँ |
| wshbth.dll | नहीं | हाँ |
| rasadhlp.dll | नहीं | हाँ |
| fwpuclnt.dll | नहीं | हाँ |
| ntdll.dll | नहीं | हाँ |
| win32u.dll | नहीं | हाँ |
| gdi32full.dll | नहीं | हाँ |
एक मानक उपयोगकर्ता डिफ़ॉल्ट Windows Server 2022 कॉन्फ़िगरेशन पर Apache पुनः आरंभ को स्वयं ट्रिगर नहीं कर सकता। 16+ विधियों का विस्तृत रूप से परीक्षण किया गया — सभी विफल रहीं:
TerminateProcess → ACCESS_DENIEDnet stop/start Apache24 → SDDL इंटरैक्टिव/सेवा लॉगऑन के लिए RP/WP को अस्वीकार करता हैsc stop Apache24 → Access Deniedhttpd -k restart → SCM पहुँच अस्वीकृतSeShutdownPrivilege धारित नहीं हैschtasks /ru SYSTEM → एडमिन आवश्यकट्रिगर नियमित सर्वर रखरखाव से आता है, जो किसी भी उत्पादन प्रणाली पर अपरिहार्य है।
तत्काल (मैन्युअल):
icacls "C:\Apache24" /remove:g "BUILTIN\Users" /T
icacls "C:\Apache24" /grant "BUILTIN\Users:(OI)(CI)(RX)" /T
स्थायी: Apache Lounge 2.4.68-260920 या बाद के संस्करण में अपडेट करें, जो सुधारित इंस्टॉलर ACL के साथ आता है।
गहन रक्षा: DLL लोडिंग को केवल हस्ताक्षरित बाइनरी तक सीमित करने के लिए प्रक्रिया शमन नीतियाँ (process mitigation policies) तैनात करें।
| फ़ाइल | विवरण |
|---|---|
vcruntime140_hijack.c | प्रॉक्सी DLL स्रोत — DllMain पेलोड + प्रूफ-ऑफ-कॉन्सेप्ट |
vcruntime140.def | एक्सपोर्ट फ़ॉरवर्डर परिभाषाएँ (71 एक्सपोर्ट → vcruntime140_orig.dll) |
deploy_hijack.bat | स्वचालित तैनाती स्क्रिप्ट |
| तिथि | घटना |
|---|---|
| 2026-09-20 | Apache Lounge ने ACL सुधार के साथ 2.4.68-260920 जारी किया |
| 2026-09-22 | CERT/CC द्वारा CVE-2026-89282 प्रकाशित |
| 2026-10-16 | स्वतंत्र खोज + पूर्ण PoC (यह कार्य) |
| 2026-10-17 | CVE-2026-89282 की डुप्लिकेट के रूप में पुष्टि; सार्वजनिक रिलीज़ |
यह PoC केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए जारी किया गया है। MIT लाइसेंस।
@D0rkerDevil द्वारा स्वतंत्र रूप से खोजा और प्रलेखित। CVE-2026-89282 के बारे में जानने से पहले पूरी शोषण श्रृंखला विकसित की गई।