{"id":1663,"date":"2025-01-31T10:03:35","date_gmt":"2025-01-31T10:03:35","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2025\/01\/31\/windows-vulnerability-in-com-objects-trigger-rce-to-control-the-systems-remotely\/"},"modified":"2025-01-31T10:03:35","modified_gmt":"2025-01-31T10:03:35","slug":"windows-vulnerability-in-com-objects-trigger-rce-to-control-the-systems-remotely","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2025\/01\/31\/windows-vulnerability-in-com-objects-trigger-rce-to-control-the-systems-remotely\/","title":{"rendered":"Windows Vulnerability in COM Objects Trigger RCE To Control The Systems Remotely"},"content":{"rendered":"<p>    Windows Vulnerability in COM Objects Trigger RCE To Control The Systems Remotely<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>James Forshaw of Google Project Zero has shed light on a significant security vulnerability in Windows related to accessing trapped COM objects through the IDispatch interface. <\/p>\n<p>This research highlights an intriguing bug class that exploits cross-process communication features in object-oriented remoting technologies like <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/com\/component-object-model--com--portal\">COM objects<\/a> and <a href=\"https:\/\/learn.microsoft.com\/en-us\/openspecs\/windows_protocols\/ms-netod\/bfd49902-36d7-4479-bf75-a2431bd99039\">.NET Remoting<\/a>, potentially allowing attackers to execute code in higher-privileged server processes.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Understanding the Trapped Object Bug Class<\/strong><\/h2>\n<p>The vulnerability stems from the flexibility of remoting technologies that allow objects to be shared between client and server processes. <\/p>\n<p>While designed to simplify the development of cross-boundary services, these features can inadvertently expose unsafe objects. <\/p>\n<p>Forshaw <a href=\"https:\/\/googleprojectzero.blogspot.com\/2025\/01\/windows-bug-class-accessing-trapped-com.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">notes<\/a> that if an object is returned and marshaled \u201cby reference,\u201d it remains in the server process, making it vulnerable to exploitation. One such example is XML libraries, which could allow remote code execution by leveraging scripting features.<\/p>\n<p>Specific cases, such as CVE-2019-0555, illustrate how developers assumed safety in certain object implementations, only to inadvertently expose dangerous interfaces. <\/p>\n<p>Another example, CVE-2017-0211, demonstrated how attackers could use the IPropertyBag interface to create arbitrary COM objects in a server\u2019s context, potentially elevating their privileges.<\/p>\n<h2 class=\"wp-block-heading\"><strong>The Role of IDispatch and Type Libraries<\/strong><\/h2>\n<p>The IDispatch interface\u2014a key part of OLE Automation\u2014enables late binding of COM objects for scripting languages like VBA and JScript. <\/p>\n<p>By leveraging the type library mechanism, attackers can exploit the CreateInstance method in remoted objects to instantiate COM objects within a server\u2019s process. This can be used to gain control over the server, bypassing security boundaries.<\/p>\n<p>Forshaw demonstrated this issue using tools like his <em><a href=\"https:\/\/googleprojectzero.blogspot.com\/2024\/12\/windows-tooling-updates-oleviewnet.html#:~:text=Using%20the%20OleView.NET%20Tooling&amp;text=The%20simplest%20way%20to%20get,artifacts%20into%20an%20internal%20database.\" target=\"_blank\" rel=\"noreferrer noopener\">OleView.NET PowerShell module<\/a><\/em>, identifying several COM classes exposed through local services. <\/p>\n<p>While investigating specific service classes, such as <em>WaaSRemediation<\/em>, Forshaw explored how these hidden vulnerabilities could be exploited for privilege escalation or injection attacks.<\/p>\n<pre class=\"wp-block-code\"><code>PS&gt; $cls = Get-ComClass -Service\n\nPS&gt; $cls | % { Get-ComInterface -Class $_ | Out-Null }\n\nPS&gt; $cls | ? { $true -in $_.Interfaces.InterfaceEntry.IsDispatch } | \n\n        Select Name, Clsid\n\nName                                       Clsid\n\n----                                       -----\n\nWaaSRemediation                            72566e27-1abb-4eb3-b4f0-eb431cb1cb32\n\nSearch Gathering Manager                   9e175b68-f52a-11d8-b9a5-505054503030\n\nSearch Gatherer Notification               9e175b6d-f52a-11d8-b9a5-505054503030\n\nAutomaticUpdates                           bfe18e9c-6d87-4450-b37c-e02f0b373803\n\nMicrosoft.SyncShare.SyncShareFactory Class da1c0281-456b-4f14-a46d-8ed2e21a866f<\/code><\/pre>\n<h2 class=\"wp-block-heading\"><strong>Injection into Protected Processes<\/strong><\/h2>\n<p>The research took an interesting turn when Forshaw analyzed the <em>WaaSRemediationAgent<\/em> class, a Windows service running as a Protected Process (PPL-Windows). <\/p>\n<pre class=\"wp-block-code\"><code>PS&gt; $obj = New-ComObject -Clsid 72566e27-1abb-4eb3-b4f0-eb431cb1cb32\n\nPS&gt; $lib = Import-ComTypeLib -Object $obj\n\nPS&gt; Get-ComObjRef $lib.Instance | Select ProcessId, ProcessName\n\nProcessId ProcessName\n\n--------- -----------\n\n    27020 svchost.exe\n\n\nPS&gt; $parsed = $lib.Parse()\n\nPS&gt; $parsed\n\nName               Version TypeLibId\n\n----               -------- ---------\n\nWaaSRemediationLib 1.0      3ff1aab8-f3d8-11d4-825d-00104b3646c0\n\n\nPS&gt; $parsed.Classes | Select Name, Uuid\n\nName                          Uuid\n\n----                          ----\n\nWaaSRemediationAgent          72566e27-1abb-4eb3-b4f0-eb431cb1cb32\n\nWaaSProtectedSettingsProvider 9ea82395-e31b-41ca-8df7-ec1cee7194df<\/code><\/pre>\n<p>While Microsoft considers PPL not to be a strict security boundary, it restricts certain tools, like script engines, from being loaded into protected processes. Forshaw proposed and tested a novel injection method targeting the IDispatch-based interface.<\/p>\n<p>By redirecting the COM registration of a vulnerable object (e.g., StdFont) to a malicious class, attackers could potentially inject .NET-based payloads or other harmful code into the protected process. <\/p>\n<p>Forshaw showed how exploiting registry keys and .NET COM reflection could load arbitrary assemblies, enabling code execution.<\/p>\n<p>While the proof-of-concept worked on Windows 10, Forshaw encountered challenges on Windows 11 (24H2). <\/p>\n<p>Microsoft had introduced mitigations, such as cached signing level validations, which blocked libraries that lacked Windows-level signing. <\/p>\n<p>However, Forshaw found a workaround by using a 32-bit version of the type library, proving that the exploit remains viable with enough effort.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Mitigations and Implications<\/strong><\/h2>\n<p>Although Forshaw\u2019s research did not directly demonstrate privilege escalation, it highlighted IDispatch interfaces\u2019 risks in remoting technologies. <\/p>\n<p>Attackers with administrative privileges could use the attack method to inject code into a protected process, such as LSASS, or even by standard users if suitable COM servers are exposed.<\/p>\n<p>Forshaw noted that Microsoft has addressed some attack vectors by improving type library validation, but certain areas remain vulnerable.<\/p>\n<p> Notably, while this vulnerability requires significant expertise to exploit, it reinforces the need for secure object handling across process boundaries<\/p>\n<p>Forshaw\u2019s blog underscores how subtle design decisions in remoting technologies can lead to significant security risks. <\/p>\n<p>The ability to trap and manipulate COM objects across privilege boundaries serves as a reminder of how complex systems can be exploited in unintended ways.<\/p>\n<p> While the demonstrated attacks require administrative privileges or careful setup, they highlight an ongoing problem with how object-oriented remoting technologies handle cross-boundary interactions.<\/p>\n<p>As always, users and organizations are encouraged to keep their systems updated and audit services for exposed interfaces to mitigate potential risks. Meanwhile, Microsoft may need to continue refining its mitigations to address these advanced attack vectors.<\/p>\n<p>This research serves as a reminder of the complexities and challenges in securing modern operating systems, particularly when dealing with legacy technologies like COM.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(135deg,rgb(238,238,238) 100%,rgb(169,184,195) 100%)\"><strong>Find this Story Interesting! Follow us on\u00a0<a href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMOffpwsw1Oq_Aw\" target=\"_blank\" rel=\"noreferrer noopener\">Google News<\/a>,\u00a0<a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener\">LinkedIn<\/a>, and\u00a0<a href=\"https:\/\/x.com\/The_Cyber_News\" target=\"_blank\" rel=\"noreferrer noopener\">X<\/a>\u00a0to Get More Instant Updates<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/new-windows-vulnerability-in-com-objects\/\">Windows Vulnerability in COM Objects Trigger RCE To Control The Systems Remotely<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Balaji N<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/new-windows-vulnerability-in-com-objects\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Windows Vulnerability in COM Objects Trigger RCE To Control The Systems Remotely James Forshaw of Google Project Zero has shed light on a significant security vulnerability in Windows related to accessing trapped COM objects through the IDispatch interface. This research highlights an intriguing bug class that exploits cross-process communication features in object-oriented remoting technologies like [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,63,131,648],"tags":[130],"class_list":["post-1663","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-cyber-security-news","category-vulnerability","category-vulnerability-news","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/1663"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=1663"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/1663\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=1663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=1663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=1663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}