CVE-2026-56158 के लिए पाँच .NET डिसीरियलाइज़ेशन पेलोड प्रारूप उत्पन्न करता है, उन्हें HTTP/SOAP/JSON एंडपॉइंट्स के माध्यम से वितरित करता है, और इसमें मॉक सर्वर, स्कैनर और JSON रिपोर्ट आउटपुट शामिल हैं।
क्रिटिकल (CVSS 9.8) — Microsoft .NET Framework और .NET Runtime में अविश्वसनीय डेटा का डिसीरियलाइज़ेशन (CWE-502) पैच किया गया: 14 जुलाई, 2026 | श्रेय: Positive Technologies (PT-2026-60174)
CVE-2026-56158 Microsoft .NET Framework और .NET runtime में एक क्रिटिकल रिमोट कोड एक्ज़ीक्यूशन भेद्यता है। यह दोष अविश्वसनीय डेटा के असुरक्षित डिसीरियलाइज़ेशन (CWE-502) में मौजूद है — जब कोई .NET एप्लिकेशन लीगेसी सीरियलाइज़र (BinaryFormatter, NetDataContractSerializer, SoapFormatter, ObjectStateFormatter) या TypeNameHandling.All/Auto के साथ Json.NET का उपयोग करता है, तो एक अनप्रमाणित रिमोट हमलावर एक क्राफ्टेड सीरियलाइज़्ड पेलोड वितरित कर सकता है जो डिसीरियलाइज़ेशन पर मनमाना कोड निष्पादन ट्रिगर करता है।
इस भेद्यता का CVSS 3.1 आधार स्कोर 9.8 क्रिटिकल है, जिसका वेक्टर AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H है, जिसका अर्थ है:
Microsoft ने मासिक Patch Tuesday चक्र के भाग के रूप में 14 जुलाई, 2026 को सुरक्षा अपडेट जारी किए।
| फ़ील्ड | मान |
|---|---|
| CVE ID | CVE-2026-56158 |
| शीर्षक | .NET Framework रिमोट कोड एक्ज़ीक्यूशन भेद्यता |
| CVSS 3.1 | 9.8 क्रिटिकल (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CVSS 2.0 | 7.5 उच्च (AV:N/AC:L/Au:N/C:P/I:P/A:P) |
| CWE | CWE-502 (अविश्वसनीय डेटा का डिसीरियलाइज़ेशन) |
| प्रकाशित | 14 जुलाई, 2026 |
| पैच किया गया | 14 जुलाई, 2026 |
| खोजकर्ता | Positive Technologies (PT-2026-60174) |
| EPSS | अभी तक स्कोर नहीं किया गया |
| CISA KEV | सूचीबद्ध नहीं |
.NET runtime के लीगेसी सीरियलाइज़र प्रकार या सामग्री को सत्यापित किए बिना सीरियलाइज़्ड स्ट्रीम से मनमाने ऑब्जेक्ट प्रकारों का पुनर्निर्माण करते हैं। जब कोई हमलावर सीरियलाइज़्ड इनपुट को नियंत्रित करता है, तो वे डिसीरियलाइज़र को अप्रत्याशित प्रकारों को इंस्टैंशिएट करने के लिए निर्देशित कर सकते हैं, जिनके कंस्ट्रक्टर, कॉलबैक या प्रॉपर्टी सेटर मनमाना कोड निष्पादित करते हैं — यह एक क्लासिक डिसीरियलाइज़ेशन गैजेट चेन हमला है।
यह भेद्यता कई सीरियलाइज़ेशन तंत्रों को प्रभावित करती है:
TypeConfuseDelegate गैजेट चेन Process.Start को डेलीगेट करती हैProcessStartInfoProcess.StartTypeNameHandling.All/Auto सक्षम होने पर $type मेटाडेटा के साथ JSON; ObjectDataProvider गैजेट Process.Start को कॉल करता है| उत्पाद | भेद्य रेंज | फिक्स्ड संस्करण | KB आलेख |
|---|---|---|---|
| .NET 8.0 | 8.0.0 – 8.0.28 | 8.0.29 | KB5100998 |
| .NET 9.0 | 9.0.0 – 9.0.17 | 9.0.18 | KB5100998 |
| .NET 10.0 | 10.0.0 – 10.0.9 | 10.0.10 | KB5101001 |
| .NET Framework 3.5 | सभी पैच-पूर्व | पैच किया गया | KB5100985 |
| .NET Framework 4.6.2–4.7.2 | सभी पैच-पूर्व | पैच किया गया | KB5100991 |
| .NET Framework 4.8 | सभी पैच-पूर्व | पैच किया गया | KB5101011 |
| .NET Framework 4.8.1 | सभी पैच-पूर्व | पैच किया गया | KB5101002 |
| Visual Studio 2022 (17.12) | पैच-पूर्व | 17.12.x | — |
| Visual Studio 2022 (17.14) | पैच-पूर्व | 17.14.x | — |
| Visual Studio 2026 (18.7) | पैच-पूर्व | 18.7.x | — |
Alpine Linux पैकेज:
dotnet8-runtime < 8.0.29-r0dotnet9-runtime < 9.0.18-r0dotnet10-runtime < 10.0.10-r0यह PoC एक्सप्लॉइट 5 अलग-अलग डिसीरियलाइज़ेशन आक्रमण प्रारूपों के माध्यम से पेलोड उत्पन्न और वितरित करता है:
Serialized Stream → BinaryFormatter.Deserialize() → TypeConfuseDelegate
→ Process.Start("cmd.exe", "/c calc.exe") → RCE
application/octet-streamActivitySurrogateSelector+ObjectSurrogate → TypeConfuseDelegate → Process.StartXML with type info → NetDataContractSerializer.ReadObject()
→ ProcessStartInfo instantiation → Process.Start → RCE
application/octet-stream या text/xmlSOAP envelope → SoapFormatter.Deserialize()
→ ProcessStartInfo in SOAP body → Process.Start → RCE
text/xmlViewState binary → ObjectStateFormatter.Deserialize()
→ Process.Start via ViewState field → RCE
application/octet-stream__VIEWSTATE फ़ील्डJSON with $type → JsonConvert.DeserializeObject<T>(json, TypeNameHandling.All)
→ ObjectDataProvider.MethodName = "Start" → Process.Start → RCE
$type मेटाडेटा के साथ JSONapplication/jsonTypeNameHandling.All या Auto के साथ REST API एंडपॉइंट┌─────────────────────────────────────────────────────────────────────┐
│ exploit.py │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌───────────────┐ ┌───────────────────────┐ │
│ │ PayloadGen │ │ PayloadDeliv │ │ VulnerabilityScanner │ │
│ │ │ │ │ │ │ │
│ │ • BinaryFmt │ │ • HTTP POST │ │ • HTTP header check │ │
│ │ • NetData │──▶│ • SOAP/WCF │──▶│ • Endpoint discovery │ │
│ │ • SoapFmt │ │ • JSON API │ │ • ViewState analysis │ │
│ │ • ObjectState│ │ • File save │ │ • Version detection │ │
│ │ • Json.NET │ │ │ │ │ │
│ └──────────────┘ └───────────────┘ └───────────────────────┘ │
│ │ │ │ │
│ └───────────────────┼──────────────────────┘ │
│ ▼ │
│ ┌──────────────┐ ┌──────────────────────────────────────────┐ │
│ │ PayloadList │ │ Report Generator (JSON) │ │
│ │ (Mock .NET) │ │ • CVE metadata, CVSS, CWE │ │
│ │ │ │ • Payload hashes (SHA-256) │ │
│ │ Simulates │ │ • Delivery results │ │
│ │ vulnerable │ │ • RCE confirmation │ │
│ │ deserialization│ │ • References │ │
│ └──────────────┘ └──────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘