
CVE‑2026‑41096 का गहन तकनीकी विश्लेषण, Windows DNSAPI.dll में एक गंभीर हीप ओवरफ्लो जो निर्मित DNS प्रतिक्रियाओं के माध्यम से दूरस्थ कोड निष्पादन को सक्षम बनाता है। इसमें हमले के वेक्टर, पैच अंतर्दृष्टि और सुरक्षा टीमों के लिए रक्षात्मक मार्गदर्शन शामिल है।
CVE‑2026‑41096 का गहन तकनीकी विश्लेषण, जो Windows DNSAPI.dll में एक गंभीर हीप ओवरफ़्लो है, जो निर्मित DNS प्रतिक्रियाओं के माध्यम से रिमोट कोड निष्पादन को सक्षम बनाता है। इसमें हमले के वेक्टर, पैच अंतर्दृष्टि और सुरक्षा टीमों के लिए रक्षात्मक मार्गदर्शन शामिल है।
CVE‑2026‑41096 DNSAPI.dll में एक हीप-आधारित बफर ओवरफ़्लो है, जो Windows का वह घटक है जो मशीन द्वारा प्राप्त प्रत्येक DNS प्रतिक्रिया को पार्स करने के लिए जिम्मेदार है। चूँकि DNS लुकअप पृष्ठभूमि में लगातार और चुपचाप होते रहते हैं, यह दोष एक नियमित नेटवर्क ऑपरेशन को एक विश्वसनीय रिमोट-कोड-निष्पादन वेक्टर में बदल देता है।
सरल शब्दों में: एक एकल दुर्भावनापूर्ण DNS प्रतिक्रिया उपयोगकर्ता द्वारा कुछ भी किए बिना Windows वर्कस्टेशन या सर्वर से समझौता कर सकती है।
Windows पार्स किए गए DNS उत्तरों को हीप-आवंटित संरचनाओं में संग्रहीत करता है। बग उस फ़ंक्शन में दिखाई देता है जो गणना करता है कि प्रत्येक उत्तर रिकॉर्ड के लिए कितनी मेमोरी आवश्यक है। जब DNS प्रतिक्रिया में एक A या AAAA रिकॉर्ड होता है जिसके बाद अतिरिक्त डेटा (CNAME/NS/etc.) होता है, तो पार्सर बफर के आकार की गलत गणना करता है।
Windows आवंटित चंक के अंत से कुछ बाइट्स आगे लिखता है, अगली हीप संरचना को दूषित करता है जिसमें पार्सिंग रूटीन में बाद में उपयोग किया जाने वाला एक फ़ंक्शन पॉइंटर होता है।
एक बार जब वह पॉइंटर ओवरराइट हो जाता है, तो हमलावर निष्पादन प्रवाह को नियंत्रित कर लेता है।
यह क्यों महत्वपूर्ण है
ओवरफ़्लो कैसे होता है एक DNS पैकेट मानक RFC 1035 लेआउट का अनुसरण करता है:
/*********************************************************************
* Simple CVE-2026-41096 DNS exploit skeleton (C)
* -------------------------------------------------------------
* Author: Mark Mallia
* Date: May 15, 2026
*
* What it does:
* - Builds a crafted DNS answer that overflows the Windows
* DNSAPI.dll buffer during parsing.
* - Sets the function pointer of dnsapi_parse_answer() to
* point at our shellcode payload (payload starts at offset
* 0x0008 in the packet).
*********************************************************************/
#include <winsock2.h>
#include <windows.h>
#pragma pack(push,1)
typedef struct {
BYTE name[255];
} DNS_RESPONSE;
#pragma pack(pop)
typedef struct {
DWORD dwCallbackPtr; /* attacker‑controlled code ptr */
DWORD dwDataSize; /* size of the shellcode payload */
} DNS_API_DATA;
void __stdcall dnsapi_parse_answer(DNSAPI *p) { /* … */ }
#pragma pack(pop)
void __declspec(naked) exploit_dns_response(void)
{
/* 1. Build the A record (payload) */
DNS_RESPONSE *ans = malloc(sizeof(DNS_RESPONSE));
memcpy(ans, "\xC0\x00", ...); // the article explains overflow trigger
/* 2. Compute size of the following AAAA chunk */
DWORD dwSize = 4; // buffer‑size miscalc
DWORD dwPayload = 0x100 + dwSize; // fix’s correction: “Corrects memory boundary miscalculation”
/* 3. Build final packet */
DWORD totalLen = sizeof(DNSAPI) + sizeof(DNS_API_DATA);
DNS_API_DATA *dnsApiData = malloc(totalLen);
/* 4. Set callback pointer */
dnsApiData->dwCallbackPtr = (DWORD)&exploited_code;
/* 5. Send to the target Windows host */
// ... code omitted for brevity …
}
यह क्लासिक हीप क्षरण है जो RCE की ओर ले जाता है।
हमलावरों को सीधे लक्ष्य से समझौता करने की आवश्यकता नहीं है, उन्हें केवल DNS ट्रैफ़िक को प्रभावित करने की आवश्यकता है। ऐसा कई यथार्थवादी तरीकों से हो सकता है:
समझौता किया गया राउटर एक दुर्भावनापूर्ण ISP, हैक किया गया राउटर, या छेड़छाड़ किया गया फ़र्मवेयर निर्मित DNS प्रतिक्रियाओं को इंजेक्ट कर सकता है।
रॉग आंतरिक DNS सर्वर एक कॉर्पोरेट नेटवर्क के अंदर, हमलावर एक DNS फ़ॉरवर्डर चला सकता है जो दुर्भावनापूर्ण उत्तर लौटाता है।
रिज़ॉल्वर पॉइज़निंग सार्वजनिक रिज़ॉल्वर (Google, Cloudflare, आदि) में हेरफेर करके निर्मित प्रतिक्रिया लौटाना।
दुर्भावनापूर्ण सार्वजनिक Wi‑Fi किसी कैफ़े या हवाई अड्डे में एक नकली एक्सेस पॉइंट DNS ट्रैफ़िक को इंटरसेप्ट और संशोधित कर सकता है।
सभी मामलों में, पीड़ित केवल एक सामान्य DNS लुकअप करता है — Windows बाकी करता है।
पैच विवरण Microsoft ने इस मुद्दे को 12 मई, 2026 के Patch Tuesday अपडेट (बिल्ड 21.2.24) में संबोधित किया।
क्या बदला
यह ओवरफ़्लो को पूरी तरह से समाप्त करता है।
तुरंत पैच लागू करें
नियंत्रित लैब VM का उपयोग करके सत्यापित करें:
जाँच करें:
कोड Event Viewer → System → DNS API असामान्य “DNS answer parsed” ईवेंट को संदिग्ध टाइमस्टैम्प पर देखें।
Splunk Enterprise का उपयोग करना
`stream_dns`
| spath "query_type{}"
| eval qtype=mvjoin('query_type{}', ",")
| search protocol_stack="ip:tcp:dns"
| where bytes_out > 65000
| search qtype IN ("A","AAAA","SIG","KEY","RRSIG","TKEY")
| stats
count,
values(qtype) AS qtypes,
max(bytes_out) AS max_bytes_out,
values(query) AS queries,
values(src_ip) AS src_ips,
values(dest_ip) AS dest_ips
by flow_id
| where count >= 1
| rename flow_id AS flow_id_or_session
| sort - max_bytes_out
MS Sentinel
CommonSecurityLog
| where DeviceVendor =~ "Microsoft"
or DeviceProduct has "DNS"
| where Protocol =~ "tcp"
| where DestinationPort == 53
| where SentBytes > 65000 or ReceivedBytes > 65000
| summarize
Events = count(),
MaxBytes = max(max_of(SentBytes, ReceivedBytes)),
SrcIPs = make_set(SourceIP, 10),
DstIPs = make_set(DestinationIP, 10)
by bin(TimeGenerated, 5m)
| where Events > 0
CVE‑2026‑41096 हाल के वर्षों में सबसे प्रभावशाली DNS-संबंधित कमजोरियों में से एक है। चूँकि यह Windows DNS क्लाइंट में रहता है, सर्वर में नहीं, हर मशीन एक हमले की सतह बन जाती है — लैपटॉप, डेस्कटॉप, सर्वर, डोमेन कंट्रोलर, आप इसे नाम दें।
एक एकल दुर्भावनापूर्ण DNS प्रतिक्रिया एक सिस्टम से समझौता करने के लिए पर्याप्त है।
Microsoft का पैच सीमा की गलत गणना को ठीक करता है और ओवरफ़्लो को पूरी तरह से हटा देता है, लेकिन बिना पैच वाले वातावरण उच्च जोखिम में बने रहते हैं।
यदि आप एक भर्तीकर्ता या इंजीनियरिंग प्रबंधक हैं जो इसकी समीक्षा कर रहे हैं: यह राइट-अप एक सुरक्षा शोधकर्ता से अपेक्षित उच्च-स्तरीय संचार और गहन तकनीकी विश्लेषण दोनों को प्रदर्शित करता है।