<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[CodeAIntel]]></title><description><![CDATA[CodeAIntel explores the dynamic convergence of AI, cybersecurity, and intelligence gathering, By Tom Malka, Head Of Cyber Research @ Rakia.ai, known for his work on ransomware groups and APTs. ]]></description><link>https://www.codeaintel.com</link><image><url>https://substackcdn.com/image/fetch/$s_!kBBb!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94d629d-2720-4f24-a8bf-c3f5d1a4200f_500x500.png</url><title>CodeAIntel</title><link>https://www.codeaintel.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 03 Nov 2026 17:50:50 GMT</lastBuildDate><atom:link href="https://www.codeaintel.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Tom]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[CodeAIntel@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[CodeAIntel@substack.com]]></itunes:email><itunes:name><![CDATA[Tom]]></itunes:name></itunes:owner><itunes:author><![CDATA[Tom]]></itunes:author><googleplay:owner><![CDATA[CodeAIntel@substack.com]]></googleplay:owner><googleplay:email><![CDATA[CodeAIntel@substack.com]]></googleplay:email><googleplay:author><![CDATA[Tom]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Markdown Tool Asked the Cloud for Its Credentials]]></title><description><![CDATA[Four npm packages posed as MCP documentation helpers while their code moved from cloud reconnaissance to temporary-credential retrieval and an unpinned install path.]]></description><link>https://www.codeaintel.com/p/the-markdown-tool-asked-the-cloud</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-markdown-tool-asked-the-cloud</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Tue, 03 Nov 2026 16:01:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZjqW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Four npm packages posed as MCP documentation helpers while their code moved from cloud reconnaissance to temporary-credential retrieval and an unpinned install path.</em></p><p>Four npm packages advertised Markdown help and exposed a very different purpose once they ran. GitHub published malware advisories for the four <strong>@ifasn</strong> packages at 21:31 UTC on November 2. Across them, the advisory database lists 25 affected versions and no patched release.</p><p>The packages were named <strong>md-doc-mcp</strong>, <strong>mdd-doc-mcp</strong>, <strong>mmd-doc-mcp</strong> and <strong>mmdd-doc-mcp</strong>. That slight spelling drift matters: a reviewer scanning a dependency list could read them as iterations of the same harmless documentation utility. The code described by GitHub instead probed cloud instance metadata, reported environmental signals outside the host and retrieved temporary Alibaba Cloud RAM credentials in two variants, one of which also probed high-value local secret paths.</p><p><strong>An MCP integration is executable software placed beside the files, tokens and cloud roles that make an agent useful. Its permission boundary is the process that launches it.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZjqW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZjqW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZjqW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3235874,&quot;alt&quot;:&quot;A small metal desktop tool reaches into a cloud-shaped case for a brass key beside blank paper.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223292144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A small metal desktop tool reaches into a cloud-shaped case for a brass key beside blank paper." title="A small metal desktop tool reaches into a cloud-shaped case for a brass key beside blank paper." srcset="https://substackcdn.com/image/fetch/$s_!ZjqW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ZjqW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47ab8be4-8314-409b-a22c-0ec8d4d9ff28_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>GitHub&#8217;s November 2 advisories say the four packages presented themselves as Markdown MCP tools while their runtime behavior reached into cloud metadata and, in two variants, the temporary-credential path for an attached Alibaba Cloud role.</em></p><h2>Four spellings, one trust decision</h2><p>The family did not repeat one behavior across four names. The variants formed a progression.</p><p>GitHub says <strong>md-doc-mcp</strong> ran on import or startup, checked metadata services associated with AWS, Google Cloud, Azure and Alibaba Cloud, then sent the returned signals to a hard-coded external destination. The returned pattern could identify the cloud environment.</p><p>The <strong>mmd-doc-mcp</strong> variant also probed multiple cloud metadata services and reported per-endpoint status codes externally. Its advisory says the pattern could reveal both the cloud provider and whether an attached IAM or RAM role was present. The package framed the activity as health checking and configuration synchronization, but the advisory notes that the queried locations were cloud metadata and credential services, unrelated to Markdown processing.</p><p>The other two variants went further. GitHub says <strong>mdd-doc-mcp</strong> requested an Alibaba metadata token, reached the RAM temporary-credential location and wrote the response locally. Its package manifest also pulled a dependency from an unencrypted, unpinned remote archive with no integrity check, creating an install-time path for whatever code that remote host returned.</p><p>The <strong>mmdd-doc-mcp</strong> advisory describes the same temporary-credential retrieval plus scripts that enumerated familiar locations for an SSH private key, an environment file and a Kubernetes service-account token. Those are categories of identity material that can move an intrusion from one developer tool into cloud, source-control or cluster access.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XIn4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XIn4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!XIn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3741061,&quot;alt&quot;:&quot;Four blank document folders cast different cloud, keyhole, coil and rectangular shadows on an inspection desk.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223292144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Four blank document folders cast different cloud, keyhole, coil and rectangular shadows on an inspection desk." title="Four blank document folders cast different cloud, keyhole, coil and rectangular shadows on an inspection desk." srcset="https://substackcdn.com/image/fetch/$s_!XIn4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!XIn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7514032c-2d1c-4df6-ab40-c646a8a00836_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The four package names varied only by repeated m and d characters, while GitHub documented materially different behaviors across the family: environment discovery, external reporting, credential retrieval and an unpinned installation dependency.</em></p><h2>Three gates failed before the helper reached a role</h2><p>The first gate is <strong>installation provenance</strong>. The mdd variant did not bind every installed byte to the registry package and its lockfile. Its remote archive could change independently of the named release.</p><p>The second gate is <strong>startup behavior</strong>. GitHub says code in this family ran on import, startup or installation. A user did not have to invoke a suspicious feature after the helper was loaded.</p><p>The third gate is <strong>runtime reach</strong>. An IDE, local agent client, build runner or cloud development machine determines which metadata services, files and outbound destinations the process can reach. On a laptop that can include source repositories and environment variables. In CI it can include deployment tokens. On a cloud instance or cluster it can include a workload role or mounted service account.</p><p>Reviewing an MCP integration therefore requires three answers: Were all installed bytes integrity-bound? What executes automatically? Which metadata, filesystem and egress paths are available at runtime?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!urK-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!urK-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!urK-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!urK-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!urK-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!urK-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3200216,&quot;alt&quot;:&quot;A small brass instrument sits under glass beside a key, sealed sleeve, empty vial and blank badge.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223292144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A small brass instrument sits under glass beside a key, sealed sleeve, empty vial and blank badge." title="A small brass instrument sits under glass beside a key, sealed sleeve, empty vial and blank badge." srcset="https://substackcdn.com/image/fetch/$s_!urK-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!urK-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!urK-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!urK-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec945aa8-fb8f-4c75-8633-c89e71f4ed29_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The runner&#8217;s runtime context determines the reachable identity material. The advisories describe cloud-role discovery and probing of local secret paths; they do not establish that every listed artifact existed on every installer.</em></p><h2>Three stages the public artifacts establish</h2><p>The public evidence supports several distinct stages.</p><p>First, the packages were published under four closely related names and presented as Markdown or documentation tools. Second, the advisory descriptions identify code that executed on import, startup or installation. Third, that code performed cloud reconnaissance, contacted an external destination, accessed temporary credentials or probed local secret paths, depending on the variant.</p><p>GitHub and OpenSSF do not publish installation totals, a victim count or a confirmed downstream account compromise. The four advisories also belong to one linked evidence chain: GitHub credits OpenSSF, whose records carry analysis attributed to Amazon Inspector. Four records should not be counted as four independent observations.</p><p>That boundary still leaves a serious incident-response problem. Temporary credentials can expire while the authority that issued them remains usable. A package that read a local response may also have run beside longer-lived secrets. An unpinned remote dependency creates a wider uncertainty because the installed bytes could change independently of the named package version.</p><p><strong>The response should reconstruct the three gates, not rely on the package description.</strong></p><h2>Close each gate before the runner returns</h2><p>Start with provenance: establish where any of the four names appeared, then search lockfiles, package manifests, dependency inventories, build logs and cached artifacts. Preserve the relevant package and logs without executing it again.</p><p>Next, reconstruct startup and runtime reach:</p><ul><li><p>Isolate the developer machine, runner or workload that loaded the package and preserve its process and network evidence.</p></li><li><p>Review cloud audit records for metadata-backed role use and unexpected API activity from the affected time window.</p></li><li><p>Revoke active sessions and replace reachable SSH, environment, service-account and deployment secrets from a trusted system.</p></li><li><p>For the variant with the remote unpinned archive, rebuild the execution environment from a known-good image rather than trusting an in-place cleanup.</p></li><li><p>Check outbound telemetry for the destination and behavior published in the advisories, while keeping raw credentials and sensitive logs out of tickets and chat.</p></li></ul><p>Rotation order should follow privilege and reach. A production role or cluster identity deserves attention before a low-impact development token, but the inventory must decide that priority. Rotating every credential without preserving evidence can destroy the timeline while leaving the original execution path intact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8YGk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8YGk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!8YGk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3245431,&quot;alt&quot;:&quot;A suspect document holder is isolated under glass beside a clean metal appliance and newly cut blank keys.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223292144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A suspect document holder is isolated under glass beside a clean metal appliance and newly cut blank keys." title="A suspect document holder is isolated under glass beside a clean metal appliance and newly cut blank keys." srcset="https://substackcdn.com/image/fetch/$s_!8YGk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8YGk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F927b3a4e-b4fe-4de9-9595-2e4c5cdbeaab_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The response isolates the runner, preserves evidence, replaces reachable identity material and rebuilds any environment that installed the unpinned remote dependency.</em></p><h2>Agent tools need an execution contract</h2><p>The durable control is an explicit contract across provenance, startup behavior and runtime reach.</p><p>Run agent tools and MCP servers in disposable, least-privileged environments. Keep production credentials out of interactive agent sessions. Restrict access to cloud metadata unless the workload explicitly needs it. Limit outbound traffic from build and agent runners. Pin dependencies with integrity metadata, review package provenance and approve MCP servers as executable integrations rather than treating them as content plugins.</p><p>Logging should preserve the join between package version, execution host, workload identity and outbound connection. Without that join, responders can find the dependency but cannot determine what authority surrounded it.</p><p>The four <strong>@ifasn</strong> advisories are useful because they expose all three gates in concrete code behavior. A tool that promised tables of contents reached for cloud identity. The next control is to require pinned bytes, bounded startup behavior and a runtime with no unnecessary metadata, files or egress.</p><h2>Sources</h2><ul><li><p><a href="https://github.com/advisories/GHSA-4h5p-w547-9qmv">GitHub Advisory Database: malicious code in @ifasn/mmdd-doc-mcp</a></p></li><li><p><a href="https://github.com/advisories/GHSA-f826-46h5-5rcq">GitHub Advisory Database: malicious code in @ifasn/mmd-doc-mcp</a></p></li><li><p><a href="https://github.com/advisories/GHSA-4q9j-4rv8-jp32">GitHub Advisory Database: malicious code in @ifasn/mdd-doc-mcp</a></p></li><li><p><a href="https://github.com/advisories/GHSA-rvw8-22w3-342v">GitHub Advisory Database: malicious code in @ifasn/md-doc-mcp</a></p></li><li><p><a href="https://github.com/ossf/malicious-packages/commit/cdd9fc0c28c93bd1d9e884a6f8f56001207a6773">OpenSSF malicious-packages records for the four advisories</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[BTCPay Calls for Clean Rebuilds After Hot-Wallet Drains Hit Older Servers]]></title><description><![CDATA[The affected line is version 2.4.1 and earlier. Recovery means a fresh host and wallet, plus replacement of potentially exposed secrets the old server could access.]]></description><link>https://www.codeaintel.com/p/btcpay-calls-for-clean-rebuilds-after</link><guid isPermaLink="false">https://www.codeaintel.com/p/btcpay-calls-for-clean-rebuilds-after</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Mon, 02 Nov 2026 16:50:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lv5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>The affected line is version 2.4.1 and earlier. Recovery means a fresh host and wallet, plus replacement of potentially exposed secrets the old server could access.</em></p><p>BTCPay says attackers stole Bitcoin and Litecoin from hot wallets on servers running version 2.4.1 or earlier. Its November 2 advisory says the attackers used a different method to exploit the vulnerability fixed in 2.4.2 on August 7.</p><p>The project&#8217;s timeline begins with a reported wallet drain at 13:46 UTC on November 1. BTCPay received its first theft report by email at 20:56. During November 1 it contacted hosting providers, and at 22:25 it warned operators to shut down while it investigated. The next day it identified the affected version boundary.</p><p>BTCPay says it has seen no impact from these attacks on servers that were already running 2.4.2 or later when the warning went out. It has not established when exploitation began.</p><p>That produces two different operational states. A server running old code needs the fix. A server that may already have been entered needs its trust rebuilt, including each potentially exposed credential.</p><p><strong>The August release contained the fix. The November response has to account for access already gained on the machine and the secrets that server could reach.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lv5d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lv5d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lv5d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2293555,&quot;alt&quot;:&quot;An unbranded server is physically connected to a brass key in an open metal drawer.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223186322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An unbranded server is physically connected to a brass key in an open metal drawer." title="An unbranded server is physically connected to a brass key in an open metal drawer." srcset="https://substackcdn.com/image/fetch/$s_!Lv5d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Lv5d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122a45a2-5720-408d-baca-71ec78bdaab4_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>BTCPay defines the affected hot wallets as wallets whose spending keys were held on the server; its investigation tied the theft reports to version 2.4.1 and earlier.</em></p><h2>The same vulnerability arrived by another method</h2><p>BTCPay released version 2.4.2 on August 7 to fix a vulnerability that had been under active exploitation. The project&#8217;s current advisory now connects the November theft reports to that same vulnerability, exploited through a different method on servers that remained at 2.4.1 or earlier.</p><p>The public advisory does not name a CVE, publish the new exploitation path or attribute an actor. It does establish a usable boundary for response: which versions were in the affected set, when the project received its first reports and what operators of those systems should do next.</p><p>That boundary is broader than a check for a missing update. BTCPay recommends that every operator of a 2.4.1-or-older server move to a fresh machine with a new wallet, even when no theft has been noticed and even when the old machine was updated after the November 1 warning.</p><p>The project also accepts a share of the communication failure. It says it wishes it had done more after the August advisory to reach users who were still running older versions. That matters in a self-hosted fleet: a release can be available centrally while the exposed copies remain distributed across systems the project does not control.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x6jy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x6jy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!x6jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2247796,&quot;alt&quot;:&quot;A clean sealed server stands beside a weathered open server, with a broken seal and key between them.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223186322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A clean sealed server stands beside a weathered open server, with a broken seal and key between them." title="A clean sealed server stands beside a weathered open server, with a broken seal and key between them." srcset="https://substackcdn.com/image/fetch/$s_!x6jy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x6jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9c975f-1b4e-448c-89c6-a17c599e391e_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>BTCPay says updating alone cannot remove access an attacker may already have gained; operators of 2.4.1 and earlier are being told to provision a fresh server rather than restore the old machine wholesale.</em></p><h2>The server held the authority to spend</h2><p>A hot wallet keeps the keys needed to spend funds on the server itself. That arrangement supports fast, automated payment operations, but it also places application control and transaction authority inside the same failure domain.</p><p>Once an intruder gains enough control of the server, the path to the wallet is short. The application is already designed to use the signing material without a separate offline ceremony. <strong>A server-held spending key turns administrative compromise into a custody event.</strong></p><p>BTCPay says wallets whose spending keys were held off the server, including hardware wallets, were unaffected by these thefts. The distinction is architectural, not cosmetic. An online service that can observe payments but cannot sign them denies a server intruder the final transaction authority.</p><p>Off-server keys do not make an old application server safe. BTCPay still recommends rebuilding affected-version servers because the host may contain other secrets or provide a path to connected services. Key placement limits one consequence; it does not restore trust to the machine.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aA-H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aA-H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!aA-H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2849828,&quot;alt&quot;:&quot;A brass key sits under glass in an always-on metal appliance beside a closed black case.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223186322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A brass key sits under glass in an always-on metal appliance beside a closed black case." title="A brass key sits under glass in an always-on metal appliance beside a closed black case." srcset="https://substackcdn.com/image/fetch/$s_!aA-H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!aA-H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0f1b75a-f4e8-4a33-a1a2-d508722a3883_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>BTCPay says the reported thefts did not affect wallets whose spending keys were kept off-server; keeping the signer outside the application host separates server access from spending authority.</em></p><h2>Four states define the incident</h2><p>The available evidence becomes clearer when the response is divided into four states:</p><ul><li><p><strong>Exposure:</strong> The server was running 2.4.1 or earlier during the relevant period. That places it inside the version range BTCPay identified.</p></li><li><p><strong>Access:</strong> An intruder gained control of the application or host. Administrator records, host logs, account changes and other forensic evidence establish this state.</p></li><li><p><strong>Authority:</strong> Spending keys or other high-impact secrets were available to the compromised server. Wallet configuration and the server&#8217;s connected credentials define that reach.</p></li><li><p><strong>Impact:</strong> An unauthorized transaction or another confirmed action occurred. Wallet history, application events and business records establish what moved and when.</p></li></ul><p>Version inventory identifies exposure; it cannot reconstruct the remaining three states by itself. An unchanged wallet balance does not rule out earlier access. BTCPay therefore tells operators of affected versions to rebuild even when they have not observed a theft.</p><p>The project published destination addresses reported in incidents, while warning that some activity at those addresses predates the theft reports. It has not established the full transaction timeline or which transfers belong to this incident. Address balances are therefore unsuitable as a confirmed aggregate loss figure.</p><p>This is why the response needs both records: wallet history shows financial impact, while server and application evidence show how far access traveled.</p><h2>Recovery starts from a clean host</h2><p>Installing a fixed release is prevention for a server that remains trustworthy. BTCPay&#8217;s recovery guidance treats suspected prior access as a separate problem because an update cannot remove an account, copied key or persistence mechanism created before the patch.</p><p>For operators of 2.4.1 or earlier, the project&#8217;s sequence is concrete:</p><ul><li><p><strong>New wallet:</strong> Create it from a trusted device with a new seed, then sweep any remaining hot-wallet funds into it.</p></li><li><p><strong>Old host:</strong> Take the server offline and preserve relevant logs and transaction records.</p></li><li><p><strong>Clean server:</strong> Provision a fresh virtual machine, install the latest supported BTCPay Server from trusted sources and avoid restoring the old machine wholesale.</p></li><li><p><strong>Reachable credentials:</strong> From a trusted device, revoke and replace credentials the old server could access, including hosting, SSH, application, API and Lightning credentials.</p></li></ul><p>Logs can contain secrets. BTCPay tells affected users to remove credentials before sharing material and never send seed phrases, private keys or passwords. Preserve the original evidence privately; provide only the scoped, sanitized material needed for external investigation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DrXR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DrXR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!DrXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2329167,&quot;alt&quot;:&quot;An old server is isolated beside a sealed replacement, a protected key, a network cable and blank evidence sheets.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223186322?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An old server is isolated beside a sealed replacement, a protected key, a network cable and blank evidence sheets." title="An old server is isolated beside a sealed replacement, a protected key, a network cable and blank evidence sheets." srcset="https://substackcdn.com/image/fetch/$s_!DrXR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!DrXR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f3c25f0-b7be-4cb3-8e24-ede1b0e283fc_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>BTCPay&#8217;s recovery sequence is to preserve evidence, create a new wallet, provision a clean server without restoring the old host wholesale, and replace potentially exposed credentials the old host could access from a trusted device.</em></p><h2>Patch reach is part of custody</h2><p>The hardest control in this incident is not writing the patch. It is knowing whether every exposed self-hosted instance received it before an attacker arrived.</p><p>An operator accepting money through an internet-facing server needs a current inventory of deployed versions, an alerting path that distinguishes security releases from ordinary maintenance and confirmation that the update actually completed. The project needs a way to make urgent notices difficult to miss without taking ownership away from the person running the server.</p><p>Wallet design belongs in that same control set. If daily operations require a hot wallet, bound its balance to the amount the service genuinely needs, monitor withdrawals against business events and keep long-term funds behind a signer outside the application host. Prepare the clean-rebuild and secret-rotation procedure before a public warning turns it into an emergency.</p><p>For self-hosted payment infrastructure, <strong>patch delivery, key placement and clean-host recovery are one control surface.</strong> A security release protects only the instances it reaches; a rebuilt machine and a new wallet address the access that may already exist.</p><h2>Sources</h2><ul><li><p><a href="https://blog.btcpayserver.org/btcpay-server-security-incident-2-4-1-and-earlier/">BTCPay Server: Security Incident Affecting BTCPay Server 2.4.1 and Earlier</a></p></li><li><p><a href="https://x.com/BtcpayServer/status/2117020340815819262">BTCPay Server: initial November 1 shutdown warning</a></p></li><li><p><a href="https://x.com/BtcpayServer/status/2117106238123123008">BTCPay Server: November 2 affected-version update</a></p></li><li><p><a href="https://blog.btcpayserver.org/security-advisory-btcpay-server-2-4-2/">BTCPay Server: August 2.4.2 security advisory</a></p></li><li><p><a href="https://www.bleepingcomputer.com/news/security/btcpay-server-warns-of-hot-wallet-thefts-targeting-outdated-instances/">BleepingComputer: BTCPay Server warns of hot-wallet thefts targeting outdated instances</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[VOLTA Turns Stolen Access Into a Victim Priority List]]></title><description><![CDATA[Cisco Talos found one Windows stealer sample that collects credentials, enriches them with account context, and can ask a language model which access deserves an operator's attention first.]]></description><link>https://www.codeaintel.com/p/volta-turns-stolen-access-into-a</link><guid isPermaLink="false">https://www.codeaintel.com/p/volta-turns-stolen-access-into-a</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sun, 01 Nov 2026 14:49:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Am4A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Cisco Talos found one Windows stealer sample that collects credentials, enriches them with account context, and can ask a language model which access deserves an operator&#8217;s attention first.</em></p><p>Cisco Talos documented a Windows infostealer that can do something more consequential than empty a browser profile: it can organize stolen access into a ranked dossier for the operator.</p><p>The malware calls itself VOLTA-AUTODOXER. Talos published its analysis on October 31 after reverse-engineering a self-deleting sample first seen on October 11. The sample targets browser credentials, cookies, payment-card data, cryptocurrency wallets, communications sessions, Microsoft OAuth tokens, SSH material, cloud configuration files, Wi-Fi profiles and screenshots.</p><p>Then the collection changes shape. VOLTA can reuse stolen sessions to add context, assemble a structured identity report and submit that report for an optional language-model assessment. The output is designed to rank assets by likely value and evaluate the victim&#8217;s security habits.</p><p><strong>The theft happens before that model call. The new capability is prioritization: helping an operator decide which access deserves attention first.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Am4A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Am4A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Am4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74015523-a39b-475e-976a-8b674945fdd8_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2116680,&quot;alt&quot;:&quot;A stolen pile of anonymous keys, cards and wallet objects is mechanically sorted into a brightly lit shortlist.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223004056?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A stolen pile of anonymous keys, cards and wallet objects is mechanically sorted into a brightly lit shortlist." title="A stolen pile of anonymous keys, cards and wallet objects is mechanically sorted into a brightly lit shortlist." srcset="https://substackcdn.com/image/fetch/$s_!Am4A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Am4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74015523-a39b-475e-976a-8b674945fdd8_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos found that VOLTA collects credentials, session material and cryptocurrency-wallet data, then can send a structured evidence bundle to a language model for asset prioritization.</em></p><h2>The theft now arrives with a queue</h2><p>Infostealer response often begins with a list: passwords, cookies, tokens, wallets and files that may have left a device. VOLTA adds an operator-facing layer above that inventory.</p><p>According to Talos, the sample can use captured sessions to query accounts for additional context. Examples in the analysis include searching email receipts to corroborate an address, retrieving food-delivery history, enriching a communications profile and valuing a gaming inventory. It then writes the combined material into a local identity report.</p><p>If the optional model configuration is present, that report is serialized and sent through OpenRouter. The response is stored in a separate analysis file and can leave the device with the identity dossier. The sample contains a default model plus two fallbacks, with logic that moves to another model when the response appears to refuse the request.</p><p>That design addresses a criminal bottleneck. A large collection still has to be examined, connected to identities and sorted for possible value. VOLTA&#8217;s model stage is built to reduce that human review.</p><p>My assessment is straightforward: <strong>automated victim prioritization can shorten the distance between indiscriminate collection and selective abuse.</strong> A cloud administrator&#8217;s token, a developer&#8217;s SSH key and a consumer account session may sit in the same stolen archive. The dossier tells the operator where to look first.</p><p>Talos analyzed one sample. Its report provides no victim count, delivery method, measured campaign, named operator or confirmed successful model response. Those limits cap any claim about prevalence; the artifact establishes the collection and prioritization logic present in the sample.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LklA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LklA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LklA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LklA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LklA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!LklA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2044950,&quot;alt&quot;:&quot;One translucent access key illuminates an anonymous trail of household objects on a dark kitchen table.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223004056?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="One translucent access key illuminates an anonymous trail of household objects on a dark kitchen table." title="One translucent access key illuminates an anonymous trail of household objects on a dark kitchen table." srcset="https://substackcdn.com/image/fetch/$s_!LklA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LklA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LklA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LklA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5966fdd9-5cc1-41cf-84ad-26e043c2ed52_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos reports that VOLTA can reuse stolen authenticated sessions to search purchase receipts, pull food-delivery history and enrich account profiles before its optional model-assisted assessment.</em></p><h2>Four stages, four different questions</h2><p>VOLTA is a useful reminder that an infostealer incident contains several evidence states. Collapsing them into one word&#8212;<em>compromised</em>&#8212;makes response slower and attribution weaker.</p><ul><li><p><strong>Infection:</strong> Did the executable run on a particular device? Talos provides sample details and a first-seen date, but no delivery chain or population of confirmed infected systems.</p></li><li><p><strong>Artifact:</strong> What did the malware attempt to collect, and what local evidence remains? The sample contains defined collection routines, creates reports and archives, and may leave a timestamped debug log.</p></li><li><p><strong>Access:</strong> Which captured credentials, sessions, tokens or keys were valid when collected? Capability analysis cannot answer that for a specific organization. Identity-provider, cloud, source-control, VPN and endpoint records have to establish it.</p></li><li><p><strong>Impact:</strong> Was any access successfully used, and what action followed? That requires downstream evidence such as sign-in records, token use, repository activity, mailbox access, wallet movement or administrative changes.</p></li></ul><p>An observed stealer artifact establishes neither a current credential nor a successful account intrusion by itself. A valid token still has to be connected to observed use. Observed use still has to be tied to an identity and an impact. Actor attribution sits beyond all three and needs its own evidence.</p><p>This sequence gives defenders a repeatable investigation order: <strong>prove execution, scope collection, test access and trace impact.</strong></p><h2>The missing executable can still leave the scope</h2><p>VOLTA is designed to delete itself, which creates an uncomfortable operational problem. A responder can arrive after the visible payload is gone and mistake absence for containment.</p><p>Talos points to a timestamped VOLTA harvest log in the user&#8217;s application-data directory that may record what the malware collected and whether the model call succeeded. That file could become the most important scoping artifact on the endpoint. Preserve it privately with the surrounding endpoint timeline; its contents could themselves be sensitive.</p><p>Other observable material includes the identity and analysis files, staged archives, unusual access to browser stores, and Chrome launched in headless mode by a process with no approved reason to do so. Talos recommends restricting which applications may launch Chrome that way because the sample uses the path while attempting to bypass Chrome&#8217;s App-Bound Encryption.</p><p>A clean malware scan cannot reverse data collection. Reimaging a device cannot revoke a session already copied from it. Password rotation cannot invalidate every OAuth token, SSH key, cloud credential or application session.</p><p>That is why the debug log and endpoint telemetry matter: they can turn a generic rotation order into a defensible validation queue.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ahSE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ahSE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ahSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2788071,&quot;alt&quot;:&quot;A black object turns to ash while a carbon sheet underneath preserves its otherwise lost trace.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223004056?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A black object turns to ash while a carbon sheet underneath preserves its otherwise lost trace." title="A black object turns to ash while a carbon sheet underneath preserves its otherwise lost trace." srcset="https://substackcdn.com/image/fetch/$s_!ahSE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ahSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ae395b3-f3d3-453e-9710-2171006a5737_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos says the main executable may delete itself while a local timestamped harvest log can record what was collected and whether the language-model call succeeded.</em></p><h2>What defenders should invalidate first</h2><p>Contain the suspected device and preserve the execution evidence before cleanup. From a separate trusted system, revoke potentially exposed sessions and tokens, then change affected passwords. Treat SSH keys, cloud configuration material and OAuth access as separate credential classes with separate revocation paths.</p><p>For each exposed identity, rank validation by <strong>privilege, freshness, reach and revocation lag</strong>. Then answer:</p><ul><li><p><strong>Accepted applications:</strong> Which services accepted its sessions or tokens?</p></li><li><p><strong>Reach:</strong> Which cloud projects, repositories, mailboxes or administrative planes were inside its authorization boundary?</p></li><li><p><strong>Observed use:</strong> Did any service record activity from a new device, network or automation client?</p></li><li><p><strong>Persistence changes:</strong> Were recovery methods, passkeys, forwarding rules, access keys or trusted applications changed?</p></li><li><p><strong>Unused artifacts:</strong> Which credentials were present on disk but never used after the suspected execution time?</p></li></ul><p>Cryptocurrency recovery needs its own boundary. If a seed phrase existed in plaintext on the affected device, Talos advises treating that wallet as exposed and moving assets to a new wallet created from trusted equipment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bL0f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bL0f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!bL0f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2340261,&quot;alt&quot;:&quot;A gloved hand separates multiple anonymous access objects connected to one compromised computer by a red thread.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/223004056?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A gloved hand separates multiple anonymous access objects connected to one compromised computer by a red thread." title="A gloved hand separates multiple anonymous access objects connected to one compromised computer by a red thread." srcset="https://substackcdn.com/image/fetch/$s_!bL0f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!bL0f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a546c21-3200-4d18-b05d-c96e6c237c9b_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos identifies the surviving local log as a scoping artifact</em></p><p>VOLTA&#8217;s model integration will attract attention because it invokes commercial AI services. The defender&#8217;s urgent work begins earlier. <strong>The device may already have surrendered the access material before the model evaluates any of it.</strong> Response therefore has to invalidate both the stolen artifacts and the paths those artifacts could open.</p><p>When a stealer starts sorting its own haul, defenders should rank their validation queue by the harm each artifact could unlock and the time required to revoke it.</p><h2>Sources</h2><ul><li><p><a href="https://blog.talosintelligence.com/appraisal-by-ai-model-driven-victim-prioritization-in-the-volta-infostealer/">Cisco Talos: Appraisal by AI&#8212;Model-driven victim prioritization in the VOLTA infostealer</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[NIK C2 Turns Credential Theft Into a Live Operator Loop]]></title><description><![CDATA[Talos found in-wild Windows implants and active infrastructure combining browser theft, surveillance, internal pivoting, operator-directed AI calls and screen-lock extortion.]]></description><link>https://www.codeaintel.com/p/nik-c2-turns-credential-theft-into</link><guid isPermaLink="false">https://www.codeaintel.com/p/nik-c2-turns-credential-theft-into</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sat, 31 Oct 2026 21:51:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wkRR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Talos found in-wild Windows implants and active infrastructure combining browser theft, surveillance, internal pivoting, operator-directed AI calls and screen-lock extortion.</em></p><p>Cisco Talos analyzed a Go-based Windows implant that can collect browser data, wallet material, Wi-Fi passwords and live keystrokes, then return the results through the same control session that supports hidden desktop access, proxying and lateral movement.</p><p><strong>The stealer is one command set inside a broader operator workspace.</strong> Collection, remote control and visible extortion can remain close together while the endpoint is online.</p><p>For defenders, the response window begins at execution&#8212;not when a credential later appears in a fraud alert. A host producing a stealer detection may still be an interactive access point and an internal relay.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wkRR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wkRR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wkRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2583451,&quot;alt&quot;:&quot;A handmade patch panel connects a key, sealed envelope, round tin and keyboard key in one continuous loop.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A handmade patch panel connects a key, sealed envelope, round tin and keyboard key in one continuous loop." title="A handmade patch panel connects a key, sealed envelope, round tin and keyboard key in one continuous loop." srcset="https://substackcdn.com/image/fetch/$s_!wkRR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!wkRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e66047c-f83f-434e-b755-9c6d6bf446be_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos documented an implant whose command surface combines credential collection, surveillance, remote control, lateral movement and an operator-directed AI request handler. Concept art by CodeAIntel.</em></p><h2>The samples and server establish an operating framework</h2><p>Talos found multiple NIK C2 implant versions in the wild. The researchers also observed active infrastructure whose certificate name matched strings embedded in the malware. That convergence supported a moderate-confidence assessment that NIK C2 was functional rather than a proof of concept.</p><p>The implant exposes more than 52 commands. It uses a persistent WebSocket connection over TLS and maintains an independent HTTP polling path. Both carry encrypted command results, giving the operator a second route when the primary channel is unavailable.</p><p>The public evidence starts after code execution. Talos did not identify a delivery campaign, a named victim or the operator behind the framework. It also did not report verified credential replay, account access, an organizational breach or a successful extortion event. What it did establish is a working collection and control architecture tied to observed samples and matching infrastructure.</p><p><em>That architecture changes how a stealer alert should be triaged.</em></p><h2>The artifact list maps the access radius</h2><p>NIK C2 targets the stores that let users and applications move through digital systems with minimal friction.</p><p>Talos found routines for Chromium and Firefox login databases, cookies, autofill data, bookmarks and profile files. The implant also seeks Discord tokens, saved Wi-Fi credentials, desktop and browser-extension wallet material, and files whose names suggest recovery phrases, private keys or other secrets. Its keylogger can stream individual keystrokes to the operator panel while retaining a bounded buffer for later retrieval.</p><p>For Chromium-based browsers, the code stages database files with the local state material needed to unwrap the browser key through Windows DPAPI. It can attempt decryption on the host or send the encrypted databases for later processing. That makes browser-database access, DPAPI use and unusual archive creation part of the same behavioral story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tLrI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tLrI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tLrI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2587509,&quot;alt&quot;:&quot;A transparent organizer holds a key, wax cookie seal, wallet envelope, Wi-Fi charm and keyboard ribbon while a tube gathers paper fragments into a sealed canister.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A transparent organizer holds a key, wax cookie seal, wallet envelope, Wi-Fi charm and keyboard ribbon while a tube gathers paper fragments into a sealed canister." title="A transparent organizer holds a key, wax cookie seal, wallet envelope, Wi-Fi charm and keyboard ribbon while a tube gathers paper fragments into a sealed canister." srcset="https://substackcdn.com/image/fetch/$s_!tLrI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!tLrI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b9c16bb-d705-477a-a4a8-f4d78b54d7f0_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The analyzed stealer modules target browser databases, saved passwords, cookies, profiles, messaging tokens, Wi-Fi credentials and wallet material, according to Talos. Concept art by CodeAIntel.</em></p><p>A collected artifact still has a server-side state. A password may have changed; a cookie may be expired or revoked; a token may carry limited privileges. Identity logs, session records and administrative actions determine whether exposed material became usable access. Containment should proceed while that validation is underway.</p><h2>Two return paths keep the session moving</h2><p>Completed collection results are wrapped, encrypted and returned over the live WebSocket channel. If that connection is unavailable, the implant can use HTTP instead. The same C2 architecture carries screenshots, command output, files and proxy traffic.</p><p>A defender who blocks one visible route without isolating the endpoint may leave the alternate path, persistence or remote-control functions intact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s6OJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s6OJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!s6OJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2726181,&quot;alt&quot;:&quot;Two parallel mail tubes carry sealed envelopes around a break in one route and converge on the same archival receiving box.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two parallel mail tubes carry sealed envelopes around a break in one route and converge on the same archival receiving box." title="Two parallel mail tubes carry sealed envelopes around a break in one route and converge on the same archival receiving box." srcset="https://substackcdn.com/image/fetch/$s_!s6OJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!s6OJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F512ae9c1-3278-4d9f-aa66-0724ab8a27c1_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Talos found a persistent WebSocket channel with an HTTP fallback for command results and collected data. Concept art by CodeAIntel.</em></p><p>The host can also become infrastructure for the operator. Talos documented hidden virtual desktop control, screen and audio capture, clipboard monitoring, RDP interaction, an embedded proxy and reverse tunnels. Those functions can support internal access without requiring a separate implant for every step.</p><h2>The AI command is operator-directed</h2><p>NIK C2 contains a handler that can send an operator-supplied prompt to OpenAI&#8217;s Chat Completions API from the infected machine. The operator supplies the prompt and may choose the model and API key. If no key is supplied, the code checks the host&#8217;s OpenAI API key environment variable.</p><p>The response is parsed locally and sent back through C2. <strong>The operator supplies the prompt and may choose the model and API key, keeping the client inside a human-directed command path.</strong> Its advantage is proximity: harvested material, a model request and the next operator command can share one active session and one endpoint identity.</p><p>If a configured host key exists, the fallback creates an additional exposure and accounting question. Talos described the code path; the report did not establish that a victim key was present, used successfully or billed.</p><h2>Remote control can end in a screen lock</h2><p>The same implant includes a configurable extortion module. Talos found code that builds an HTML payment screen, adds logon persistence and repeatedly relaunches the window. The module locks the interface; it does not encrypt the user&#8217;s files.</p><p>NIK C2 also surveys the boot environment and stages a placeholder file for a possible bootkit. The analyzed component is preparation logic, not a functioning deployed bootkit. Keeping those capabilities separate matters because the evidence supports a screen-lock path today while the bootkit path remains incomplete.</p><h2>Isolate the session and invalidate each artifact</h2><p>A NIK C2 investigation should run as linked host, identity and network workstreams.</p><p>On the endpoint, isolate the system and preserve volatile evidence where practical. Hunt for process masquerading, persistence, browser-database and DPAPI access, keylogging or screen-capture behavior, unexpected WebSocket activity, rapid HTTP polling and archive creation. Talos published <a href="https://github.com/Cisco-Talos/IOCs/tree/main/2026/10">public indicators</a>, but behavior matters because infrastructure and builds can change.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N3QE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N3QE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!N3QE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2518794,&quot;alt&quot;:&quot;A closed laptop sits under a clear forensic bell jar with its cable clamped, while a key, cookie seal, wallet clasp and keyboard ribbon are preserved separately.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A closed laptop sits under a clear forensic bell jar with its cable clamped, while a key, cookie seal, wallet clasp and keyboard ribbon are preserved separately." title="A closed laptop sits under a clear forensic bell jar with its cable clamped, while a key, cookie seal, wallet clasp and keyboard ribbon are preserved separately." srcset="https://substackcdn.com/image/fetch/$s_!N3QE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!N3QE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0dc09d-2db9-4351-9a83-ae4893808dd8_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The response has to stop the live control session, preserve host evidence and review each exposed identity artifact through its own revocation path. Concept art by CodeAIntel.</em></p><p>Across identity systems, revoke active sessions and rotate credentials or API keys that were accessible from the host. Review sign-ins, token use and administrative changes from the suspected execution window forward. Browser cookies, messaging tokens, Wi-Fi secrets and wallet material have different recovery paths; one password reset cannot close all of them.</p><p>Then test the endpoint&#8217;s network role. Proxy traffic, RDP activity, new tunnels and access to internal services can show whether it became a relay. A clean account review cannot clear a host that still offers interactive control, and host isolation cannot invalidate artifacts already collected.</p><p>My assessment is direct: <strong>infostealer response now has to assume the operator may still be inside the loop.</strong> Containment, identity invalidation and lateral-movement review should begin together.</p><p>&#8212; Tom</p><h2>Sources</h2><ul><li><p><a href="https://blog.talosintelligence.com/nik-c2-new-ai-enabled-framework/">Cisco Talos &#8212; NIK C2: The new AI-enabled command-and-control framework</a></p></li><li><p><a href="https://github.com/Cisco-Talos/IOCs/tree/main/2026/10">Cisco Talos &#8212; public indicators repository</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[One Privileged Identity Outside Containment Kept the Intrusion Alive]]></title><description><![CDATA[Two Teams-to-AD CS intrusions show how certificate-backed access and response exclusions can preserve a route from one remote session to domain-wide impact.]]></description><link>https://www.codeaintel.com/p/one-privileged-identity-outside-containment</link><guid isPermaLink="false">https://www.codeaintel.com/p/one-privileged-identity-outside-containment</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sat, 31 Oct 2026 21:50:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Odsd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Two Teams-to-AD CS intrusions show how certificate-backed access and response exclusions can preserve a route from one remote session to domain-wide impact.</em></p><p>Microsoft Security Research documented two human-operated intrusions that began with help-desk impersonation in Teams and reached Active Directory Certificate Services. In the first case, automated disruption restricted covered identities and blocked more than 1,000 SMB file-access attempts plus additional logons. One privileged identity was excluded from that containment. It remained usable and later supported file-server access and data exfiltration.</p><p>That sequence deserves the center of the incident report. <strong>Containment is complete only when every device, identity, issued certificate and active ticket has a verified disposition.</strong> An exception is an open route until a named responder closes it through a compensating action.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Odsd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Odsd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Odsd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2628062,&quot;alt&quot;:&quot;Brass identity tags sit inside a red containment cord while one tag remains outside and connected to a records box beside a black telephone.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222892780?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Brass identity tags sit inside a red containment cord while one tag remains outside and connected to a records box beside a black telephone." title="Brass identity tags sit inside a red containment cord while one tag remains outside and connected to a records box beside a black telephone." srcset="https://substackcdn.com/image/fetch/$s_!Odsd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Odsd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69afbc3a-86fc-4f3c-9108-73bac535f78f_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Microsoft documented an intrusion in which covered identities were restricted while one excluded privileged account remained available and later supported data exfiltration.</em></p><h2>The remote session was the handoff</h2><p>Both intrusions started with Teams messages and calls from actors impersonating IT or help-desk staff. Users were persuaded to grant interactive remote access, primarily through Quick Assist. The contact channel supplied credibility; the user-approved session supplied control.</p><p>The operators then placed an archive on the workstation and launched attacker-controlled code through portable Python, Bun or Java runtimes staged in user-writable locations. From there they collected host and network information and assessed the environment&#8217;s certificate infrastructure.</p><p>The report attributes entry to social engineering and insecure or overly permissive AD CS configurations. It does not attribute the activity to a named group, identify the victims or establish that every contacted user was compromised.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pXcs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pXcs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!pXcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2287269,&quot;alt&quot;:&quot;An off-hook office telephone drives a mechanical remote-control lever toward three portable tool cases and a certificate press beyond an open door.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222892780?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An off-hook office telephone drives a mechanical remote-control lever toward three portable tool cases and a certificate press beyond an open door." title="An off-hook office telephone drives a mechanical remote-control lever toward three portable tool cases and a certificate press beyond an open door." srcset="https://substackcdn.com/image/fetch/$s_!pXcs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!pXcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48687069-d834-4403-a289-65d0a6d42bbf_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Both observed cases moved from help-desk impersonation and user-approved remote access into portable runtime execution and AD CS discovery.</em></p><h2>Certificate issuance expanded the foothold</h2><p>The first environment exposed an ESC1 path: an authentication-capable certificate template allowed a requester to supply identity information while broad enrollment rights and weak issuance controls made privileged impersonation possible.</p><p>During the first wave, the actors targeted three users, compromised one workstation and obtained certificates for three highly privileged accounts. About 90 minutes later they launched a larger wave against 16 users, compromised another workstation and obtained certificates for eight more privileged accounts.</p><p>An authentication certificate changes the response scope. Resetting the password on the first user account or rebuilding the first workstation does not revoke an issued certificate. Revoking that certificate also does not retroactively invalidate Kerberos tickets already issued from it. The password, certificate and ticket therefore require separate containment evidence.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qdwU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qdwU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!qdwU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31898573-e356-446d-8d84-a010a8118f0b_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2601136,&quot;alt&quot;:&quot;A brass certificate seal on an identity card remains tied to a locked door while a paper password strip beside it has been cut and replaced.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222892780?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A brass certificate seal on an identity card remains tied to a locked door while a paper password strip beside it has been cut and replaced." title="A brass certificate seal on an identity card remains tied to a locked door while a paper password strip beside it has been cut and replaced." srcset="https://substackcdn.com/image/fetch/$s_!qdwU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qdwU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31898573-e356-446d-8d84-a010a8118f0b_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Microsoft observed two certificate-abuse paths that produced authentication material for privileged identities and, in the second case, a domain-controller account.</em></p><h2>One exclusion preserved the route to the data</h2><p>Microsoft&#8217;s account separates two important facts in the first case. A privileged certificate was used for DCSync within seconds while containment was taking effect. Separately, the privileged account excluded from automated response remained available after other identities were restricted.</p><p>That excluded account later supported network and remote-interactive logons, access to a file server and execution of a renamed copy of Rclone. The tool copied data from a file share to an external SFTP destination. Microsoft did not disclose the victim, the full volume removed or an actor identity.</p><p>The operational failure is measurable: a known privileged route sat outside the response boundary without an immediately verified manual substitute. <strong>Every exclusion should create an incident task, an owner, a deadline and a required proof of closure.</strong> If the account cannot be disabled, the team still has to constrain its logon paths, isolate reachable systems, revoke issued authentication material and watch the route continuously.</p><h2>The second case closed the active execution point</h2><p>The second environment did not present the same ESC1 template. The operator instead used PetitPotam to coerce a domain controller into authenticating with NTLM, relayed that authentication to AD CS Web Enrollment and obtained a certificate for the domain-controller account. The certificate was then used for PKINIT to obtain a domain-controller ticket-granting ticket.</p><p>After certificate-relay alerts, the customer isolated the associated workstation. Microsoft observed no further progression after that action.</p><p>The comparison is useful because the initial pattern was similar while the response coverage differed. In the first case, a privileged identity remained outside containment and the intrusion continued to data theft. In the second, the active workstation was removed from the path and no additional progression was observed. The public evidence does not establish every factor that produced those outcomes, but it shows exactly where responders need to demand closure evidence.</p><h2>Build a certificate-aware containment ledger</h2><p>I would put one ledger on the incident bridge and require a row for every affected or potentially affected device, identity, certificate and ticket. Each row should record:</p><ul><li><p>the owner, privilege and systems the object can reach;</p></li><li><p>the evidence that links it to the intrusion;</p></li><li><p>the issued certificate&#8217;s serial number, thumbprint, template, requester and issuance time;</p></li><li><p>whether automated containment covers it or an exclusion applies;</p></li><li><p>the manual compensating action, accountable responder and deadline;</p></li><li><p>the authoritative log that will prove the route was closed.</p></li></ul><p>The investigation then has to connect evidence across Teams, remote-access timing, endpoint process lineage, directory activity, certificate requests, Web Enrollment logs and Kerberos authentication. A domain-controller identity authenticating to enrollment infrastructure from a different workstation is a particularly strong pivot for the ESC8 path described in the second case.</p><p>Containment should proceed as separate, testable actions: isolate the active execution point; restrict every compromised identity; revoke unauthorized certificates and publish updated revocation information; review existing ticket-granting and service tickets; terminate affected sessions; and verify that relying systems have consumed the revocation state.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EDiN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EDiN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!EDiN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2614179,&quot;alt&quot;:&quot;A laptop, brass identity key, embossed certificate and paper tickets are secured in separate physical closures linked by one dark-blue cord.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222892780?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A laptop, brass identity key, embossed certificate and paper tickets are secured in separate physical closures linked by one dark-blue cord." title="A laptop, brass identity key, embossed certificate and paper tickets are secured in separate physical closures linked by one dark-blue cord." srcset="https://substackcdn.com/image/fetch/$s_!EDiN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!EDiN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd363626-857f-45fd-87ce-5af2d8927cc2_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Device isolation, identity restriction, certificate revocation and ticket review are separate containment actions with separate evidence requirements.</em></p><p>The preventive work is equally concrete. Review authentication templates for requester-supplied identities, broad enrollment and weak issuance controls. Inventory Web Enrollment endpoints, remove those that are unnecessary, require HTTPS and Extended Protection for Authentication, and reduce NTLM where the environment can support it. Preserve certificate-authority and Kerberos audit data long enough to reconstruct issuance and use.</p><p><strong>The most dangerous response gap can be the object everyone already knows is excluded.</strong> Put that exception on the same timeline as the attack and keep it there until the compensating control is visible in evidence.</p><h2>Sources</h2><ul><li><p><a href="https://www.microsoft.com/en-us/security/blog/2026/10/30/help-desk-impersonation-ad-cs-abuse-investigating-esc1-esc8-intrusion-paths/">Microsoft Security Research: From help desk impersonation to AD CS abuse</a></p></li><li><p><a href="https://support.microsoft.com/help/5005413">Microsoft Support: Mitigating NTLM relay attacks on Active Directory Certificate Services</a></p></li><li><p><a href="https://learn.microsoft.com/en-us/defender-for-identity/security-posture-assessments/certificates">Microsoft Learn: AD CS security posture assessments</a></p></li><li><p><a href="https://attack.mitre.org/techniques/T1649/">MITRE ATT&amp;CK: Steal or Forge Authentication Certificates</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Fifty Authorizations Targeted a Binance-Linked Wallet. One Nonce Landed.]]></title><description><![CDATA[A type-4 Ethereum transaction carried 50 EIP-7702 authorizations. One matched the live nonce before billions in exchange-linked assets moved.]]></description><link>https://www.codeaintel.com/p/keydrift-put-the-wiretap-inside-the</link><guid isPermaLink="false">https://www.codeaintel.com/p/keydrift-put-the-wiretap-inside-the</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Thu, 29 Oct 2026 14:45:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d51312e6-fa2c-422a-b9f4-58d7a7b7de10_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>A type-4 Ethereum transaction sprayed a live nonce window before billions in exchange-linked assets moved. Binance has paused withdrawals for security checks.</em></p><p>At 20:20:59 UTC on Wednesday, a type-4 Ethereum transaction carried 50 consecutive EIP-7702 authorizations for a wallet Etherscan labels Binance 14. Three minutes and 24 seconds later, the same relayer called that wallet. The successful receipt recorded 63 ERC-20 Transfer events.</p><p>That sequence is the clearest public artifact in a security event whose scope is still moving. The <a href="https://etherscan.io/tx/0xad99264d5532ae0dd04b2004eebda05f25657e70dacb764f7ac8d4ccd051298b">authorization transaction</a> targeted one delegate contract across nonces 18,914,775 through 18,914,824. <a href="https://x.com/blockaid_/status/2115924317888495661">Blockaid reported</a> that only one authorization matched the wallet&#8217;s live nonce.</p><p>The <a href="https://etherscan.io/tx/0x53bd38b816c23e74134786c29a8c18d792777998a3b9326047b583100e88e2f3">call that followed</a> was followed by further exchange-linked movements: exactly <a href="https://etherscan.io/tx/0x51f263fa50966df6bbd7f8c6e6e99e3791c94444f7c4343b2fef1ee2d62fd39f">28,005.6 ETH</a> entered the same receiving address 24 seconds later; <a href="https://etherscan.io/tx/0x551d7961652e6d9835b11988908adf86ebe480badb4ce2d7d52193b2b1b02c76">195,460 ETH</a> left that address at 20:38:47 UTC; and <a href="https://etherscan.io/tx/0xdc102dd89dded5a83f1008906883ffb7c81ff3b7d7965d8c7277d170b5e17481">780 million USDC</a> arrived from a wallet Etherscan labels Binance Hot Wallet 34 at 20:41:23 UTC.</p><p><a href="https://x.com/binance/status/2115918888429133902">Binance said</a> it was investigating a potential security issue and that user funds were completely safe. In a <a href="https://x.com/binance/status/2115935002139742437">later update</a>, the exchange said withdrawals would resume as soon as the security issue was fully resolved and repeated: &#8220;User funds remain safe.&#8221; Binance has not published a loss total, affected-wallet inventory, entry path, or root-cause finding.</p><p>For threat-intelligence and incident-response teams, signed authorization is credential-equivalent evidence: it shows trusted authority reached the chain, while the source of that authority still has to be established.</p><p>The blockchain records what executed. Binance&#8217;s signing records must now explain who authorized it.</p><p><em>This developing account is current through Binance&#8217;s 6:33 p.m. Eastern update on October 29.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9aTk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9aTk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9aTk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3221111,&quot;alt&quot;:&quot;A scarred brass lockbox is surrounded by dozens of blank brass wafers, while one wafer aligns with its slot and pulls a red thread through the mechanism.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222610556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A scarred brass lockbox is surrounded by dozens of blank brass wafers, while one wafer aligns with its slot and pulls a red thread through the mechanism." title="A scarred brass lockbox is surrounded by dozens of blank brass wafers, while one wafer aligns with its slot and pulls a red thread through the mechanism." srcset="https://substackcdn.com/image/fetch/$s_!9aTk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!9aTk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F768d2809-b935-4733-a4ab-7bcecba62941_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The authorization transaction carried 50 consecutive nonce tuples targeting one delegate; three minutes and 24 seconds later, the same relayer called the wallet and 63 token-transfer events followed.</em></p><h2>One authorization changed what the wallet could execute</h2><p>EIP-7702 gives an externally owned Ethereum account a way to execute delegated smart-contract code without changing its address.</p><p>The <a href="https://eips.ethereum.org/EIPS/eip-7702">EIP-7702 specification</a> defines a type-4 transaction containing one or more signed authorization tuples. Each tuple binds a chain, a delegate address, and an account nonce. If the signature and nonce are valid, Ethereum writes a delegation indicator into the authorizing account&#8217;s code field. Later calls to that account execute the delegate contract in the account&#8217;s context.</p><p>The feature was designed for functions such as batching, sponsored transactions, and programmable wallet controls. The authority it carries is broad. The specification says a wallet should closely audit delegated code because the authorization itself does not impose fine-grained permissions.</p><p>The Binance 14 account&#8217;s code field was observed as 0xef0100 followed by the address of delegate contract 0x63e842b054bd624a465454d533c33f573e9c6fae . That is the EIP-7702 indicator for delegated execution. <a href="https://x.com/blockaid_/status/2115917919603306651">Blockaid&#8217;s contract analysis</a> described an unverified sweeper whose hard-coded operator could transfer ERC-20 tokens and ETH.</p><p><a href="https://x.com/0xQuit/status/2115913970075009439">0xQuit&#8217;s contemporaneous analysis</a> traced the same delegate deployment, authorization transaction, wallet call, and transfers. The public artifacts establish delegation, execution, and asset movement. They do not show how the authorization signatures were produced or obtained.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aD0n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aD0n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!aD0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2261569,&quot;alt&quot;:&quot;A worn brass key remains on torn paper while a chain transfers its movement into a separate black mechanical box across a red thread.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222610556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A worn brass key remains on torn paper while a chain transfers its movement into a separate black mechanical box across a red thread." title="A worn brass key remains on torn paper while a chain transfers its movement into a separate black mechanical box across a red thread." srcset="https://substackcdn.com/image/fetch/$s_!aD0n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!aD0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50fd8a1e-cd55-460a-81ab-bd28c4ccf4f0_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The successful authorization set Binance 14&#8217;s code field to the EIP-7702 indicator for contract 0x63e8&#8230;6fae ; later calls executed that delegate in the wallet&#8217;s context.</em></p><h2>The 50-nonce window is the investigation lead</h2><p>An EIP-7702 authorization is accepted only when its signed nonce equals the account&#8217;s current nonce at inclusion. Invalid tuples are skipped while processing continues.</p><p>The transaction carried 50 authorizations targeting the same delegate, with consecutive nonces descending from 18,914,824 to 18,914,775. A high-volume custody wallet can advance its nonce while an authorization waits to be submitted. Supplying separately signed tuples across a window gives the submitter multiple chances to intersect the live state.</p><p>That pattern turns the authorization-production process into the central incident-response scope. Each tuple has a recoverable signer and a defined payload. Binance should be able to determine when those 50 authorizations were created, which signing system handled them, what policy approved them, and whether the delegate address was visible to the human or automated control making the decision.</p><p>The 49 failed tuples matter alongside the successful one. They can be correlated against HSM, MPC, custody-platform, API, and policy-engine records. Internal creation timestamps associated with the tuple payloads, together with their approval context, may show whether one signer produced a prepared range, whether an automated workflow was abused, or whether authorization material escaped from another part of the custody system.</p><p><strong>A successful tuple establishes that valid signer authority reached the chain.</strong> The public evidence cannot distinguish a compromised signing endpoint, an abused approval path, exposed signer material, a malicious insider, or another failure inside the custody workflow.</p><h2>Separate the relayer from the signer</h2><p>EIP-7702 separates the account granting authority from the account paying to submit the type-4 transaction.</p><p>The relayer carries the signed authorization to Ethereum. The protocol recovers the authorizing account from the tuple&#8217;s signature, checks its nonce, and applies the delegation if the tuple is valid. The sender and signer therefore occupy different evidentiary roles.</p><p>0xQuit traced the relayer&#8217;s gas funding to Tornado Cash withdrawals. That establishes transaction provenance for the submitting account. It does not identify the operator, explain how the signatures were acquired, or attribute the incident.</p><p>0xQuit assessed that the operator may have obtained signed authorizations rather than direct control of the wallet&#8217;s private key. The chain cannot settle that question. Producing a valid authorization still requires access to signer authority somewhere in the workflow, and Binance has not disclosed whether key material, an MPC process, an API, an approval system, or an operator endpoint was involved.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Pd4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Pd4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Pd4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2759986,&quot;alt&quot;:&quot;A sealed packet travels on a small metal courier cart toward a distant lockbox while a red thread remains tied to the packet&#8217;s separate origin.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222610556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A sealed packet travels on a small metal courier cart toward a distant lockbox while a red thread remains tied to the packet&#8217;s separate origin." title="A sealed packet travels on a small metal courier cart toward a distant lockbox while a red thread remains tied to the packet&#8217;s separate origin." srcset="https://substackcdn.com/image/fetch/$s_!2Pd4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!2Pd4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01a7e0c2-5b2b-4a95-bcd2-8722fc1fead9_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>EIP-7702 allows a third-party relayer to submit a signed authorization; Ethereum validates the authorizing signer and nonce separately from the transaction sender.</em></p><h2>Three ledgers define the financial scope</h2><p>Early social reports, including posts from <a href="https://x.com/WatcherGuru/status/2115922259739349132">WatcherGuru</a>, <a href="https://x.com/BitcoinNewsCom/status/2115922453784342791">BitcoinNews.com</a>, and <a href="https://x.com/inno_sol/status/2115925029074661703">inno</a>, described totals reaching $5.6 billion across Ethereum, Bitcoin, Tron, stablecoins, and other assets. Those posts are useful leads, but the figure is not a reconciled loss total.</p><p>The financial scope needs three separate ledgers.</p><p>The first is gross outflow: which assets left which exchange-controlled wallets, on which chains, by what mechanism, and at what cutoff time. Blockaid&#8217;s <a href="https://x.com/blockaid_/status/2115914335512150480">initial analysis</a> identified movements on Ethereum, Arbitrum, and Avalanche. 0xQuit published a token-by-token Ethereum inventory. The viral totals combine overlapping address sets, time windows, prices, and chains, so they cannot safely be added together.</p><p>The second is containment. A <a href="https://whale-alert.io/transaction/ethereum/0x7baba482077843514d9c72bac0110ba0916b0814288a72917e2c3bb27a9d8659">Tether freeze transaction</a> recorded 971,149,299 USDT frozen at 21:01:35 UTC. CZ separately thanked Tether and Circle for freezes, but <a href="https://x.com/cz_binance/status/2115915423174853077">he explicitly said</a> he no longer manages Binance. His expectation that user funds will be covered is a shareholder view, not Binance&#8217;s root-cause finding or a corporate reimbursement commitment.</p><p>The third is net loss after frozen, returned, recovered, operational, or internally controlled transfers are reconciled. Binance has not published that accounting. Asset movement, issuer freezing, recovery, and customer impact are distinct states.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tdGy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tdGy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tdGy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3199449,&quot;alt&quot;:&quot;Three dented trays hold scattered brass discs, frosted discs under a clear plate, and a small unresolved cluster, connected by one red thread.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/222610556?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Three dented trays hold scattered brass discs, frosted discs under a clear plate, and a small unresolved cluster, connected by one red thread." title="Three dented trays hold scattered brass discs, frosted discs under a clear plate, and a small unresolved cluster, connected by one red thread." srcset="https://substackcdn.com/image/fetch/$s_!tdGy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!tdGy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F754edb8f-22e0-4be5-911a-e4e002975807_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Gross outflow, issuer-frozen balances, and net loss are separate accounting states; Binance has not published a wallet-by-wallet reconciliation.</em></p><h2>Binance needs an authorization ledger</h2><p>The immediate investigation should preserve every artifact involved in creating and accepting the EIP-7702 authorizations:</p><ul><li><p>The complete authorization tuples, recovered signers, nonces, chain identifiers, and delegated-code targets.</p></li><li><p>HSM, MPC, custody-platform, API, and policy-engine logs covering every attempted nonce in the range.</p></li><li><p>The human or automated approval context displayed when the delegate address was authorized.</p></li><li><p>Code-review, allowlist, deployment, and verification records for the delegate contract.</p></li><li><p>Authentication events, endpoint telemetry, session history, and privilege changes for systems allowed to request signatures.</p></li><li><p>The timeline connecting contract deployment, relayer funding, type-4 inclusion, delegation, wallet calls, and downstream transfers.</p></li><li><p>Every other exchange-controlled account carrying an active EIP-7702 delegation or an authorization to an unfamiliar code target.</p></li></ul><p>Containment should separate three questions: which accounts have delegated code, which signing paths can authorize new delegations, and which assets remain movable. Recovery accounting belongs in its own ledger so frozen or returned funds are not confused with the original outflow.</p><p>Every custody provider should run the same inventory. An externally owned account can retain the same address and keys while gaining executable behavior through delegated code. Monitoring only outbound transfers misses the earlier state change.</p><p>Controls should alert when a protected account acquires or changes a delegation indicator, when its code target falls outside an approved set, and when a type-4 transaction contains unusual authorization volume or a broad nonce range. Signing interfaces should expose the delegate target, verification state, code authority, account scope, and approval policy in language an operator can act on.</p><p>Binance&#8217;s next technical statement should name the affected wallets, reconcile the transfers, explain how the authorization signatures were produced, and identify which signer and delegation controls failed.</p><p><strong>One nonce was enough to change what the wallet could do. The signing trail must show who gave it that authority.</strong></p><h2>Sources</h2><ul><li><p><a href="https://x.com/binance/status/2115918888429133902">Binance: initial security-issue statement</a></p></li><li><p><a href="https://x.com/binance/status/2115935002139742437">Binance: withdrawals paused during security checks</a></p></li><li><p><a href="https://eips.ethereum.org/EIPS/eip-7702">Ethereum: EIP-7702 specification</a></p></li><li><p><a href="https://etherscan.io/tx/0xad99264d5532ae0dd04b2004eebda05f25657e70dacb764f7ac8d4ccd051298b">Etherscan: EIP-7702 authorization transaction</a></p></li><li><p><a href="https://etherscan.io/tx/0x53bd38b816c23e74134786c29a8c18d792777998a3b9326047b583100e88e2f3">Etherscan: Binance 14 call and transfer events</a></p></li><li><p><a href="https://etherscan.io/tx/0x51f263fa50966df6bbd7f8c6e6e99e3791c94444f7c4343b2fef1ee2d62fd39f">Etherscan: 28,005.6 ETH transfer</a></p></li><li><p><a href="https://etherscan.io/tx/0x551d7961652e6d9835b11988908adf86ebe480badb4ce2d7d52193b2b1b02c76">Etherscan: 195,460 ETH onward transfer</a></p></li><li><p><a href="https://etherscan.io/tx/0xdc102dd89dded5a83f1008906883ffb7c81ff3b7d7965d8c7277d170b5e17481">Etherscan: 780 million USDC transfer</a></p></li><li><p><a href="https://x.com/blockaid_/status/2115914335512150480">Blockaid: initial cross-chain analysis</a></p></li><li><p><a href="https://x.com/blockaid_/status/2115917919603306651">Blockaid: delegated sweeper analysis</a></p></li><li><p><a href="https://x.com/blockaid_/status/2115924317888495661">Blockaid: 50-authorization nonce-window analysis</a></p></li><li><p><a href="https://x.com/0xQuit/status/2115913970075009439">0xQuit: delegation and transfer sequence</a></p></li><li><p><a href="https://whale-alert.io/transaction/ethereum/0x7baba482077843514d9c72bac0110ba0916b0814288a72917e2c3bb27a9d8659">Whale Alert: 971,149,299 USDT freeze record</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Quest Says It Believes Patient Data Was Accessed; Quanum Clients Given Paper Fallbacks]]></title><description><![CDATA[Quest says patient records were accessed through Quanum LSM. Which identity, session, API, or application path reached them&#8212;and what happened next?]]></description><link>https://www.codeaintel.com/p/patient-data-accessed-in-quest-diagnostics</link><guid isPermaLink="false">https://www.codeaintel.com/p/patient-data-accessed-in-quest-diagnostics</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Fri, 23 Oct 2026 11:49:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b57b8d36-ee0c-4b0a-9e36-7d64e16f7d20_1672x940.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Quest Diagnostics says it believes an unauthorized party accessed certain patient records in Quanum Lab Services Manager, which certain clients use to place test orders and receive or look up results.</p><p>Quest then paused access to the system.</p><p>Quest&#8217;s fallback instructions directed Quanum LSM clients to Quanum eLabs, paper requisitions, fax, phone, and eFax while the company investigated the unauthorized access. Quest&#8217;s FAQ asked whether PHI or PII was part of that access. It answered <strong>yes</strong>, while saying it was still determining the specific data affected.</p><p><strong>Quest paired the Quanum LSM pause with fallback instructions for orders and results.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LKZ8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LKZ8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LKZ8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1746559,&quot;alt&quot;:&quot;An after-hours clinical office with a dark central terminal, blank paper requisitions spilling across the workspace, and phone and fax equipment still lit in the background.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221762510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An after-hours clinical office with a dark central terminal, blank paper requisitions spilling across the workspace, and phone and fax equipment still lit in the background." title="An after-hours clinical office with a dark central terminal, blank paper requisitions spilling across the workspace, and phone and fax equipment still lit in the background." srcset="https://substackcdn.com/image/fetch/$s_!LKZ8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LKZ8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc05b88ab-8c5b-4a87-bf5f-9f0fc93e6521_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p></p><h2>Unauthorized access reached the order-and-results layer</h2><p>Quest learned of the unauthorized access on October 21, according to its <a href="https://www.sec.gov/Archives/edgar/data/1022079/000094787126000941/ss6979200_8k.htm">Form 8-K</a>. It activated its incident-response process, brought in external cybersecurity specialists, and notified federal law enforcement.</p><p>The system at the center of the incident handles both sides of a laboratory transaction. Quest describes Quanum LSM as a place where practices can order tests, track orders, schedule specimen pickups, and review patient results. Its companion alert service delivers real-time Priority and STAT notifications.</p><p>Quest says it believes it stopped the unauthorized access after pausing access to Quanum LSM. It also temporarily paused Essential Insights and LabHQ as a precaution, while stating that no data was accessed in those systems. Providers connected through direct laboratory-information-system interfaces or electronic medical records could continue ordering through those routes.</p><p>The Motley Fool&#8217;s <a href="https://www.fool.com/earnings/call-transcripts/2026/10/22/quest-diagnostics-dgx-q3-2026-earnings-call-transcript/">transcript of Thursday&#8217;s earnings call</a> quotes CFO Sam Samad as saying Quest learned of unauthorized access to &#8220;a test ordering system used by certain clients who do not use an EMR.&#8221; Quest&#8217;s <a href="https://www.sec.gov/Archives/edgar/data/1022079/000094787126000941/ss6979200_8k.htm">Form 8-K</a> separately identifies the affected system as Quanum LSM.</p><h2>Quest&#8217;s notice laid out the fallback</h2><p>Quest told customers it anticipated restoring full-service functionality &#8220;as soon as&#8221; October 23.</p><p>Quest&#8217;s incident notice, timestamped noon ET on October 22, said Quanum LSM access was paused and that the system was redirecting clients to eLabs.</p><p>Operationally, returning to LSM would create a second task for provider offices: deciding when to switch back and reconciling work handled through temporary channels.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lHRq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lHRq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!lHRq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2010550,&quot;alt&quot;:&quot;An overhead clinical-office desk with one dark terminal surrounded by an active laptop, blank paper requisitions, a phone, a fax machine, and an unbroken electronic cable.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221762510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An overhead clinical-office desk with one dark terminal surrounded by an active laptop, blank paper requisitions, a phone, a fax machine, and an unbroken electronic cable." title="An overhead clinical-office desk with one dark terminal surrounded by an active laptop, blank paper requisitions, a phone, a fax machine, and an unbroken electronic cable." srcset="https://substackcdn.com/image/fetch/$s_!lHRq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lHRq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F245e31e0-cac2-4d58-82e1-e32c05398db2_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p></p><p>Quest&#8217;s notice directed LSM clients to use paper requisitions or eLabs for orders, and phone or eFax for results. The company said the same credentials could be used for eLabs. Every switch between channels creates a practical question for a provider office: where was the order placed, where did the specimen go, where will the result return, and who is watching for it?</p><h2>Paper changes the incident inside the clinic</h2><p>Quest&#8217;s product material lists test ordering, status tracking, pickup scheduling, results access, and Priority or STAT alert acknowledgement as Quanum functions.</p><p>Paper preserves continuity, but it moves coordination back onto people. A requisition must stay with the right specimen. Faxed orders need confirmation. Results arriving through eLabs, phone, or eFax need to reach the right clinician. Orders started in LSM before the pause may need to be reconciled against orders recreated through another route.</p><p><em>The immediate risk is a broken handoff between an order, a specimen, and its result.</em></p><p>That is where providers should concentrate. The incident response is happening at Quest, but the continuity work is distributed across offices that relied on Quanum LSM.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x4Uw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x4Uw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!x4Uw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1934914,&quot;alt&quot;:&quot;One dark computer monitor wrapped in a red incident ribbon between two active workstations, with a blank order form, specimen tube, and anonymized result page in the foreground.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221762510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="One dark computer monitor wrapped in a red incident ribbon between two active workstations, with a blank order form, specimen tube, and anonymized result page in the foreground." title="One dark computer monitor wrapped in a red incident ribbon between two active workstations, with a blank order form, specimen tube, and anonymized result page in the foreground." srcset="https://substackcdn.com/image/fetch/$s_!x4Uw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x4Uw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F137698d2-8181-4509-b4b0-f2daf972712c_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>Quest also told investors in 2025 that it was standardizing and digitizing its order-to-cash workflow, with electronic order rate tracked as a productivity measure. The fallback cut directly across that strategy. Quest said the incident had not materially disrupted its overall business operations, but individual client offices could still absorb manual work.</p><h2>Quest&#8217;s scale puts pressure on the next update</h2><p>Quest says it serves half of U.S. physicians and hospitals and one in three American adults each year. Neither Quest&#8217;s October 22 notice nor its Form 8-K states how many clients use Quanum LSM or how many patient records it believes were accessed.</p><p>That scale explains the attention without supplying an incident-specific count. The current facts already carry weight: Quest reported unauthorized access to Quanum LSM, said it believes certain patient records were accessed, paused access to the system, and directed Quanum clients to contingency options.</p><p>Quest is still identifying the affected patients and providers and says it will make notifications required by law. The next disclosure should provide the access window, affected record fields, patient and provider counts, entry path, restoration time, and whether the activity involved targeted searches or larger-scale retrieval.</p><p>Those details will determine the response. Contact information calls for one set of protections. Clinical data, insurance identifiers, credentials, or a combined record can create very different fraud, privacy, and security exposure.</p><h2>Providers now own the reconciliation</h2><p>Organizations that used Quanum LSM can act before individual notices arrive.</p><ul><li><p>Record when each location lost access and when it changed to eLabs, paper, fax, phone, or eFax.</p></li><li><p>Reconcile orders submitted before the pause with orders recreated through another channel.</p></li><li><p>Confirm that every collected specimen has one valid requisition and a visible status.</p></li><li><p>Track where each result returned and document receipt of every Priority or STAT result.</p></li><li><p>Preserve local authentication records, browser logs, support tickets, and Quest communications under existing policy.</p></li><li><p>Warn staff that attackers may use the incident as a pretext for credential, billing, or patient-result phishing.</p></li></ul><p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EO1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EO1l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!EO1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1881307,&quot;alt&quot;:&quot;A blank lab requisition, sealed specimen tube, and anonymized result sheet connected by two visibly broken amber light traces.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221762510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A blank lab requisition, sealed specimen tube, and anonymized result sheet connected by two visibly broken amber light traces." title="A blank lab requisition, sealed specimen tube, and anonymized result sheet connected by two visibly broken amber light traces." srcset="https://substackcdn.com/image/fetch/$s_!EO1l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!EO1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcdc4be9-e9f9-4843-85d9-f528de9636a2_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>Security and privacy teams should also map which users and departments relied on Quanum. That inventory gives the organization a comparison point for any future Quest notifications or scope updates.</p><p>Quest has disclosed enough for providers to move now. Build the local timeline, reconcile every order and result that crossed the interruption, and watch the next company disclosure for the scope of the patient-record access Quest says it believes occurred.</p><h2>Sources</h2><ul><li><p><a href="https://www.sec.gov/Archives/edgar/data/1022079/000094787126000941/ss6979200_8k.htm">Quest Diagnostics Form 8-K: unauthorized access to Quanum LSM</a></p></li><li><p><a href="https://www.questdiagnostics.com/links/quanum-notice">Quest Diagnostics: Quanum incident notice and client FAQ</a></p></li><li><p><a href="https://www.questdiagnostics.com/healthcare-professionals/lab-tools-it-systems/quanum-lab-services-manager">Quest Diagnostics: Quanum Lab Services Manager</a></p></li><li><p><a href="https://www.questdiagnostics.com/links/test/am/specimen-handling/laboratory-general">Quest Diagnostics: specimen and requisition requirements</a></p></li><li><p><a href="https://www.sec.gov/Archives/edgar/data/1022079/000094787125000321/ss4596431_ex9903.htm">Quest Diagnostics 2025 Investor Day: order-to-cash digitization</a></p></li><li><p><a href="https://www.fool.com/earnings/call-transcripts/2026/10/22/quest-diagnostics-dgx-q3-2026-earnings-call-transcript/">Quest Diagnostics Q3 2026 earnings-call transcript</a></p></li><li><p><a href="https://newsroom.questdiagnostics.com/2026-09-16-Nine-in-10-Voters-Express-Concern-That-Medicare-Lab-Payment-Cuts-Will-Harm-Patient-Access-to-Diagnostic-Lab-Testing,-Finds-National-Survey-from-Quest-Diagnostics">Quest Diagnostics: company reach statement</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Installer Worked. Armorsteal Was the Other Payload.]]></title><description><![CDATA[A poisoned search result paired a real package manager with a Python stealer chain. Success was camouflage, not proof.]]></description><link>https://www.codeaintel.com/p/the-installer-worked-armorsteal-was</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-installer-worked-armorsteal-was</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Fri, 23 Oct 2026 10:01:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f0io!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The dangerous part of a fake installer is not always that the expected software fails. Sometimes it works.</p><p>In research published October 22, <a href="https://www.zscaler.com/blogs/security-research/seo-poisoning-campaign-delivers-new-armorsteal-malware">Zscaler ThreatLabz</a> described a September campaign that pushed a Python-based stealer through sites impersonating Chocolatey and Microsoft Activation Scripts. A visitor found an install command through search, pasted it into PowerShell and received Armorsteal. On the fake Chocolatey path, the script also ran the legitimate installer.</p><p>The package manager appeared to install correctly. The copied command set in motion a chain that installed components for remote access, surveillance and credential collection.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f0io!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f0io!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!f0io!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!f0io!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!f0io!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f0io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1420774,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221751261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f0io!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!f0io!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!f0io!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!f0io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d769c7-bb36-4bca-a0c6-f303f994ac81_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Zscaler&#8217;s report is detailed enough to establish the delivery chain, malware components, persistence artifacts, collection targets and changing infrastructure. It does <em>not</em> publish a victim count, prove that every targeted artifact was successfully stolen, document any later account takeover or identify the operator. Those boundaries matter as much as the malware details.</p><h2>Success was part of the delivery</h2><p>The campaign used two lookalike sites aimed at people searching for Windows installation instructions. One impersonated Chocolatey with a misspelled domain. The other impersonated the Massgrave project. Both presented a PowerShell command for the visitor to run.</p><p>This was not a drive-by compromise. The user supplied execution, and the command asked for elevated privileges. The installer then hid the PowerShell window, placed a Python runtime and protected scripts under a Windows-looking directory, and created scheduled tasks for persistence.</p><p>On the Chocolatey path, the legitimate installer ran too. That detail is operationally important: a person who receives the tool they wanted has less reason to question the source or open a support ticket.</p><p><em>An application launching successfully proves function. It does not prove origin.</em></p><p>The control failure therefore began before endpoint execution. Search ranking became an informal software catalog; a lookalike page became the documentation; a copied command became the installer; and success became the user&#8217;s confirmation signal.</p><h2>One command created three lines of control</h2><p>Zscaler separated Armorsteal into three main components.</p><p>The remote-access module profiled the host, contacted command infrastructure and fetched tasks. It verified those tasks with an embedded RSA public key before running them, tracked task versions and could update itself. The operator had built a managed control channel, not a one-shot script.</p><p>The surveillance module recorded active window titles and keystrokes, watched the clipboard and could take screenshots when selected terms appeared. The stealer module targeted browser cookies and saved passwords, password-manager data, Discord tokens, cryptocurrency material, SSH keys and Steam session data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8uot!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8uot!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8uot!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8uot!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8uot!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!8uot!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1440034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221751261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8uot!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8uot!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8uot!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8uot!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc287304b-5168-4f50-b2b9-598dbf63e549_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>That combination expands the response problem. A browser cookie and an SSH private key are both targeted artifacts, but they do not create the same access path, live for the same length of time or require the same invalidation step. A generic instruction to &#8220;reset the password&#8221; cannot close every route this collector was designed to open.</p><h2>Collection capability is not proof of downstream access</h2><p>The public evidence supports a clear chain through delivery, execution and targeted collection. It stops before proven downstream access.</p><p><strong>Confirmed by the published analysis:</strong> the lure sites delivered the installer; the installer established persistence; the examined components could collect named artifact classes; and the malware had upload paths for stolen data.</p><p><strong>Not established by the report:</strong> how many people executed the command, whether a particular cookie or key was current, whether an operator replayed it, whether an identity was verified, whether an organization was breached, or who controlled the campaign.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!98an!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!98an!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!98an!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!98an!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!98an!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!98an!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1196005,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221751261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!98an!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!98an!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!98an!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!98an!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd05fcb8f-e157-4390-8e8e-57bfc7f48340_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>That distinction prevents both understatement and exaggeration. An infected device is sufficient reason to contain and investigate. It is not sufficient evidence to announce a cloud breach. A stealer capable of taking SSH keys creates a credible server-access risk. It does not prove that a server login occurred.</p><p>My first question would not be, &#8220;Which malware family is this?&#8221; It would be: <strong>which artifact classes existed on this host, and what could each one reach?</strong></p><p>That produces a better investigation map: host evidence on one side; browser, identity, developer, communications and financial artifacts in the middle; authentication and transaction records on the other. The job is to test each possible bridge, not assume that all of them were crossed.</p><h2>The infrastructure moved while the evidence stayed useful</h2><p>Zscaler linked the two lure paths through shared malware components, infrastructure and the same task-signing key. During the observation period, the operator moved hosting, changed command domains and later required tokens and a custom header for module downloads.</p><p>The shifting infrastructure makes a domain-only response fragile. Blocking known addresses is still useful, but it is a snapshot. The durable evidence sits closer to the host: the suspicious scheduled tasks, the Windows-looking installation directory, unexpected bundled Python, PowerShell download activity, browser processes started for remote debugging and the sequence of outbound requests described in the report.</p><p>This is where artifact hierarchy matters. Infrastructure indicators can expire quickly. Persistence names and file paths can be changed. Behavioral relationships&#8212;search-led command execution, elevated scripting, a new runtime, scheduled persistence, browser collection and staged exfiltration&#8212;survive longer as an investigative model.</p><h2>Containment starts with the host, then follows the artifacts</h2><p>A bounded response should move in two directions at once: preserve what happened on the endpoint and invalidate what may have left it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nnCz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nnCz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!nnCz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1483862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221751261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nnCz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!nnCz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca514e5c-ce93-4ca0-b445-818dd69dc3b3_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>First, isolate the suspected host and preserve PowerShell, process, scheduled-task, browser and network evidence. Verify the execution path without rerunning the command. Zscaler identifies two scheduled tasks and a Windows-looking directory that can anchor triage; its report carries the exact indicators for teams that need them.</p><p>Second, inventory the artifact classes that were present and reachable on that host at the time. Do not treat the malware&#8217;s target list as proof that every item existed or was exfiltrated. Use it to define the scope of the check.</p><p>Third, invalidate by artifact. Revoke browser and application sessions where exposure is plausible. Rotate affected passwords, SSH keys and service credentials from a clean system. Review password-manager and developer-tool access according to the products actually present. Handle wallet exposure through established incident procedures rather than improvised recovery.</p><p>Finally, hunt for use. Correlate identity, server, source-control, messaging and transaction records with the infection window. Look for successful access, new persistence and actions that do not fit the user&#8217;s normal device, geography or workflow. Absence of one indicator should narrow the assessment, not erase the infection.</p><h2>Search cannot be a software approval system</h2><p>Awareness advice usually ends with &#8220;check the URL.&#8221; That is too weak for a workflow in which staff are expected to paste privileged commands from public pages.</p><p>Organizations should decide which software sources are approved before a user searches for them. Internal installation documentation, managed package repositories, application control and logging for elevated scripting turn software acquisition into a governed process. Search can help someone find information; it should not decide which command earns administrative execution.</p><p>Armorsteal is a useful warning because the lure did not need to break the expected installation. It delivered the expected result and the compromise together.</p><p><strong>When success is easy to counterfeit, provenance has to be checked before execution&#8212;not inferred afterward.</strong></p><h2>Sources</h2><ul><li><p><a href="https://www.zscaler.com/blogs/security-research/seo-poisoning-campaign-delivers-new-armorsteal-malware">Zscaler ThreatLabz: SEO Poisoning Campaign Delivers New Armorsteal Malware</a></p></li><li><p><a href="https://www.zscaler.com/blogs/feeds/security-research">Zscaler Security Research RSS feed</a></p></li><li><p><a href="https://securityboulevard.com/2026/10/seo-poisoning-campaign-delivers-new-armorsteal-malware/">Security Boulevard syndicated copy of the ThreatLabz research</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Container Was Signed. The Source Was Wrong.]]></title><description><![CDATA[LiteLLM 1.107.0 shows how signed images and Trusted-Publisher uploads can still emerge after stolen credentials redirect a legitimate release pipeline.]]></description><link>https://www.codeaintel.com/p/the-container-was-signed-the-source</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-container-was-signed-the-source</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Thu, 22 Oct 2026 20:30:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AlDq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The poisoned LiteLLM release did not sneak around the release pipeline. It went through it.</p><p>On October 21, version 1.107.0 was built and published through official workflows to PyPI and the project&#8217;s container registries. The public GitHub tag stayed clean. The distributed artifacts did not.</p><p>LiteLLM&#8217;s <a href="https://docs.litellm.ai/blog/security-incident-oct-21-2026">incident report</a> says stolen developer GitHub credentials were used to alter a private release workflow so it pulled from a lookalike repository. The project says that workflow built, signed and published poisoned artifacts. The artifact-level evidence is narrower: affected container images were signed and carried build provenance, while the seven PyPI wheels were uploaded through Trusted Publishing but PyPI shows no provenance for the release files.</p><p><strong>The container signature was not forged. The source decision that preceded it was.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AlDq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AlDq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AlDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c27be947-2f24-4e3a-b454-812c65d33679_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1923159,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221660595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AlDq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!AlDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc27be947-2f24-4e3a-b454-812c65d33679_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The decisive failure occurred before the signed container build: a trusted workflow was redirected to attacker-controlled source. The PyPI wheels followed a Trusted Publisher path without recorded PyPI provenance.</em></p><h2>Five seconds erased the protection boundary</h2><p>The maintainer&#8217;s timeline is unusually precise. At 10:08:29 UTC, branch protection rejected an unauthorized modification to the private release workflow. Five seconds later, a credential tied to a GitHub organization owner was used to override that protection and apply the change.</p><p>The altered workflow pointed the releaser at Berri-AI/litellm, a hyphenated lookalike of the legitimate BerriAI/litellm repository. An official staging run began at 10:46:39. The production pipeline followed, and a second compromised developer credential satisfied its approval gate.</p><p>By 11:40 UTC, seven malicious wheels had landed on PyPI. Container publication followed minutes later. Credentials associated with a third developer account were then used to delete the production and staging workflow records, limiting the evidence left behind.</p><p>LiteLLM says the credentials appear to have been GitHub CLI OAuth tokens exposed in logs from its own internal deployment. It has not established the original intrusion path and says that part of the investigation remains open. That distinction matters: the token abuse is documented; the root entry point is not.</p><h2>The tag was clean. The artifacts were not.</h2><p>The public v1.107.0 source tag did not contain the malicious files. That is exactly why a source-only review could produce a false sense of safety.</p><p>Independent analysis by <a href="https://www.stepsecurity.io/blog/litellm-1-107-0-compromised-pypi-backdoored-wheels-credential-stealer">StepSecurity</a> and <a href="https://socket.dev/blog/litellm-compromise">Socket</a> found three unexpected startup files in all seven wheels: cook.pth, cook.py and sitecustomize.py. The affected container images carried the same payload.</p><p>The container build provenance supplied an important clue. It recorded the lookalike repository as the source. In other words, the evidence was present&#8212;but it authenticated the wrong input because the legitimate workflow had been reconfigured.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KwTX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KwTX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!KwTX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1209607,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221660595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KwTX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KwTX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36c120c8-8068-4d93-b714-dbbefa359cc7_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A clean tag could not vouch for artifacts produced from a different repository.</em></p><p>This is the uncomfortable limit of release assurance: <strong>the image signature authenticated the signing identity and artifact integrity, while the provenance recorded the official workflow and the wrong source. Neither proved that the source change was intended.</strong></p><h2>Python only had to start</h2><p>The malicious wheels used Python startup behavior rather than waiting for an application to import LiteLLM. Once version 1.107.0 was installed, an ordinary Python start could execute the credential collector and launch a background remote-code loader.</p><p>That expands the exposure boundary beyond a single AI gateway process. The research describes collection targeting cloud identities, provider API keys, process environments, developer credentials and secrets stored in a LiteLLM proxy database. The loader was designed to poll for remotely supplied code on Linux and macOS.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VLdb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VLdb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!VLdb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1418046,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221660595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VLdb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!VLdb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96592100-5d98-4a92-b18e-4f33d6360c58_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The compromised runtime sat next to the exact secrets an AI gateway is expected to handle.</em></p><p>There is no published victim count, and a download is not the same as execution. The defensible boundary is narrower: LiteLLM says an environment that started Python with 1.107.0 should be treated as compromised. A forensic marker can confirm exfiltration, but its absence does not prove the host remained clean.</p><h2>A short distribution window can create a long credential problem</h2><p>The PyPI wheels were live for roughly two hours, from 11:39 to 13:23 UTC. Affected GHCR tags were unavailable by 13:51. Docker Hub tags&#8212;including v1.107.0, latest, main-latest and main-stable&#8212;remained exposed from 11:46 to 14:20 UTC before removal or repointing.</p><p>That containment was fast. It is also not the end of the incident.</p><p>Package removal stops new pulls. It does not revoke a cloud role copied during execution, rotate a provider key read from a proxy database or kill a loader already running on a host. Floating container tags make the reconstruction harder because today&#8217;s clean latest does not show what a system pulled yesterday.</p><p>The <a href="https://pypi.org/project/litellm/1.107.0/">PyPI release record</a> now marks 1.107.0 as quarantined. Responders still need their own deployment, image-digest and runtime evidence to decide whether it ever reached an environment.</p><h2>Start with containment, not another Python command</h2><p>LiteLLM&#8217;s guidance includes a warning that is easy to miss: do not begin by running pip inside a suspect environment. Starting Python can execute the same startup hooks again.</p><p>A bounded response sequence is:</p><p><strong>1 &#8212; Isolate.</strong> Isolate the affected host or workload and preserve deployment evidence.</p><p><strong>2 &#8212; Remove the hooks.</strong> Remove the malicious startup files and stop the detached loader without invoking the suspect interpreter.</p><p><strong>3 &#8212; Rebuild cleanly.</strong> Rebuild the environment from a verified clean release; the project currently directs users to 1.106.2 or an earlier explicit version.</p><p><strong>4 &#8212; Rotate reachable secrets.</strong> Rotate every secret the host could reach&#8212;not only the obvious AI provider key. That includes instance or task roles, proxy credentials, database passwords and secrets exposed through process environments.</p><p><strong>5 &#8212; Hunt the credential window.</strong> Review cloud, identity and network records for use of those credentials outside the expected infrastructure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pnEy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pnEy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!pnEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1292008,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221660595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pnEy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!pnEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f60fcbf-bac1-45f9-b10d-3cb2b5a8419b_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Do not let the first diagnostic step re-trigger the mechanism under investigation.</em></p><h2>Release assurance has to verify intent</h2><p>After a separate March compromise, LiteLLM had moved releases into a private repository, adopted trusted publishing, made container tags immutable and signed images. Those controls addressed direct artifact tampering. They did not survive a principal with enough authority to rewrite the workflow itself.</p><p>The next control layer has to test intent independently:</p><ul><li><p>Bind production workflows to an immutable repository identity, not a human-readable name or editable input.</p></li><li><p>Require out-of-band review when an owner bypasses branch protection or changes a release source.</p></li><li><p>Keep developer OAuth tokens and model response bodies out of production logs.</p></li><li><p>Compare packaged artifacts with the qualified source before publication, including files installed outside the normal package tree.</p></li><li><p>Retain workflow and approval telemetry somewhere a compromised repository identity cannot erase.</p></li></ul><p>None of those controls is glamorous. That is the point. The attack did not need to defeat cryptography. It needed to make an authorized system sign a container built from the wrong source.</p><p><strong>A trustworthy release needs five separate answers: who approved it, which workflow ran, which source identity it used, what files it produced and what executed at runtime.</strong> A green check on only one of those layers is not the chain of custody.</p><h2>Sources</h2><ul><li><p><a href="https://docs.litellm.ai/blog/security-incident-oct-21-2026">LiteLLM: October 21, 2026 security incident and response</a></p></li><li><p><a href="https://thehackernews.com/2026/10/litellm-compromised-in-supply-chain.html">The Hacker News: LiteLLM compromised in supply-chain attack</a></p></li><li><p><a href="https://www.stepsecurity.io/blog/litellm-1-107-0-compromised-pypi-backdoored-wheels-credential-stealer">StepSecurity: Technical analysis of the 1.107.0 wheels and images</a></p></li><li><p><a href="https://socket.dev/blog/litellm-compromise">Socket: LiteLLM PyPI package and Docker images compromised</a></p></li><li><p><a href="https://pypi.org/project/litellm/1.107.0/">PyPI: LiteLLM 1.107.0 quarantined release record</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[I Said ‘Patch Up.’ Then PHP’s Warning Window Closed Overnight.]]></title><description><![CDATA[Two CVSS 9.2 flaws moved from advance notice to a four-month honeypot claim, early attack telemetry, an NSA warning and emergency fixes in less than a day.]]></description><link>https://www.codeaintel.com/p/i-said-patch-up-then-phps-warning</link><guid isPermaLink="false">https://www.codeaintel.com/p/i-said-patch-up-then-phps-warning</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Wed, 21 Oct 2026 15:10:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5vYo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At 3:52 PM ET on October 20, the PHP Foundation gave defenders advance notice: two critical vulnerabilities, both scored 9.2 under CVSS v4, would be addressed in new PHP releases the following day.</p><p>At 6:11 PM, I shared that warning with a blunt line: <strong>&#8220;Patch up, its going to be a wild ride!&#8221;</strong></p><p>That was not a discovery claim. I did not find the vulnerabilities, and I was not claiming exclusive intelligence. The PHP Foundation had already published the primary warning. My judgment was that the signal mattered immediately&#8212;not after every advisory had been syndicated, and not after attack traffic became visible.</p><p>When a foundational web runtime warns that two critical fixes are hours away, defenders should already be finding affected systems, clearing change windows and preparing rollback plans.</p><p>By the next morning, that window had nearly disappeared.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5vYo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5vYo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5vYo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1560807,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221447306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5vYo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5vYo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9beaa4a8-d7a2-4b16-8d97-ecea0596f6b3_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The public sequence compressed in under a day. The IRIS C2 post introduced a retrospective four-month claim without public artifacts; the 14:00 UTC patch window was followed by fixed GitHub releases between 14:06 and 14:09 UTC.</em></p><h2>What changed overnight</h2><p>Later that evening, I shared a post from a security researcher who claimed to have recreated and tested the two vulnerabilities, now identified as CVE-2026-109618 and CVE-2026-109619.</p><p>That remains a third-party reproduction claim. A social-media post is not proof of the exact method, reliability or practical reach of an exploit, and I am not treating it as one. The official PHP advisories now independently confirm the underlying issue: both vulnerabilities can lead to unauthenticated remote code execution.</p><p><strong>The distinction matters. The official disclosure validates the severity of the flaws. It does not automatically validate every public claim made during the disclosure window.</strong></p><p>At 3:43 AM ET, Cloudflare CTO Dane Knecht said the company was seeing &#8220;early attacks emerging.&#8221; That is meaningful first-party telemetry from a major network operator, but it is still a bounded claim. It does not establish how many systems were targeted, whether attempts succeeded, who was responsible or whether there was a coordinated campaign.</p><p>At 9:45 AM, the official, verified @NSACyber account issued a stronger operational warning. It advised organizations using PHP to prepare for the update and said the flaws could provide a direct route to a server&#8217;s filesystem or database. If an immediate update was not feasible, NSA recommended taking the affected system offline until it could be fully mitigated. What an attacker could actually reach would still depend on the PHP worker&#8217;s privileges and the deployment.</p><p>From the PHP Foundation&#8217;s advance notice to NSA&#8217;s warning, the escalation unfolded in just under 18 hours.</p><h2>The four-month honeypot claim</h2><p>One post could move the timeline back much further&#8212;but only if the underlying evidence supports it.</p><p>At 8:52 PM ET on October 20, the verified IRIS C2 account said it had &#8220;caught the PHP exploit 4 months ago&#8221; in its honeypots. It also described the follow-on stages as &#8220;quite Russian-like.&#8221;</p><p>That is potentially consequential retrospective telemetry. It is not yet a public demonstration that these exact CVEs were exploited four months before disclosure. The post does not show a capture date, request sample, packet trace, malware hash, infrastructure, target count or the technical basis used to connect the activity to either vulnerability.</p><p><strong>The &#8220;Russian-like&#8221; wording is resemblance language, not attribution.</strong> It does not identify a state, service, criminal group or campaign.</p><p>The correct response is to preserve the claim without promoting it to a confirmed fact. If IRIS C2 publishes artifacts that bind the honeypot activity to these flaws, the disclosure story changes from an overnight exploitation race to a possible months-long exposure question. Until then, defenders can still use the claim constructively: extend log review where retention allows, preserve suspicious historical crashes and requests, and look for follow-on activity without assuming who was behind it.</p><h2>Two different routes to the same outcome</h2><p>The PHP security team describes CVE-2026-109618 as remote code execution arising from memory corruption during an out-of-memory condition. CVE-2026-109619 involves stale global state across requests that can also lead to remote code execution.</p><p>Those descriptions are enough for defenders. Publishing operational exploit instructions would add risk without changing the central decision: exposed systems need to be updated.</p><p>Both flaws are rated CVSS v4 9.2. Both can be reached without authentication. PHP says installations serving web requests are in scope, although practical exposure varies by deployment model.</p><p>Apache module deployments carry the clearest demonstrated risk. The PHP advisory says an application-independent, unauthenticated path has been confirmed there. PHP-FPM deployments are also susceptible, but the demonstrated conditions are more nuanced. That nuance helps with prioritization; it is not a reason to defer patching.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qSVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qSVD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!qSVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1410126,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221447306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qSVD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qSVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f816fa7-5251-4e87-b6fc-ea3047049289_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Two internal failure modes converge on the same defender outcome: unauthenticated remote code execution and an urgent need to update.</em></p><h2>The fixed versions</h2><p>The complete fix is to move to one of the patched releases:</p><ul><li><p>PHP 8.2.35</p></li><li><p>PHP 8.3.36</p></li><li><p>PHP 8.4.27</p></li><li><p>PHP 8.5.12</p></li></ul><p>PHP 8.1 and older branches are end-of-life. The project has also provided exceptional, minimal source backports for PHP 7.4, 8.0 and 8.1, while operating-system vendors and long-term-support providers may ship their own packages.</p><p>That creates an operational trap. A server can report that its package is current for an old repository while still running an unsupported PHP branch. Teams need to verify the actual runtime version and the provenance of the fix, not simply trust a successful package-manager command.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YjdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YjdF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YjdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1359850,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221447306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YjdF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!YjdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc1a04d9-0ae5-4cf2-aa70-1f328d183715_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Supported branches have fixed releases. Older installations need a verified backport or a supported migration path&#8212;not an assumption that &#8220;current&#8221; means safe.</em></p><h2>What defenders should do now</h2><p>Start with inventory. Find every web-serving PHP runtime, including containers, legacy applications, administrative panels, embedded appliances and forgotten internal services that may still be reachable through a proxy or VPN.</p><p>Upgrade to the fixed release for the deployed branch, then restart the relevant web servers and PHP workers. Confirm the version loaded by the running web service; checking only the command-line PHP binary can create false confidence when the web stack uses a different package or image.</p><p>Review telemetry from the disclosure window forward&#8212;and farther back where retention permits. Look for unexplained worker crashes, repeated restarts, unusual requests, unexpected filesystem or database access, and changes that do not match an authorized deployment. Preserve evidence before rebuilding a system that may have been compromised.</p><p>PHP has documented temporary configuration changes that may reduce exposure in specific conditions. They are incomplete mitigations, not replacements for the update. The same applies to web application firewall rules. Even the Cloudflare statement that announced new protections explicitly called them a stopgap.</p><p>If a vulnerable internet-facing system cannot be patched or reliably isolated, both NSA and the UK National Cyber Security Centre point toward the uncomfortable but defensible option: take it offline until the risk can be controlled.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_o1j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_o1j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!_o1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1790891,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221447306?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_o1j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_o1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67dd1b26-5235-475c-95b3-f85d6ba21714_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A WAF can buy time. It does not remove the underlying vulnerability. Patch, restart, verify and investigate the exposure window.</em></p><h2>Why the early warning mattered</h2><p>The useful part of an early warning is not being able to say &#8220;I told you so.&#8221; It is buying defenders time before a technical problem becomes an operational emergency.</p><p>At 6:11 PM, the fixes were not yet public, but the primary source had already made the stakes clear. That was enough to begin locating PHP systems, notifying application owners, preparing maintenance windows and identifying services that could not be patched quickly.</p><p>About fifteen and a half hours later, NSA was publicly telling unprepared organizations to consider taking systems offline.</p><p>That is the lesson here. In fast-moving vulnerability disclosure, certainty arrives in layers. A maintainer&#8217;s advance notice, a honeypot operator&#8217;s retrospective claim, a researcher&#8217;s reproduction claim, network telemetry, a government warning and a final technical advisory do not carry equal evidentiary weight. Good threat intelligence keeps those layers separate while still acting on the risk they collectively reveal.</p><p>The patches are now available. The warning phase is over. The historical exposure question is not.</p><h2>Sources</h2><ul><li><p><a href="https://x.com/ThePHPF/status/2112633155631108544">PHP Foundation advance notice</a></p></li><li><p><a href="https://x.com/betweentornodes/status/2112668002986475732">My October 20 defender heads-up</a></p></li><li><p><a href="https://x.com/C2IRIS/status/2112708663811170666">IRIS C2 four-month honeypot claim</a></p></li><li><p><a href="https://x.com/betweentornodes/status/2112708668865311188">My follow-up sharing the third-party reproduction claim</a></p></li><li><p><a href="https://www.php.net/archive/2026.php#2026-10-21-5">PHP security release and fixed versions</a></p></li><li><p><a href="https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w">PHP advisory for CVE-2026-109618</a></p></li><li><p><a href="https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp">PHP advisory for CVE-2026-109619</a></p></li><li><p><a href="https://x.com/dok2001/status/2112811965735202970">Cloudflare CTO statement on early attack activity</a></p></li><li><p><a href="https://x.com/NSACyber/status/2112903220209098897">Official NSA Cyber warning</a></p></li><li><p><a href="https://www.ncsc.gov.uk/news/critical-security-issue-affecting-php">UK NCSC alert</a></p></li><li><p><a href="https://cert.europa.eu/publications/security-advisories/2026-018/">CERT-EU security advisory</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Version Stayed. The Binary Changed.]]></title><description><![CDATA[A pinned hash exposed the gap between a trusted tag and the file users actually execute.]]></description><link>https://www.codeaintel.com/p/the-version-stayed-the-binary-changed</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-version-stayed-the-binary-changed</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Tue, 20 Oct 2026 14:12:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SS7f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A software release can look stable while the thing users download has changed underneath it.</p><p>That is the uncomfortable lesson in the OVHcloud CLI incident disclosed on October 19. The public version tags did not need to move. According to the <a href="https://github.com/ovh/ovhcloud-cli/issues/300">original GitHub issue</a>, attached binaries for versions 0.13.0 through 0.15.0 were replaced weeks after those releases first appeared. A downstream build caught the change because it expected a specific SHA-256 digest.</p><p><strong>The checksum failure was not noise. It was evidence that the artifact no longer matched the one previously trusted.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SS7f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SS7f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SS7f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1571129,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221306977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!SS7f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!SS7f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5e1e006-3277-41e0-b96c-238c24a39ffb_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The version label, source tag, and downloadable asset are related trust objects&#8212;not the same one.</em></p><h2>The hash failed before the story existed</h2><p>The issue reporter said release assets changed between roughly 12:47 and 13:12 UTC. A continuous-integration job pinned to the earlier Linux ARM64 hash then failed because GitHub served a different file under the same release version.</p><p>The reporter inspected build metadata in the replacement binary and found a later revision, a &#8220;dirty&#8221; build marker, and a version string inconsistent with the normal release process. That led the reporter to infer the files had not come from the expected pipeline. It is an important technical observation, but it remains the reporter&#8217;s provenance analysis&#8212;not a completed OVHcloud forensic report.</p><p>An OVHcloud maintainer later confirmed in the issue that the binaries involved had been deleted at 16:21 GMT+2. The reporter subsequently observed the original assets restored for the affected versions.</p><h2>A signed tag is not a signed download</h2><p>This incident exposes a common collapse in software trust: teams see a familiar repository, a familiar version, and a verified tag, then treat the downloaded executable as if all three assurances were interchangeable.</p><p>They are not. GitHub&#8217;s <a href="https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification">signature-verification documentation</a> explains how a verified signature can establish confidence in the origin of a commit or tag. That does not, by itself, prove that a separately uploaded binary was built from that commit or remained unchanged.</p><p>The issue reporter&#8217;s evidence was precisely about that gap: the tag still pointed to its existing commit while the attached file differed. A green badge on source history cannot authenticate a mutable asset that sits beside it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oTC8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oTC8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!oTC8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1176794,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221306977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!oTC8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!oTC8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6f09318-2610-4af7-b89c-860f5c6607bb_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A trusted label can carry an untrusted file when provenance stops before the release asset.</em></p><h2>The credential context raises the stakes</h2><p>The OVHcloud CLI is not merely an informational tool. Its <a href="https://github.com/ovh/ovhcloud-cli/blob/main/doc/authentication.md">authentication documentation</a> describes credentials supplied through configuration files, environment variables, or an interactive login flow. Depending on configuration, that context can include application secrets, consumer keys, or OAuth client credentials.</p><p>That makes execution of an untrusted replacement binary consequential. It does <strong>not</strong> establish that credentials were collected, transmitted, or successfully used. The public primary record currently supports a release-asset compromise and an urgent recovery; it does not yet provide a complete technical account of payload behavior or confirmed exfiltration.</p><h2>Recovery changed the control, not just the file</h2><p>OVHcloud&#8217;s response moved beyond re-uploading another binary. The project published <a href="https://github.com/ovh/ovhcloud-cli/releases/tag/v0.16.0">version 0.16.0</a> as an immutable release and used a signed tag. That is a stronger recovery state, with one important wording distinction: the public page establishes a signed <strong>tag</strong>; it should not be described as proof that every attached binary was individually signed.</p><p>GitHub says <a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases">immutable releases</a> lock the associated tag and assets against later modification or deletion, while still allowing limited changes to release notes and presentation. GitHub also generates a release attestation that binds the tag, commit, and assets. Its separate implementation guidance notes that enabling immutability applies to <a href="https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/prevent-release-changes">future releases</a>, not retroactively to old ones.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!thPS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!thPS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!thPS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!thPS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!thPS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!thPS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/185572d0-debd-4166-9af9-123a67900316_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1497401,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221306977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!thPS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!thPS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!thPS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!thPS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185572d0-debd-4166-9af9-123a67900316_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A signed tag, an immutable release, and verified artifact provenance answer different security questions.</em></p><p>Immutability closes the exact post-publication mutation path highlighted here. It does not prove that the first artifact published was safe.</p><h2>Trust has to reach the artifact</h2><p>For defenders, the immediate question is not whether a version number appears on an allowlist. It is whether the exact file that ran can be tied to an expected digest and a credible build path.</p><p><strong>Inventory first.</strong> Identify systems that downloaded or executed the affected releases during the reported window. Preserve the file and hash where policy permits, rather than assuming a redownload represents what ran earlier.</p><p><strong>Scope exposure from the process outward.</strong> Determine which configuration files, environment variables, tokens, and cloud permissions were available to that execution context. Credential rotation should follow actual accessibility and risk, while recognizing that a fuller incident report may change the assessment.</p><p><strong>Verify the asset, not only the tag.</strong> GitHub provides commands to <a href="https://docs.github.com/en/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/verify-release-integrity">verify a release and its assets</a>. Pinned cryptographic digests remain valuable because they turn silent drift into a hard failure, as this incident demonstrated.</p><p><strong>Require provenance that survives distribution.</strong> GitHub&#8217;s <a href="https://docs.github.com/en/actions/concepts/security/artifact-attestations">artifact-attestation model</a> can link an artifact to a repository, workflow, environment, and commit. An attestation does not guarantee that software is benign, but it makes the build claim testable instead of implied.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jIU0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jIU0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!jIU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1189982,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/221306977?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!jIU0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!jIU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff33631c-59f4-49d9-93db-28f9d25bd38d_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The useful response connects execution history, credential reach, artifact integrity, and build provenance.</em></p><p>The sharpest signal in this case came from a control many teams treat as operational plumbing: a pinned hash. The version stayed. The binary changed. <strong>Trust failed at the distance between those two facts.</strong></p><h2>Sources</h2><ul><li><p><a href="https://github.com/ovh/ovhcloud-cli/issues/300">GitHub issue 300: release assets replaced</a></p></li><li><p><a href="https://github.com/ovh/ovhcloud-cli/releases/tag/v0.16.0">OVHcloud CLI v0.16.0 recovery release</a></p></li><li><p><a href="https://github.com/ovh/ovhcloud-cli/blob/main/doc/authentication.md">OVHcloud CLI authentication documentation</a></p></li><li><p><a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases">GitHub documentation: immutable releases</a></p></li><li><p><a href="https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification">GitHub documentation: commit and tag signature verification</a></p></li><li><p><a href="https://docs.github.com/en/actions/concepts/security/artifact-attestations">GitHub documentation: artifact attestations</a></p></li><li><p><a href="https://www.bleepingcomputer.com/news/security/ovhcloud-cli-releases-backdoored-on-github-to-steal-developer-secrets/">BleepingComputer report that surfaced the incident</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Hi Rey. This Is Why We Keep the Receipts.]]></title><description><![CDATA[I challenged the persona in 2024. The record shows why.]]></description><link>https://www.codeaintel.com/p/hi-rey-this-is-why-we-keep-the-receipts</link><guid isPermaLink="false">https://www.codeaintel.com/p/hi-rey-this-is-why-we-keep-the-receipts</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sun, 04 Oct 2026 10:27:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!14WF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!14WF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!14WF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!14WF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!14WF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!14WF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!14WF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1860269,&quot;alt&quot;:&quot;Conceptual illustration of a hollow charcoal-paper persona peeling apart around a continuous archival paper trail.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/218754650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Conceptual illustration of a hollow charcoal-paper persona peeling apart around a continuous archival paper trail." title="Conceptual illustration of a hollow charcoal-paper persona peeling apart around a continuous archival paper trail." srcset="https://substackcdn.com/image/fetch/$s_!14WF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!14WF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!14WF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!14WF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f993acc-742b-4933-afcb-b737b38286c9_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An online reputation can be manufactured. Its history still deserves scrutiny.</figcaption></figure></div><p></p><p>In September 2024, I was already writing about Hikki-Chan. By January 2025, I was addressing him directly: <em>Hi Rey.</em></p><p>I live this ecosystem. I follow the people, the aliases, the claims, and the history behind them. With Hikki-Chan, that context helped me spot warning signs early: recycled material, questionable credit for old incidents, and a reputation that seemed to exceed the evidence.</p><p>On October 3, 2026, Reuters reported that the alleged ShinyHunters member known as Rey had been detained by Jordanian authorities. Sources told Reuters he was cooperating with the FBI to identify other hackers. The FBI declined to confirm a specific arrest. <a href="https://www.reuters.com/world/middle-east/key-shinyhunters-hacker-detained-jordan-is-cooperating-sources-say-2026-10-03/">Reuters</a></p><p>My reporting on this actor began more than two years before the detention report. The assessment, the dates, and the reasons are public.</p><p>In my <a href="https://www.codeaintel.com/p/hikki-chan-unmasking-a-fraudulent">September 2024 article</a>, I challenged specific claims: material presented as a fresh breach that appeared to be scraped or recycled, credit taken for previously reported incidents, and data described as something it was not. These were reasons to examine his claims closely, regardless of how confidently he presented them.</p><p>He also wrote about me on his blog and claimed he had tried to contact me to correct my reporting.</p><p>I had received no such contact. I said so publicly in my <a href="https://www.codeaintel.com/p/hikki-chan-sega-continues-hi-rey">January 2025 follow-up</a>.</p><p>That exchange mattered because credibility was the issue all along.</p><p>My work is built on that context. I track an actor&#8217;s claims against their history: where the data first appeared, who originally claimed the incident, and what the evidence actually supports. Following the people and communities over time helps me recognize when a new story is being built around old material.</p><p>That understanding takes time. By the time an actor reaches the wider headlines, their earlier posts, arguments, and mistakes can already tell a very different story. In Rey&#8217;s case, I had been documenting that gap since 2024.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KEZs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KEZs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!KEZs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3000098,&quot;alt&quot;:&quot;Conceptual illustration of a magnifying glass over matching geometric patterns on layered archival sheets.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/218754650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Conceptual illustration of a magnifying glass over matching geometric patterns on layered archival sheets." title="Conceptual illustration of a magnifying glass over matching geometric patterns on layered archival sheets." srcset="https://substackcdn.com/image/fetch/$s_!KEZs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KEZs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a13e2b1-e6c9-4407-882b-7855a2eba96c_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Knowing the history helps distinguish new evidence from recycled claims.</figcaption></figure></div><p>An inexperienced or careless actor can still hurt real people. Stolen access, borrowed tools, and capable associates can produce serious consequences. Exaggerated claims deserve scrutiny; credible evidence of harm deserves attention too.</p><p>Then came the identity exposure.</p><p>In November 2025, Brian Krebs described how account history, a carelessly shared screenshot, and infostealer records helped connect Rey&#8217;s online persona to his real identity. Krebs reported that Rey subsequently confirmed his identity in an interview. <a href="https://krebsonsecurity.com/2025/11/meet-rey-the-admin-of-scattered-lapsus-hunters/">Krebs&#8217;s investigation</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hpE1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hpE1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!hpE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2240364,&quot;alt&quot;:&quot;Conceptual illustration of an anonymous paper avatar on a screen, with matching fragments appearing on nearby archive slips.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/218754650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Conceptual illustration of an anonymous paper avatar on a screen, with matching fragments appearing on nearby archive slips." title="Conceptual illustration of an anonymous paper avatar on a screen, with matching fragments appearing on nearby archive slips." srcset="https://substackcdn.com/image/fetch/$s_!hpE1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!hpE1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc583f3c-c5e7-4e32-9d35-fc8f96a6960f_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An anonymous handle does not erase operational mistakes.</figcaption></figure></div><p>There is considerable irony in someone involved in the cybercrime ecosystem leaving identifying evidence in the same kind of stolen data that exposes everyone else.</p><p>Those records helped an investigation into his identity. The public reporting does not establish that they caused his detention. </p><p>I want the bad guys to lose. I want the people who steal, extort, and intimidate to discover that a reputation on a forum offers very little protection from accountability.</p><p>But making that happen takes work: researchers preserving evidence, journalists checking claims, investigators building cases, and people who understand this ecosystem well enough to recognize when the story does not fit.</p><p>The loudest actor in the room can hold everyone&#8217;s attention for a while.</p><p></p><p>Hi Rey. The posts are still there.</p>]]></content:encoded></item><item><title><![CDATA[ShinyHunters Says It Hacked the FBI. Which ShinyHunters?]]></title><description><![CDATA[The group wants the FBI to retract its warning. First, it has to prove its FBIjobs story.]]></description><link>https://www.codeaintel.com/p/shinyhunters-says-it-hacked-the-fbi</link><guid isPermaLink="false">https://www.codeaintel.com/p/shinyhunters-says-it-hacked-the-fbi</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Wed, 23 Sep 2026 14:49:10 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/93fcba46-6af3-4673-97a2-ffedc2985d2d_1254x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Someone using the ShinyHunters name wants the FBI to take back its warning about the group. Their way of making the point? They say they broke into FBIjobs.gov through a new PeopleSoft zero-day and walked away with <strong>2&#8211;3 terabytes</strong> of data.</p><p>The FBI isn&#8217;t there yet. It says it is investigating claims of unauthorized activity affecting its jobs site. The zero-day, the move into FBI-managed AWS GovCloud, and the enormous theft figure all come from the group.</p><p>In May, the FBI <a href="https://www.ic3.gov/PSA/2026/PSA260515">warned</a> that ShinyHunters actors may exaggerate their access and harass victims to pressure them. The person behind this new claim calls the FBIjobs operation retaliation and wants that warning corrected or removed within a week. Asked whether the group would release alleged FBI data if it refused, the representative would not say.</p><p>Before we get lost in terabytes, let&#8217;s talk about the name. <strong>Which ShinyHunters is making this claim?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!beUh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!beUh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!beUh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!beUh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!beUh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!beUh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png" width="1254" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2661122,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/216112457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!beUh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!beUh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!beUh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!beUh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f831c44-03ec-4538-949f-15db12d913cd_1254x1254.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>ShinyHunters 101: the name is not the crew</h2><p>If you&#8217;re new to ShinyHunters, keep these three things separate:</p><ul><li><p><strong>The OG crew:</strong> The ShinyHunters account advertised stolen data from more than 60 companies in 2020&#8211;21, according to the <a href="https://www.justice.gov/usao-wdwa/pr/member-notorious-international-hacking-crew-sentenced-prison">U.S. Justice Department</a>. S&#233;bastien Raoult, a member of that early operation, was arrested in 2022 and sentenced in 2024.</p></li><li><p><strong>The reused name:</strong> <a href="https://www.lemonde.fr/en/pixels/article/2026/05/20/shinyhunters-the-elusive-hacking-network-that-started-in-france_6753665_13.html">Le Monde</a> found at least two phases of people using it, with no proven connection between them. An apparent original member objected to others taking the name. <a href="https://cloud.google.com/blog/topics/threat-intelligence/expansion-shinyhunters-saas-data-theft">Google Threat Intelligence</a> tracks separate clusters behind later ShinyHunters-branded activity.</p></li><li><p><strong>The FBIjobs claimant:</strong> No public evidence ties the person talking to reporters now to the original 2020 crew. The handle is familiar. The people behind this claim are not established.</p></li></ul><p>I wrote in my <a href="https://www.codeaintel.com/p/the-fall-of-breachforums-when-hackers">BreachForums piece</a>: &#8220;ShinyHunters goes down? Someone else will copy the brand.&#8221; That&#8217;s the problem with reading today&#8217;s headline as an OG reunion.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vYqC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vYqC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vYqC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png" width="1254" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2327653,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/216112457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vYqC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!vYqC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283b1a54-4292-4d5a-a879-abbf56699b69_1254x1254.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>What does the newer operation actually do?</h2><p>Google documented a newer playbook under the ShinyHunters name: someone poses as IT, gets an employee&#8217;s sign-in details and MFA codes, and pulls data from cloud apps for extortion. Its researchers track several clusters because the shared name does not tell them which operator ran which job.</p><p>Even <a href="https://www.bleepingcomputer.com/news/security/jaguar-land-rover-jlr-confirms-data-theft-after-recent-cyberattack/">Scattered Lapsus$ Hunters</a> was a claimed alliance of three notorious names, not a verified roster. The labels travel faster than anyone can pin down the people behind them.</p><h2>PeopleSoft: two different stories</h2><p>In May and June, <a href="https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-targets-education-sector-oracle-exploit/">Mandiant</a> watched a ShinyHunters-branded cluster exploit a then-unknown PeopleSoft flaw against education-sector systems. Oracle later identified it as <strong>CVE-2026-35273</strong>.</p><p>Now the FBIjobs claimant says it found <strong>another</strong> PeopleSoft zero-day. Don&#8217;t put the June CVE under the FBI headline: this is supposed to be a new flaw, and no technical proof has surfaced. Mandiant&#8217;s report also does not identify the person talking to reporters about the FBI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hzSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hzSr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!hzSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png" width="1254" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2871728,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/216112457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hzSr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!hzSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde4209cb-133d-48c4-93cb-df3d889075f1_1254x1254.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>What has anyone actually seen?</h2><p>The group sent <a href="https://www.bleepingcomputer.com/news/security/shinyhunters-claims-fbi-hack-data-theft-in-peoplesoft-zero-day-breach/">BleepingComputer</a> a picture of an allegedly defaced FBI Jobs page and two supposed records. The outlet could not independently verify those records or their source.</p><p>Separately, <a href="https://www.404media.co/we-hacked-the-fbi-hackers-say-they-have-data-on-all-fbi-employees/">404 Media</a> received about 5,000 purported employee records. Some details checked against real people and DOJ-linked phone numbers, according to BleepingComputer. The sample deserves attention. It still leaves the route in, the scale of any theft, and the alleged new flaw open.</p><p>The FBI&#8217;s <a href="https://www.fbi.gov/file-repository/pias/pia-fbijobs-fbicg-100322.pdf">2022 privacy assessment</a> described a candidate system using PeopleSoft and AWS GovCloud and handling sensitive applicant information. That tells us why a jobs portal would be attractive. It cannot tell us what happened there this week.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!blTo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!blTo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!blTo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!blTo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!blTo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!blTo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png" width="1254" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2177762,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/216112457?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!blTo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!blTo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!blTo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!blTo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9cce27d-e022-45ab-8fa8-f0a07a58c6cf_1254x1254.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>The CodeAIntel take</h2><p>In the underground, a known handle buys attention. A new operator can benefit from the ShinyHunters name without proving any link to the original crew. Here, the claimant is using that reputation to pick a public fight with the FBI and demand a retraction.</p><h2>Sources</h2><ul><li><p><a href="https://www.bleepingcomputer.com/news/security/shinyhunters-claims-fbi-hack-data-theft-in-peoplesoft-zero-day-breach/">BleepingComputer &#8212; FBIjobs allegation and FBI response</a></p></li><li><p><a href="https://www.404media.co/we-hacked-the-fbi-hackers-say-they-have-data-on-all-fbi-employees/">404 Media &#8212; reported personnel-data sample</a></p></li><li><p><a href="https://www.justice.gov/usao-wdwa/pr/member-notorious-international-hacking-crew-sentenced-prison">U.S. Justice Department &#8212; original ShinyHunters prosecution</a></p></li><li><p><a href="https://www.lemonde.fr/en/pixels/article/2026/05/20/shinyhunters-the-elusive-hacking-network-that-started-in-france_6753665_13.html">Le Monde &#8212; evolution of the ShinyHunters name</a></p></li><li><p><a href="https://cloud.google.com/blog/topics/threat-intelligence/expansion-shinyhunters-saas-data-theft">Google Threat Intelligence &#8212; later activity clusters</a></p></li><li><p><a href="https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-targets-education-sector-oracle-exploit/">Mandiant &#8212; earlier PeopleSoft campaign</a></p></li><li><p><a href="https://www.fbi.gov/file-repository/pias/pia-fbijobs-fbicg-100322.pdf">FBI &#8212; Candidate Gateway privacy assessment</a> and <a href="https://www.ic3.gov/PSA/2026/PSA260515">May advisory</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[CVE-2026-21962 Hides Behind the WebLogic Label]]></title><description><![CDATA[CISA says CVE-2026-21962 is being exploited. Oracle scopes the affected layer to HTTP Server and the WebLogic proxy plug-in; federal civilian agencies face an August 27 deadline.]]></description><link>https://www.codeaintel.com/p/cve-2026-21962-hides-behind-the-weblogic</link><guid isPermaLink="false">https://www.codeaintel.com/p/cve-2026-21962-hides-behind-the-weblogic</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Tue, 25 Aug 2026 08:38:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vyaj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The WebLogic name can point an application inventory toward the backend. CVE-2026-21962 affects the web tier.</p><p>On August 24, the US Cybersecurity and Infrastructure Security Agency added <a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-21962">CVE-2026-21962</a> to its Known Exploited Vulnerabilities catalog. Oracle's <a href="https://cveawg.mitre.org/api/cve/CVE-2026-21962">CVE record</a> places the flaw in Oracle HTTP Server and the WebLogic Server Proxy Plug-in for Apache HTTP Server and Microsoft IIS&#8212;the HTTP-facing layer that forwards requests toward WebLogic-managed applications.</p><p>That boundary turns the response into an ownership and mapping problem. Finding every backend domain with a WebLogic label is not the same as finding every web tier that loads the affected plug-in.</p><p><strong>The component most likely to disappear in an application-centric inventory sits directly in the request path.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vyaj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vyaj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vyaj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1062330,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212669046?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Vyaj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Vyaj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F098a2eb3-5983-4111-af2f-f15f115a0c09_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The affected scope is Oracle HTTP Server and the WebLogic proxy plug-in in Apache or IIS. The backend application remains downstream and outside the bracket.</em></p><h2>Map the web tier to its owners</h2><p>The affected versions listed by Oracle are 12.2.1.4.0, 14.1.1.0.0, and 14.1.2.0.0; Oracle's note limits the affected IIS plug-in to 12.2.1.4.0.</p><p>This is an inventory problem before it is a patching problem. A software inventory that records only the backend application, business service, or WebLogic domain may not show which Apache or IIS front ends load the proxy plug-in. Ownership can be split across web, middleware, application, and infrastructure teams while the vulnerable request path belongs to all of them.</p><p>The first question is therefore not &#8220;Do we run WebLogic?&#8221; It is: <strong>Which internet-facing or internally reachable HTTP tiers load this plug-in, which applications sit behind them, and who can prove their patch state?</strong></p><h2>The public evidence is urgent&#8212;and narrow</h2><p><a href="https://www.securityweek.com/cisa-warns-of-exploited-oracle-weblogic-vulnerability/">SecurityWeek reported</a> the KEV addition on August 25. CISA requires federal civilian agencies to mitigate the flaw by August 27, three days after the catalog change. Oracle had already addressed it in the <a href="https://www.oracle.com/security-alerts/cpujan2026.html">January 2026 Critical Patch Update</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y_xn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y_xn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y_xn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1878050,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212669046?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y_xn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Y_xn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F900c614b-7fac-49c7-a528-9aa8b2b14d88_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The vulnerability was patched months ago. The fresh event is CISA's active-exploitation determination and compressed federal deadline.</em></p><p>CISA's catalog does not identify an actor, victim, campaign, or exploitation technique. It also lists known ransomware use as unknown. &#8220;Known exploited&#8221; is enough to move remediation forward; it is not permission to invent a campaign around the entry.</p><p>The public record supports a narrow, high-confidence statement: exploitation exists, affected software is defined, a vendor fix exists, and CISA has set an accelerated deadline for covered federal civilian systems. It does not establish how many organizations were targeted, whether data was taken in any specific incident, or whether ransomware followed.</p><p><em>Urgency does not require embellishment.</em></p><h2>Critical means data access and change&#8212;not outage</h2><p>Oracle scores CVE-2026-21962 at 10.0. Its vector describes network access, low attack complexity, no required privileges, no user interaction, and a scope change. The stated security impact is high for confidentiality and integrity, with no availability impact in the CVSS vector.</p><p>Oracle says successful exploitation can allow unauthorized access to critical or all plug-in-accessible data, as well as unauthorized creation, deletion, or modification of critical data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_T8h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_T8h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!_T8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1109837,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212669046?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_T8h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_T8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fc0c939-b9f7-4b54-9be2-d7b57d8dac43_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Oracle's vector covers unauthorized data access and change. It does not document an outage or a named victim.</em></p><p>That changes triage. Teams should not wait for a service interruption to indicate compromise. A healthy process and a responsive login page do not demonstrate that the data boundary behind the proxy remained trustworthy.</p><p>Review should focus on evidence of unexpected access and change: HTTP request records, proxy and web-server logs, administrative and deployment changes, backend access patterns, and integrity checks for data the exposed path could reach. The public sources do not provide a universal IOC set, so absence of one specific address, filename, or payload cannot close the question.</p><h2>Verify the plug-in on every web tier</h2><p>The January advisory makes the patch available; it does not prove that every relevant node received it. Middleware estates accumulate exceptions: a front end excluded from an update window, a disaster-recovery node left behind, an old plug-in copied into a newer web tier, or a server rebuilt from an outdated image.</p><p>That is why a useful response produces evidence at the component level.</p><ul><li><p>Identify every Oracle HTTP Server, Apache, and IIS tier that loads the WebLogic proxy plug-in.</p></li><li><p>Map each tier to its reachable backend applications, exposure, owner, and business function.</p></li><li><p>Verify the installed fix against Oracle's current patch documentation, rather than inferring it from the WebLogic domain version alone.</p></li><li><p>Review relevant access and change evidence for the period in which the component was exposed.</p></li><li><p>Isolate, mitigate, or retire any instance whose state cannot be established within the required window.</p></li></ul><p>CISA's required action is similarly direct: apply vendor mitigations, follow the applicable federal cloud guidance, or discontinue use if mitigations are unavailable. Private organizations are not bound by the federal due date, but the evidence behind the KEV entry is still a rational reason to move this flaw ahead of unexploited backlog.</p><h2>Close each exposed instance</h2><p>A compressed deadline can produce a weak closure ritual: scan, see fewer detections, mark complete. This case needs each affected instance tied to a verified fix, review record, and named owner.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!26PC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!26PC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!26PC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!26PC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!26PC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!26PC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1127947,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212669046?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!26PC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!26PC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!26PC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!26PC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddc8f03a-3efc-4a7d-9d17-8a3211750516_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Closure connects the component, its fix, the access review, and a documented decision. A clean scanner result is one input, not the whole record.</em></p><p>If compromise indicators emerge, patching is no longer the finish line. The affected data paths, administrator credentials, application secrets, and downstream systems need incident-response scoping based on what the exposed tier could reach. That decision should follow records from the environment, not assumptions about a generic WebLogic deployment.</p><p><strong>The affected layer is narrower than the application label. The inventory work has to be more precise.</strong></p><h2>Sources</h2><ul><li><p><a href="https://www.securityweek.com/cisa-warns-of-exploited-oracle-weblogic-vulnerability/">SecurityWeek: CISA Warns of Exploited Oracle WebLogic Vulnerability</a></p></li><li><p><a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-21962">CISA Known Exploited Vulnerabilities Catalog: CVE-2026-21962</a></p></li><li><p><a href="https://www.oracle.com/security-alerts/cpujan2026.html">Oracle Critical Patch Update Advisory &#8212; January 2026</a></p></li><li><p><a href="https://cveawg.mitre.org/api/cve/CVE-2026-21962">CVE Program record: CVE-2026-21962</a></p></li><li><p><a href="https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk">CISA BOD 26-04: Prioritizing Security Updates Based on Risk</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Four Days Offline Inside a Resilient Grid]]></title><description><![CDATA[A cyberattack reportedly shut a small UK generator for four days without threatening the wider grid. Local operational loss still counts.]]></description><link>https://www.codeaintel.com/p/four-days-offline-inside-a-resilient</link><guid isPermaLink="false">https://www.codeaintel.com/p/four-days-offline-inside-a-resilient</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sun, 23 Aug 2026 08:42:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rHRW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A healthy grid can hide a long local outage.</p><p>The Department for Energy Security and Net Zero confirmed to <a href="https://www.bbc.com/news/articles/ce9793g34yvo">BBC News</a> that a cyberattack affected a small-scale generator and said the wider energy system was never at risk. The BBC, citing the Telegraph, reported that the attack took place in July and the site was shut for four days.</p><p>Neither the government nor the National Cyber Security Centre identified the site or disclosed how the intrusion worked. The claim that the hackers were affiliated with the Iranian regime also came from the Telegraph's reporting, not from a public UK government attribution.</p><p><strong>System-wide continuity did not erase the site's operational loss.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rHRW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rHRW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rHRW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1747070,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212381658?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rHRW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!rHRW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93acdd29-a5e3-4eb4-99bc-0f2dfac56b0d_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The government confirmed the incident and said the wider system was not at risk. The duration was reported; the intrusion method remains undisclosed.</em></p><h2>Four days can disappear inside a healthy grid</h2><p>The BBC described the affected site as a small power plant and quoted DESNZ calling it a small-scale generator. It was not an essential service such as a large power station, the report said. Smaller gas generators can provide short-term power when needed, so a single site can stop without creating a national electricity emergency.</p><p>That is good news for grid continuity. It does not restore the four days for the operator.</p><p>A four-day interruption can still mean lost generation, recovery cost, contract exposure, equipment checks, and a difficult decision about when the site is safe to restart. The public reporting does not quantify any of those effects, so they should not be assigned to this victim as facts. They are the questions an operator must be able to answer when cyber risk becomes operational downtime.</p><p><strong>A contained impact is still an impact. The containment boundary simply tells us where to measure it.</strong></p><h2>Keep confirmation, reporting and absence separate</h2><p>The public evidence has three confidence levels.</p><p>DESNZ confirmed that a cyberattack affected a small-scale generator and that the wider energy system was never at risk. The Telegraph, as relayed by the BBC, reported a four-day shutdown and Iran-linked responsibility. The site, initial access vector, affected systems, containment sequence, and restoration evidence have not been disclosed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F8wP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F8wP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!F8wP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1961724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212381658?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F8wP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F8wP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F528e2124-9f70-409b-97b4-55426ddef8c4_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>&#8220;Iran-linked&#8221; and &#8220;four-day outage&#8221; belong in the reported column. They should not be silently upgraded to government-confirmed findings.</em></p><p>This boundary prevents two common analytical errors. The first is to turn a press attribution into an official assessment. The second is to fill the technical vacuum with a familiar story&#8212;ransomware, remote access, a third-party compromise, or a vulnerability&#8212;without evidence.</p><p>None of those paths can be ruled in or out from the material made public. There is also no public basis for saying whether the shutdown was forced by the attacker, chosen as a safety measure, or extended by investigation and recovery work.</p><p><em>Unknown is not a weakness in the analysis. It is the correct label for evidence that has not been published.</em></p><h2>The attack path is a black box</h2><p>The sequence can be drawn only at a high level: a cyber incident occurred, an operational shutdown followed, and the reported duration was four days. Anything placed between those points would be speculation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wIsO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wIsO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!wIsO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1017838,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212381658?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wIsO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!wIsO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd69da38-e6bc-4e61-9823-b7cad1296963_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The missing middle is deliberate. Public reporting does not identify the entry point, affected technology, or mechanism that led to the shutdown.</em></p><p>That does not leave other generators with nothing to do. It changes the unit of preparation from a guessed indicator to evidence the operator controls.</p><p>Maintain an authoritative inventory of operational technology, remote-access paths, dependencies, owners, and recovery material. Preserve authentication records, administrative changes, network telemetry, system logs, and known-good configurations. The <a href="https://www.ncsc.gov.uk/collection/operational-technology/definitive-architecture-view/principle-2">NCSC's OT guidance</a> specifically ties recovery to the availability and integrity of architecture records, inventories, configuration files, logs, alerts, backups, and other operational information.</p><p>Those records can establish what changed even when public reporting offers no IOC, malware family, or patch to hunt.</p><h2>Smaller operators sit inside a larger visibility problem</h2><p>Ofgem and DESNZ have already described the policy gap. Their <a href="https://www.ofgem.gov.uk/blog/futureproofing-cyber-regulation">whole-system cyber regulation work</a> says existing NIS rules apply to the most critical operators above defined thresholds, while many organizations that will matter to a more distributed energy system are outside formal requirements. The stated direction is baseline resilience for all licensees and proportionate additional requirements for the most significant operators.</p><p>This incident does not prove that the unnamed generator fell outside NIS scope; its identity, capacity, and regulatory status are not public. It does show why system impact cannot be the only lens. A site can suffer meaningful disruption while the network absorbs the loss.</p><p>The UK's <a href="https://www.gov.uk/government/publications/energy-sector-cyber-security-strategy/energy-sector-cyber-security-strategy">2026&#8211;2030 energy cyber security strategy</a> calls for a whole-system view of dependencies, high-impact failure points, risk concentration, tested response and recovery plans, and broader oversight proportionate to risk. The generator incident turns that policy language into a practical question: <em>Which smaller assets can disappear for days without becoming visible as a grid emergency?</em></p><h2>Return to service is an evidence decision</h2><p>Small does not mean simple during containment. In an operational environment, disconnecting a system, powering it down, or restoring it too early can affect safety, evidence, and production at the same time.</p><p>The NCSC's <a href="https://www.ncsc.gov.uk/collection/what-to-do-when-cyber-attacks-disrupt-your-organisation/recovering/immediate-activities">disruptive-incident guidance</a> tells organizations to establish incident command, assess the current operational state, identify critical functions and dependencies, review backups, and balance containment against business impact, safety, and investigation. It also warns that rushing restoration before understanding attacker activity can increase the risk of re-compromise.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w7Vp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w7Vp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!w7Vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1167794,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212381658?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w7Vp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!w7Vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffc0720d-2858-4da6-aded-99e465c976b3_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Preparation defines the owner and safe state. Restoration begins from known-good evidence and ends only when operations can prove readiness.</em></p><p>For a generator operator, that discipline becomes four concrete gates:</p><ul><li><p><strong>Prepare:</strong> name the operational owner, document the safe state, map dependencies, and test access to recovery material.</p></li><li><p><strong>Detect:</strong> preserve logs and alerts across IT, remote access, and OT before volatile evidence disappears.</p></li><li><p><strong>Contain:</strong> coordinate isolation with engineering and safety owners instead of treating shutdown as a purely IT action.</p></li><li><p><strong>Restore:</strong> rebuild from trusted configurations, validate identities and access paths, and record the evidence supporting return to service.</p></li></ul><p>The final gate is not &#8220;the grid coped.&#8221; It is &#8220;this site is understood, clean enough to operate, and able to prove it.&#8221;</p><p>Four days is long enough to expose the difference.</p><h2>Sources</h2><ul><li><p><a href="https://www.bbc.com/news/articles/ce9793g34yvo">BBC News: Iran-linked hackers behind cyber attack that shut down power plant, reports say</a></p></li><li><p><a href="https://www.gov.uk/government/publications/energy-sector-cyber-security-strategy/energy-sector-cyber-security-strategy">GOV.UK: Energy sector cyber security strategy</a></p></li><li><p><a href="https://www.ofgem.gov.uk/blog/futureproofing-cyber-regulation">Ofgem: Futureproofing cyber regulation</a></p></li><li><p><a href="https://www.ncsc.gov.uk/collection/what-to-do-when-cyber-attacks-disrupt-your-organisation/recovering/immediate-activities">NCSC: Immediate activities after a disruptive cyberattack</a></p></li><li><p><a href="https://www.ncsc.gov.uk/collection/operational-technology/definitive-architecture-view/principle-2">NCSC: Creating and maintaining a definitive view of OT architecture</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Lock Screen Was the Credential Phish.]]></title><description><![CDATA[SynkLoader turns a Teams help-desk lure into a local Windows password prompt, reverse proxy, and remote-control stack. The useful detection point is the chain, not one hash.]]></description><link>https://www.codeaintel.com/p/the-lock-screen-was-the-credential</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-lock-screen-was-the-credential</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Sat, 22 Aug 2026 08:46:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MFBw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The contact arrived in Microsoft Teams wearing the name of an IT service desk. The fix was supposedly a &#8220;PowerShell Cleaner&#8221; installer hosted on Microsoft Azure. Once it ran, the credential phish no longer needed a browser.</p><p>It could draw its own Windows lock screen on the infected endpoint.</p><p><a href="https://expel.com/blog/synkloader-when-you-throw-in-everything-but-the-kitchen-sink/">Expel researchers</a> found the previously undocumented malware, which they named SynkLoader, while investigating a scheduled-task alert on August 18. They reverse-engineered its command-and-control protocol, made a decoy look like a large Active Directory environment, and watched the operator respond with additional modules and hands-on-keyboard profiling commands.</p><p><strong>The fake prompt was only one piece. SynkLoader paired local password-capture capability with a backconnect proxy and interactive control from the same infected machine.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MFBw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MFBw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MFBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:847968,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212257692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MFBw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!MFBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9bca210-590d-4b02-a870-21abee6aed9d_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>This is not a capability inferred from a product demo. The chain was reconstructed from an investigated endpoint, reverse engineering, a C2 emulator, and observed operator interaction.</em></p><h2>The collaboration layer delivered the installer</h2><p>Expel could not recover the full Teams conversation, so the exact wording of the lure remains unknown. The surviving metadata showed an account using an onmicrosoft.com address and the display name &#8220;IT Service Desk.&#8221; The target was persuaded to install an MSI package from an Azure Blob Storage endpoint. The installer presented itself as PowerShell Cleaner.</p><p>That boundary matters. The research does not describe exploitation of a Teams software flaw. It describes abuse of an external collaboration path, a trusted support identity, and Microsoft-hosted storage to make an unsolicited installer feel routine.</p><p><a href="https://www.microsoft.com/en-us/security/blog/2026/04/18/crosstenant-helpdesk-impersonation-data-exfiltration-human-operated-intrusion-playbook/">Microsoft&#8217;s separate investigation of cross-tenant help-desk impersonation</a> reached the same defensive point: these intrusions depend on a user accepting external contact and approving follow-on actions, not on an attacker breaking Teams itself.</p><p>Organizations do not need to end external collaboration to reduce that risk. They do need an explicit policy for who may contact employees, a visible way to distinguish internal support from external accounts, and a support process that users can verify through a second channel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LvcZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LvcZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!LvcZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:975263,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212257692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LvcZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!LvcZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff39c8ea8-af04-44d0-866d-de6683d10219_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The initial contact, installer, credential prompt, and remote-access capabilities form one chain. Treating any stage as an isolated alert loses the useful context.</em></p><h2>The loader profiled the prize before choosing the tools</h2><p>The first-stage package extracted a PowerShell script, an archive, a self-contained Python runtime, an obfuscated Python loader, and DLLs that impersonated Microsoft runtime components. The resulting chain moved between Python, PowerShell, C-sharp, and C++ while keeping much of the later execution in memory.</p><p>The profiler collected the hostname, logged-on user, privilege level, processes, services, domain, and the number of computers visible through Active Directory. Expel altered its decoy response to claim membership in a domain with thousands of systems. The operator then delivered persistence and the lock-screen module. After more than 12 hours, the decoy received a reverse proxy, an interactive shell, VNC-style desktop control, and a module-status script.</p><p>The selection behavior is more useful than the language count. It shows a loader that can measure an environment, wait for operator judgment, and receive only the capabilities needed for the next step.</p><p>Expel could not determine the final objective or attribute the operator. Its assessment that the toolkit may belong to a ransomware group or an initial-access broker is explicitly <strong>low-to-medium confidence</strong>. That boundary should remain intact: Active Directory sizing and interactive access are consistent with ransomware preparation, but they do not prove a ransomware deployment.</p><h2>A fake lock screen can create a real identity incident</h2><p>The PhishLocker component retrieved the current username and Windows lock-screen image, then rendered a full-screen borderless application resembling Windows 11. It did not validate the password locally; entering any value would dismiss it. The purpose was capture, not authentication.</p><p>There were visible seams. Alt+Tab could expose other windows above the fake screen, and the prompt lacked some normal visual behavior. Ctrl+Alt+Delete also provides a trusted operating-system path that an ordinary application cannot reproduce.</p><p>Those checks are useful for a person facing an unexpected prompt. They are not a containment plan after execution.</p><p>The companion TrafficRedirector module could connect outward to the operator and relay traffic to internal or internet services through the infected machine. That creates a dangerous combination if the prompt succeeds: a raw password obtained locally and a network path originating from an already trusted endpoint. Expel describes the capability; it does not report that every available module was successfully used against the original organization.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nrva!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nrva!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nrva!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1041648,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212257692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nrva!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Nrva!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7166d5-4c6b-4613-a266-b26f27098d41_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The password-capture capability and the network origin belong in the same investigation. Familiar source IPs do not make subsequent authentication benign.</em></p><h2>One hash will not carry this detection</h2><p>Expel published hashes for the recovered installer and first-stage files, plus domains associated with the observed infrastructure. It also warned that several later modules embed victim-specific identifiers, making their hashes unique to each infection.</p><p>That makes sequence-based evidence more durable than a single blocklist entry. Hunt for the combination:</p><ul><li><p>an unexpected external help-desk contact in Teams followed by an MSI download;</p></li><li><p>a package presenting itself as a cleaner and staging PowerShell plus a private Python runtime;</p></li><li><p>a randomly named scheduled task launching Python from a user profile at logon and again daily;</p></li><li><p>in-memory PowerShell activity crossing Python and custom DLLs; and</p></li><li><p>outbound connections followed by proxy, shell, or remote-desktop behavior.</p></li></ul><p>The sequence also gives responders a clean scoping question: <em>Which identities, endpoints, and network sessions intersected the lure, the installer, and the later control channel?</em></p><h2>Close the path, not just the prompt</h2><p>Start by isolating systems that executed the installer and preserving the MSI, archive, scheduled-task definition, process tree, and relevant network telemetry. Then invalidate active sessions and rotate credentials from a clean administrative device. A password change performed on a still-controlled host can simply expose the replacement.</p><p>Review Teams audit and reporting data for the external sender, related domains, and other recipients. Microsoft documents both <a href="https://learn.microsoft.com/en-gb/microsoftteams/trusted-organizations-external-meetings-chat">granular external-access policies</a> and <a href="https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-security">user reporting for suspicious Teams messages and external users</a>. Apply those controls according to the organization&#8217;s collaboration needs; a blanket allow-all posture should be a decision, not an inherited default nobody reviewed.</p><p>Finally, correlate identity events with endpoint and proxy evidence. Successful authentication from a familiar device or address is not sufficient closure when the device itself may be carrying the operator&#8217;s traffic.</p><p><strong>A credential prompt does not become trustworthy because it appears outside the browser. SynkLoader moved the phish onto the endpoint&#8212;and positioned that endpoint as the path back in.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SulD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SulD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!SulD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!SulD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!SulD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SulD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1054149,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212257692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SulD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!SulD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!SulD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!SulD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c33fb66-5f0b-4646-b630-e8966482dbae_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Closure requires evidence across the collaboration, endpoint, identity, and network layers. Removing the fake prompt addresses only one visible symptom.</em></p><h2>Sources</h2><ul><li><p><a href="https://expel.com/blog/synkloader-when-you-throw-in-everything-but-the-kitchen-sink/">Expel: SynkLoader&#8212;when you throw in everything but the kitchen sink</a></p></li><li><p><a href="https://www.bleepingcomputer.com/news/security/new-synkloader-malware-pushed-in-microsoft-teams-phishing-campaign/">BleepingComputer: New SynkLoader malware pushed in Microsoft Teams phishing campaign</a></p></li><li><p><a href="https://www.microsoft.com/en-us/security/blog/2026/04/18/crosstenant-helpdesk-impersonation-data-exfiltration-human-operated-intrusion-playbook/">Microsoft Security: Cross-tenant help-desk impersonation to data exfiltration</a></p></li><li><p><a href="https://learn.microsoft.com/en-gb/microsoftteams/trusted-organizations-external-meetings-chat">Microsoft Learn: Manage external meetings and chat</a></p></li><li><p><a href="https://learn.microsoft.com/en-us/microsoftteams/end-user-reporting-security">Microsoft Learn: End-user security reporting in Teams</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Patch the Server. Then Audit Every Installer It Served.]]></title><description><![CDATA[CISA added two exploited TrueConf flaws to KEV. Researchers found attackers replaced a client installer with a trojanized copy carrying PhantomCore. Patching is only half the response.]]></description><link>https://www.codeaintel.com/p/patch-the-server-then-audit-every</link><guid isPermaLink="false">https://www.codeaintel.com/p/patch-the-server-then-audit-every</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Fri, 21 Aug 2026 08:43:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yHr4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>CISA has added two TrueConf Server vulnerabilities to its <a href="https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json">Known Exploited Vulnerabilities catalog</a>. That action confirms exploitation in the wild. It also turns an ordinary patch task into a wider incident-response question.</p><p>The two flaws&#8212;CVE-2026-72529 and CVE-2026-72530&#8212;can be chained by an unauthorized attacker who can reach the server on TCP port 4307. One exposes a critical function without authentication; the other allows code to escape an isolated environment and execute on the host.</p><p>CISA does not identify the actor, malware, or victim behind its decision. Those details come from <a href="https://ics-cert.kaspersky.com/publications/reports/2026/08/12/head-mare-exploits-vulnerabilities-in-trueconf-server-to-deliver-phantomcore-malware/">Kaspersky ICS CERT</a>, which says it observed the flaws used against Russian organizations in a chain that planted a web shell, reached the conferencing database, and replaced the server-hosted Windows client installer with a trojanized copy carrying PhantomCore.</p><p><strong>The vulnerable server was the entry point. The trusted download path became the multiplier.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yHr4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yHr4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yHr4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2067420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212119803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yHr4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!yHr4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecbd7a06-3dbc-416d-9056-b1e0dddadeb6_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The fixes were already available. The fresh event is CISA's confirmation that both vulnerabilities meet the KEV standard for exploitation in the wild.</em></p><h2>The patch date and the escalation date are different</h2><p>TrueConf released fixed builds on June 18: versions 5.3.9, 5.4.9, and 5.5.5. The affected ranges are all releases before 5.3, plus 5.3.x before 5.3.9, 5.4.x before 5.4.9, and 5.5.x before 5.5.5.</p><p>Kaspersky published its campaign alert in August. CISA added both CVEs on August 20. Under the current KEV deadlines, federal civilian agencies must address CVE-2026-72529 by August 23 and CVE-2026-72530 by September 3.</p><p>That sequence matters. This is not a newly patched zero-day. It is a case where fixes existed before the government's exploitation signal. Organizations that treated the June release as a routine maintenance item now have a different risk classification&#8212;and potentially an exposure window to investigate.</p><p>A version check can prove the server is fixed <em>now</em>. It cannot prove what happened before the update.</p><h2>The compromise crossed the server boundary</h2><p>According to Kaspersky, the attackers used the paired weaknesses to gain code execution on an unpatched server, replace a server file with a web shell, collect information about the environment, and obtain privileged access to the TrueConf database.</p><p>The next step changed the blast radius. The attackers replaced the x64 Windows client distribution file stored on the server. Conference participants were then shown a prompt to download a new client version. The altered installer still deployed the conferencing client, but also unpacked the PhantomCore backdoor.</p><p>The download came from the collaboration server the participant intended to use, and the installer still produced expected software. Success could reassure the user while adding attacker-controlled code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6_bR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6_bR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!6_bR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1126141,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212119803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6_bR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6_bR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F502ddcb2-844f-4a65-a11d-0de4f9c9045b_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The observed chain turned one compromised server into a delivery point for endpoints that trusted its client download.</em></p><p>Kaspersky also describes backdoors on Unix-like TrueConf servers. Those findings belong to its investigation; CISA's KEV entries establish exploitation of the CVEs, not every element of that campaign.</p><h2>A participant can inherit someone else's server incident</h2><p>The server owner is not the only party at risk.</p><p>Kaspersky explicitly warns that an employee may connect to a compromised TrueConf server operated by a contractor or another organization, join a meeting, and download the altered client package. The employee's own organization may not operate TrueConf Server at all.</p><p>That breaks the usual asset-owner boundary. The infrastructure team responsible for the vulnerable server may sit in one company. The endpoint that receives the installer may belong to a customer, partner, supplier, or guest. Neither side's inventory is complete by itself.</p><p>The practical exposure question is therefore broader than &#8220;Do we run a vulnerable server?&#8221; It also includes:</p><ul><li><p>Did employees connect to externally operated TrueConf meetings during the relevant period?</p></li><li><p>Did any endpoint download or execute a client installer from those servers?</p></li><li><p>Can the organization distinguish a known-good vendor package from one served by a compromised host?</p></li></ul><p><strong>Third-party meeting participation can become a software-distribution dependency even when no formal integration exists.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F64H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F64H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F64H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F64H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F64H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!F64H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/baa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1189992,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212119803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F64H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F64H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F64H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F64H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaa260e3-8dae-4fd4-a808-422ceccd1c0f_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The downstream population may cross company boundaries, so server logs and endpoint evidence have to be reconciled together.</em></p><h2>Patching closes entry. It does not clear execution.</h2><p>Server owners should move to 5.3.9, 5.4.9, or 5.5.5 as applicable and verify the running build&#8212;not merely the package staged for installation. If port 4307 was reachable while a vulnerable version was present, that condition raises urgency; it is not proof of compromise by itself.</p><p>The response then needs two parallel tracks.</p><p>On the server, preserve available logs and volatile evidence without delaying containment. Review unexpected web files, changes to the client distribution package, privileged database access, new services, and other indicators in the Kaspersky alert. Compare the currently served installer with a clean, independently obtained release. Reduce network exposure to the service to the minimum required paths.</p><p>On endpoints, identify systems that downloaded or ran the client installer from an exposed or unverified server. Preserve the package and download timing, calculate hashes, and compare them with known-good material and published indicators. Hunt for the reported PhantomCore artifacts and contain positive detections. If compromise is found, rotate potentially exposed credentials and investigate what the endpoint could reach; do not treat reinstalling the conferencing client as eradication.</p><p>The order is important: contain the server, preserve the evidence needed to identify downstream recipients, and prevent a cleaned endpoint from retrieving the same poisoned package again.</p><h2>Closure needs proof on both sides</h2><p>A defensible closeout should show:</p><ul><li><p>the affected server is on a fixed build and unnecessary access to TCP 4307 is removed;</p></li><li><p>server files, database activity, services, and the client distribution package have been checked for the reported compromise pattern;</p></li><li><p>historical installer downloads have been mapped to users and endpoints as far as available evidence allows;</p></li><li><p>suspected packages were preserved and compared with an independent known-good source;</p></li><li><p>positive endpoints were contained, investigated, and remediated; and</p></li><li><p>credentials, sessions, or other access exposed by confirmed malware were invalidated and verified unusable.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uUDX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uUDX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!uUDX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:949655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212119803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uUDX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!uUDX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa87da2b0-29c9-46f2-bf80-2b45cf50514c_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The patch closes the two named entry points. Closure requires separate evidence that the distribution path and its recipients are clean.</em></p><h2>The trusted path is part of the attack surface</h2><p>KEV prioritization tells defenders where exploitation is no longer hypothetical. In this case, the most consequential artifact may sit beyond the vulnerable process: a client installer delivered through infrastructure users already trusted.</p><p>Patch the affected server. Inspect what it served. Trace who received it. Follow the evidence across organizational boundaries.</p><p><strong>A clean server today does not prove it served clean software yesterday.</strong></p><h2>Sources</h2><ul><li><p><a href="https://www.securityweek.com/cisa-urges-immediate-patching-of-exploited-trueconf-vulnerabilities/">SecurityWeek: CISA Urges Immediate Patching of Exploited TrueConf Vulnerabilities</a></p></li><li><p><a href="https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json">CISA: Known Exploited Vulnerabilities catalog JSON</a></p></li><li><p><a href="https://ics-cert.kaspersky.com/publications/reports/2026/08/12/head-mare-exploits-vulnerabilities-in-trueconf-server-to-deliver-phantomcore-malware/">Kaspersky ICS CERT: Head Mare exploits TrueConf Server vulnerabilities to deliver PhantomCore</a></p></li><li><p><a href="https://ics-cert.kaspersky.com/advisories/2026/08/11/trueconf-server-missing-authentication-for-critical-function/">Kaspersky ICS CERT: CVE-2026-72529 advisory</a></p></li><li><p><a href="https://ics-cert.kaspersky.com/advisories/2026/08/11/trueconf-server-breakout-from-isolated-environment/">Kaspersky ICS CERT: CVE-2026-72530 advisory</a></p></li><li><p><a href="https://trueconf.com/blog/update/trueconf-server-security-updates-june-2026">TrueConf: June 2026 security update</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Charges Are New. The Credential Playbook Is Not.]]></title><description><![CDATA[DOJ's expanded Mabna Institute case describes personalized phishing, password spraying, and valid-account abuse. Credential dumps can feed the same path, but are not alleged here.]]></description><link>https://www.codeaintel.com/p/the-charges-are-new-the-credential</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-charges-are-new-the-credential</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Thu, 20 Aug 2026 17:36:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Aads!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Justice Department has unsealed a 14-count superseding indictment naming 17 alleged members of the Iran-based Mabna Institute. DOJ says the university spearphishing campaign was conducted on behalf of the IRGC. Nine defendants were charged in 2018; eight are newly added.</p><p>According to the allegations, the university campaign targeted more than 100,000 professor accounts, compromised approximately 8,000 of them, and resulted in the theft of at least 31.5 terabytes of research and intellectual property.</p><p>The access story is less exotic.</p><p>Personalized phishing. Lookalike login pages. Password spraying. Compromised credentials passed between operators. Valid accounts used to retrieve data that those accounts were already trusted to reach.</p><p><strong>The objective was strategic. The login was ordinary.</strong></p><p>The indictment contains allegations, not findings of guilt; every defendant is presumed innocent. It also does not say Mabna obtained credentials from breach dumps or criminal markets. The case supports a narrower point: state-linked objectives can still depend on familiar credential failures.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Aads!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Aads!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Aads!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Aads!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Aads!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Aads!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2105318,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212038205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Aads!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Aads!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Aads!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Aads!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f58a6f0-8900-4357-b504-670ad8ed2dfd_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>DOJ's allegations connect familiar credential routes to strategic data theft. The figures are allegations, not findings of guilt.</em></p><h2>The expanded case still starts with a login</h2><p>The <a href="https://www.justice.gov/usao-sdny/pr/nine-iranians-charged-conducting-massive-cyber-theft-campaign-behalf-islamic">Justice Department's 2018 account</a> described a deliberate university workflow.</p><p>The alleged operators first researched professors and their published work. They then sent personalized messages that appeared to come from another academic. Links led to domains designed to resemble the victim's university and pages made to look like its login screen. Entered credentials were captured and used to obtain research and academic material.</p><p>Against private companies and government organizations, DOJ alleged a second route: collect employee names and email addresses from open sources, then try commonly used or default passwords across many accounts. That is password spraying&#8212;testing a small number of likely passwords against a large population to avoid the noise and lockouts produced by hammering one account.</p><p>The <a href="https://www.justice.gov/opa/pr/17-iranians-charged-conducting-massive-cyber-theft-campaign-behalf-islamic-revolutionary">2026 superseding case</a> adds eight defendants and again describes password-spray attacks and exfiltration. It also alleges that one defendant tracked spearphishing, created target lists, crafted messages, and exchanged compromised logins.</p><p>The <a href="https://www.justice.gov/usao-sdny/media/1458201/dl">signed superseding indictment</a> adds a distinct continuation. From approximately October 2018 through March 2022, three defendants allegedly reused password spraying against companies and government entities, and sought to monetize compromised credentials through dark-web forums. That direction matters: the credential market was an alleged output of the intrusions, not the documented source of the passwords.</p><p><strong>The account was the delivery mechanism.</strong></p><h2>Three credential supplies, one trusted session</h2><p>Credential attacks are often flattened into one category, but the supply routes are different.</p><ul><li><p><strong>Phishing</strong> captures a secret from the user through a deceptive sign-in experience.</p></li><li><p><strong>Password spraying</strong> tries a few common or default passwords across many known accounts.</p></li><li><p><strong>Credential stuffing</strong> takes username-and-password pairs exposed elsewhere and tests whether password reuse makes them valid on another service.</p></li></ul><p>The Mabna allegations support the first two routes. They do not publicly establish the third.</p><p>Leaks and dumps still belong in the defensive model. In a <a href="https://www.ic3.gov/CSA/2022/220526.pdf">2022 warning to academic institutions</a>, the FBI said it had observed stolen higher-education credentials posted on publicly accessible forums and offered through criminal markets. The bureau also identified more than 36,000 .edu email-and-password combinations posted in 2021, while cautioning that some may have been duplicates. Its warning was direct: password reuse can turn credentials exposed in one place into successful access somewhere else.</p><p>NIST SP 800-63B requires conforming verifiers and credential service providers to check new passwords against blocklists containing common, expected, and compromised values, including passwords from <a href="https://pages.nist.gov/800-63-4/sp800-63b.html">previous breach corpora</a>. Previous breaches already document which password choices recur.</p><p><em>The source changes. The resulting sign-in can look the same.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lZZb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lZZb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!lZZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1300309,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212038205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lZZb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lZZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5215b5-22a2-48c9-9278-b93ba4c436c4_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Breach dumps belong in the defensive model, but DOJ does not allege that they supplied credentials for this campaign.</em></p><h2>Valid accounts make theft look routine</h2><p>A stolen credential does not need to break the target system. It asks the target system to work as designed&#8212;for the wrong person.</p><p>DOJ alleges that compromised professor accounts were used to retrieve material those identities could legitimately access. One affiliated service allegedly allowed customers to use compromised professor accounts to reach university library systems directly. In corporate and government victims, the earlier case alleged that entire mailboxes were taken and, in some cases, forwarding rules were created to capture future messages.</p><p>Additional consequential evidence can appear after authentication: a new location, unfamiliar device, unusual library retrieval, mailbox export, forwarding rule, OAuth grant, MFA-method change, or access pattern that does not fit the owner.</p><p><strong>A successful login is an authentication result. It is not proof of a legitimate user.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TB-3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TB-3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!TB-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1318474,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212038205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TB-3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!TB-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c88d3cf-f869-4a65-87a6-266bac026164_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The strongest evidence may appear after authentication, when a valid account behaves unlike its owner.</em></p><p>An attacker operating through a real account inherits the trust and visibility gaps already attached to that identity.</p><h2>Make old credentials stop working</h2><p>Reduce the power of a captured, guessed, or recycled password.</p><p>Start with authentication. CISA identifies FIDO/WebAuthn as the widely available <a href="https://www.cisa.gov/more-password">phishing-resistant option</a> because authentication is bound to the legitimate service rather than handed to a lookalike page. Prioritize email, VPN, SSO, privileged administration, research repositories, and library or publishing access. Where phishing-resistant authentication cannot be deployed immediately, number matching is a stronger interim control than blind push approval.</p><p>Then close the password routes that remain:</p><ul><li><p>reject common and previously compromised passwords, allow password managers, and rate-limit failed attempts;</p></li><li><p>eliminate default credentials and prevent password reuse across institutional services;</p></li><li><p>detect a small set of candidate passwords spread across many usernames, not just repeated failures against one user;</p></li><li><p>treat a confirmed credential exposure as an incident trigger rather than waiting for a successful intrusion alert; and</p></li><li><p>after compromise, reset the secret, <a href="https://learn.microsoft.com/en-us/entra/identity/users/users-revoke-access">revoke sessions and tokens</a>, review MFA registrations, mailbox forwarding, OAuth grants, and prove that forced reauthentication occurred.</p></li></ul><p>Microsoft's <a href="https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-password-spray">password-spray investigation guidance</a> makes the same containment boundary explicit: identity recovery includes examining affected data, blocking compromised access, and checking for persistence such as forwarding rules or delegated mailbox access.</p><p>A reset changes a password. It does not erase prior access or necessarily terminate every existing session, and it cannot establish what the account did while it was controlled.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gfmB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gfmB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!gfmB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1568765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212038205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gfmB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!gfmB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a6e74a4-e525-45c9-861c-0fa5ca2698b1_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Recovery means invalidating every remaining path to the account and proving that the old access no longer works.</em></p><h2>Research access belongs inside the identity boundary</h2><p>Universities combine valuable data with fluid identity populations: faculty, students, visiting researchers, contractors, alumni, partners, publishers, and federated services. Collaboration is the operating model&#8212;and why a seemingly narrow account can bridge into expensive research or private correspondence.</p><p>Those identities need controls sized to the data behind them, not the application's administrative label. Prioritize phishing-resistant authentication for high-value research and email accounts. Expire dormant and guest access. Join authentication telemetry with post-login behavior. Treat exposed credentials as a trigger to review every service where reuse or federation could carry the identity.</p><p>The DOJ's new charges broaden the alleged network. They do not reveal a revolutionary entry technique. The university campaign described by the government ran from approximately 2013 through at least December 2017, and the mechanics were already familiar then.</p><p>They remain familiar because they still work.</p><p><strong>The lesson is not that the attackers invented a new technique. It is that institutions still leave password-based access powerful enough to enable new theft.</strong></p><h2>Sources</h2><ul><li><p><a href="https://www.justice.gov/opa/pr/17-iranians-charged-conducting-massive-cyber-theft-campaign-behalf-islamic-revolutionary">U.S. Department of Justice &#8212; 17 Iranians charged in superseding Mabna Institute indictment</a></p></li><li><p><a href="https://www.justice.gov/usao-sdny/pr/17-iranians-charged-conducting-massive-cyber-theft-campaign-behalf-islamic">U.S. Attorney's Office, SDNY &#8212; 2026 superseding indictment announcement</a></p></li><li><p><a href="https://www.justice.gov/usao-sdny/pr/nine-iranians-charged-conducting-massive-cyber-theft-campaign-behalf-islamic">U.S. Attorney's Office, SDNY &#8212; 2018 Mabna Institute indictment announcement and credential methods</a></p></li><li><p><a href="https://www.ic3.gov/CSA/2022/220526.pdf">FBI/IC3 &#8212; Compromised U.S. academic credentials identified across public and criminal forums</a></p></li><li><p><a href="https://pages.nist.gov/800-63-4/sp800-63b.html">NIST SP 800-63B &#8212; Authentication and authenticator management</a></p></li><li><p><a href="https://www.cisa.gov/more-password">CISA &#8212; More Than a Password</a></p></li><li><p><a href="https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-password-spray">Microsoft &#8212; Password spray investigation playbook</a></p></li><li><p><a href="https://learn.microsoft.com/en-us/entra/identity/users/users-revoke-access">Microsoft &#8212; Revoke user access in Microsoft Entra ID</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Extension ID Stayed Put. The Payload Changed.]]></title><description><![CDATA[A 77-extension Firefox corpus tied stable add-on identities, cloned code, shared infrastructure, and version histories to wallet and credential theft&#8212;showing why continuity is not the same as trust.]]></description><link>https://www.codeaintel.com/p/the-extension-id-stayed-put-the-payload</link><guid isPermaLink="false">https://www.codeaintel.com/p/the-extension-id-stayed-put-the-payload</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Thu, 20 Aug 2026 14:09:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JwpN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A Firefox add-on can keep the same identity while becoming different software underneath.</p><p>That is the sharpest finding in <a href="https://socket.dev/blog/firefox-crypto-wallet-theft">new research from Socket</a>, which tracks 77 extension identities linked through reused code, shared infrastructure, publishing patterns, misleading marketplace descriptions, and version history. The researchers confirmed wallet- or credential-stealing behavior in 40 extensions. Another 37 were deceptive sports-score shells associated with the same broader publishing operation, but their analyzed builds contained no confirmed theft payload.</p><p>The distinction matters. So does the bridge between the groups: historical versions of nine confirmed malicious extension identities used sports-score shells before later releases under the same Firefox IDs became wallet stealers.</p><p><strong>Continuity of identity became cover for discontinuity of behavior.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JwpN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JwpN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JwpN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1231150,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212004081?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JwpN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!JwpN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a78408b-83a4-4164-a99f-081e2e14345c_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The 77-extension corpus is not one undifferentiated malware count: 40 were confirmed malicious, while 37 deceptive shells remain a separate evidence category.</em></p><h2>Forty were malicious. Thirty-seven require precision.</h2><p>The confirmed set divides into several operating models. Seven extensions used remote content controls to deliver phishing interfaces. Fifteen packaged interfaces that captured recovery phrases, private keys, or other wallet secrets. Thirteen modified wallet-derived code to transmit serialized keyring data before local encryption. Five collected credentials and clipboard content through hardcoded command-and-control infrastructure.</p><p>Those categories total 40 confirmed malicious extensions. The other 37 matter because of their deceptive functions, repeated publishing artifacts, shared code, clustered signing activity, and links through version history&#8212;not because theft was found in every analyzed build.</p><p>Socket provisionally calls the activity &#8220;Offside Wallet Theft Factory,&#8221; but its report does not establish that one actor controlled every extension. That uncertainty should remain intact. The defensible conclusion is narrower: the artifacts indicate a common publishing pipeline or closely related threat actors capable of producing cover applications, cloned wallets, remote phishing loaders, and credential stealers.</p><p>This is an artifact story before it is an attribution story.</p><h2>The version history is the evidence</h2><p>Extension stores encourage users to read continuity as reassurance. The listing exists. The identifier is stable. An update arrives through the expected channel. Nothing appears to have been sideloaded.</p><p>The nine sports-shell-to-malware histories break that mental shortcut. Earlier versions presented sports scores; later versions under the same IDs carried wallet-stealing behavior. A control that recognizes only the extension ID can therefore preserve an allow decision even as the code and purpose change.</p><p>That does not make extension IDs useless. They remain essential inventory anchors. But an ID should answer <em>which software object changed</em>, not <em>whether the new version is trustworthy</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lbpd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lbpd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!lbpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1620825,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212004081?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lbpd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lbpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F087a80cf-470b-43b6-9227-74f541ff8521_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Nine confirmed malicious identities had earlier sports-score shell versions, making version transitions a primary detection surface.</em></p><p>Mozilla explains that <a href="https://support.mozilla.org/en-US/kb/add-on-signing-in-firefox">signing applies basic security checks</a>. Its separate safety guidance is equally important: scanning and possible human review <a href="https://support.mozilla.org/en-US/kb/tips-assessing-safety-extension">do not guarantee that an extension is absolutely safe</a>. Signing raises the floor. It does not turn future updates into trusted intent.</p><h2>Low permissions can still deliver a perfect lie</h2><p>One analyzed extension, &#8220;0KX WEB3,&#8221; requested only storage and tabs. It contained no working wallet. Instead, it queried a remote configuration and loaded a convincing wallet interface that asked the user to enter a recovery phrase or private key.</p><p>The extension did not need permission to search browser storage for secrets. It persuaded the victim to provide them.</p><p>Six related variants used byte-identical loader components, and a seventh used a closely related architecture. A remote switch allowed the operator to show a harmless local notepad or activate hosted phishing content without submitting a new extension version.</p><p><strong>Permission prompts describe technical access. They cannot measure a workflow designed to manufacture consent.</strong></p><p>The confirmed embedded-wallet variants made the problem harder to see. Some preserved expected wallet behavior while copying recovery phrases or serialized keyrings. A functional interface can be more dangerous than a broken counterfeit because success reassures the user while the secret has already crossed the boundary.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lAUR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lAUR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!lAUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1096158,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212004081?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lAUR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!lAUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6eb02b4-1f4a-444f-9f83-82672067adae_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Different code paths reached the same security outcome: a wallet secret or credential left the browser under attacker control.</em></p><h2>Govern extensions like production software</h2><p>Extension governance should account for versions, behavior, and business use&#8212;not only names and permission counts.</p><p>For managed Firefox fleets, Mozilla's <a href="https://firefox-admin-docs.mozilla.org/reference/policies/extensionsettings/">ExtensionSettings enterprise policy</a> can block extensions by default and explicitly allow approved IDs. That is a useful boundary, but an allowlist still needs a review process for updates. Record the extension ID, version, publisher, install source, approved use, and population. Alert when a wallet-related extension appears outside that inventory or an allowed extension changes function, ownership signals, requested access, or network behavior.</p><p>Network review also needs precision. The campaign abused specific projects and deployments on legitimate hosting platforms. Blocking broad parent domains would create collateral damage and still miss rotated infrastructure. Match exact indicators where available, then combine them with extension identity, version, install events, and unusual outbound activity.</p><p>For people who administer valuable self-custodial wallets, reduce the browser's extension set and separate routine browsing from wallet operations where practical. Marketplace presence, familiar branding, user counts, and low permissions are context&#8212;not authorization.</p><h2>Removal is not recovery</h2><p>If a listed extension was installed, preserve the package, browser extension inventory, relevant network evidence, and install/update timing as operationally feasible without delaying containment. Remove or block the extension, then determine which version ran and whether it reached any known campaign infrastructure.</p><p>If a recovery phrase or private key was entered, assume the wallet secret is compromised. Removing the extension stops future execution but cannot revoke knowledge already disclosed. Official wallet guidance recommends creating a wallet with a fresh recovery phrase from a clean browser profile or device, moving remaining assets, and discontinuing use of accounts derived from the exposed phrase. MetaMask's <a href="https://support.metamask.io/stay-safe/protect-yourself/ive-been-hacked-scammed-unauthorized-transactions-on-my-account/">compromise-response guidance</a> also warns that missing transactions cannot simply be reversed.</p><p>Where the credential- and clipboard-stealing variants were present, rotate potentially exposed credentials from a clean device and review active sessions and high-risk transactions. Do not use a potentially affected browser to establish the replacement secrets.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IYtc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IYtc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!IYtc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:987757,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/212004081?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IYtc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!IYtc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7427a966-0aae-49e4-a49c-dfed5b140ddb_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Closure depends on what the extension could access: remove the code, investigate the path, and replace any secret that may already be outside your control.</em></p><h2>Trust the release, not the label</h2><p>The campaign did not defeat every browser control. It worked around the assumptions people attach to those controls.</p><p>A signature was read as safety. A stable ID was read as continuity. Low permissions were read as low impact. A functioning wallet was read as legitimacy. Each signal contained some truth, but none answered the decisive question: <em>what does this version do now?</em></p><p>Extension security needs the same discipline applied to other production software: version-aware inventory, controlled change, behavioral evidence, scoped access, and a response plan that treats exposed secrets as exposed.</p><p><strong>The extension ID stayed put. Trust should not have.</strong></p><h2>Sources</h2><ul><li><p><a href="https://socket.dev/blog/firefox-crypto-wallet-theft">Socket: 77 Firefox Extensions Linked to Crypto Wallet and Credential Theft</a></p></li><li><p><a href="https://support.mozilla.org/en-US/kb/add-on-signing-in-firefox">Mozilla Support: Add-on signing in Firefox</a></p></li><li><p><a href="https://support.mozilla.org/en-US/kb/tips-assessing-safety-extension">Mozilla Support: Tips for assessing the safety of an extension</a></p></li><li><p><a href="https://firefox-admin-docs.mozilla.org/reference/policies/extensionsettings/">Firefox Enterprise Policies: ExtensionSettings</a></p></li><li><p><a href="https://support.metamask.io/stay-safe/protect-yourself/ive-been-hacked-scammed-unauthorized-transactions-on-my-account/">MetaMask Help Center: Compromised-wallet response</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[A Web Page Should Not Reach Your AI Control Plane]]></title><description><![CDATA[CISA's active-exploitation warning for Ray CVE-2025-62593 exposes a broader weakness: local and private compute services can still be reachable through the browser sitting beside them.]]></description><link>https://www.codeaintel.com/p/a-web-page-should-not-reach-your</link><guid isPermaLink="false">https://www.codeaintel.com/p/a-web-page-should-not-reach-your</guid><dc:creator><![CDATA[Tom]]></dc:creator><pubDate>Tue, 18 Aug 2026 08:43:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-DJK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>CISA has added <a href="https://www.cisa.gov/news-events/alerts/2026/08/17/cisa-adds-one-known-exploited-vulnerability-catalog">CVE-2025-62593</a>, a code-injection flaw in the Ray distributed-computing framework, to its Known Exploited Vulnerabilities catalog. The agency says the addition is based on evidence of active exploitation, and the catalog lists August 20 as the due date. For federal civilian agencies, the applicable remediation timing is risk-based under <a href="https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk">BOD 26-04</a> and depends on the affected asset's exposure and classification.</p><p>The vulnerable software is not the only important part of that warning. The path begins in an ordinary browser and can end inside a local development service or a private network.</p><p>Ray's upstream security advisory, GHSA-q279-jhrf-cc6v, describes a browser-mediated attack against versions earlier than 2.52.0. A malicious web origin can abuse DNS rebinding so that a browser reaches a Ray service the attacker could not contact directly. If that service trusts its network position and lacks an effective authentication boundary, the browser becomes an intermediary for code execution.</p><p><strong>A service is not isolated merely because the attacker cannot route to it directly.</strong> If a user's browser can reach both the public web and the service, the browser belongs in the threat model.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-DJK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-DJK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-DJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1063420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/211676924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-DJK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!-DJK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27350138-71d1-4d2c-8cef-89bff407b2e7_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The exposed boundary is indirect: public origin to browser, browser to trusted service, trusted service to compute execution.</em></p><h2>CISA changed the evidence, not the bug</h2><p>The upstream advisory was published in November 2025, and the <a href="https://nvd.nist.gov/vuln/detail/CVE-2025-62593">NVD record</a> identifies Ray 2.52.0 as the patched version. The vulnerability is not new. The evidence about its use is.</p><p>CISA's <a href="https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json">August 17 catalog release</a> now classifies it as known to be exploited. The catalog sets an August 20 due date and lists known ransomware use as unknown. That is a narrow but consequential evidence change: a critical browser-to-control-plane path has moved from a disclosed possibility to observed exploitation.</p><p>CISA's notice stops there. The agency does not name an actor, identify victims, describe a campaign, publish a successful-compromise count, or say how the exploitation was observed. <strong>Known exploitation is not the same as known scale.</strong> It justifies urgent action without inventing a story the evidence does not support.</p><h2>&#8220;Private&#8221; stopped meaning unreachable</h2><p>Network teams often draw a clean line between internet-facing applications and services available only on a developer machine or internal subnet. DNS rebinding attacks challenge that diagram.</p><p>At a high level, an attacker-controlled web origin changes where the browser believes that origin lives. The browser, already trusted to make requests from inside the user's environment, can then direct traffic toward a local or network-adjacent service. The attacker has not gained ordinary network reachability; the browser carries the interaction across the boundary.</p><p>That makes this a <em>confused-deputy problem</em>. The browser can legitimately reach both sides. The service accepts traffic because it appears to arrive from a permitted network position. The missing control is a reliable decision about who is authorized to invoke the service's most consequential functions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NrJI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NrJI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!NrJI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1920588,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/211676924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NrJI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!NrJI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48515cd2-d9cd-4201-8e30-5001004a6bbb_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>The perimeter view says &#8220;not internet-facing.&#8221; The execution path asks whether a browser inside the perimeter can still reach it.</em></p><h2>AI control planes deserve production-grade boundaries</h2><p>Ray coordinates distributed jobs and compute resources. In a development environment, its control interfaces may sit beside source code, model artifacts, cloud credentials, datasets, or access to larger clusters. Those surrounding assets are not confirmed impacts of the publicly documented exploitation; they are the reason code execution under a developer or service identity carries a serious blast radius.</p><p>The recurring design mistake is to treat an internal control service as harmless because it was built for trusted operators. That assumption becomes fragile when the service is reachable from a general-purpose browser, when authentication is optional or absent, or when development and production identities overlap.</p><p><strong>Control planes should authenticate intent, not infer trust from location.</strong> Network placement remains useful, but it cannot be the only proof that a request is authorized.</p><p>This standard should extend beyond Ray. Notebook servers, model gateways, experiment trackers, orchestration consoles, package registries, and internal agent tools often begin as convenient developer services. Once they can schedule work, load artifacts, reach secrets, or modify infrastructure, they are security-sensitive control planes whether or not anyone calls them production.</p><h2>Patch the software. Rebuild the boundary.</h2><p>The immediate action is straightforward: find Ray deployments below 2.52.0 and move them to a supported fixed release. Do not limit the inventory to production clusters. Developer laptops, shared workstations, CI runners, test hosts, lab systems, and dormant images all matter because the vulnerable path is browser-adjacent.</p><p>Then verify the surrounding boundary:</p><ul><li><p>restrict control interfaces to the smallest necessary set of hosts and identities;</p></li><li><p>remove unintended public or broad internal exposure;</p></li><li><p>enable supported authentication and confirm that it is actually enforced;</p></li><li><p>separate developer browsing from highly privileged compute administration where practical; and</p></li><li><p>reduce the credentials, datasets, and infrastructure permissions available to the service identity.</p></li></ul><p>The upstream advisory notes that 2.52.0 introduced an optional token-authentication capability that was disabled by default at the time. That is a reminder to test configuration, not merely version strings. A patched binary with a broadly reachable, unauthenticated control plane can still leave dangerous assumptions in place.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eBvg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eBvg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!eBvg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1783473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/211676924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eBvg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!eBvg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81468b9d-1e48-41e2-9b8b-d009e7840852_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Prioritize the systems where vulnerable software, browser reach, weak authentication, and high privilege intersect.</em></p><h2>Hunt for use, not just exposure</h2><p>An upgrade closes the documented vulnerability. It does not determine whether an older instance was used before remediation.</p><p>For every affected or uncertain system, preserve relevant evidence without delaying containment. Review control-service and job history, process creation, child processes, service changes, persistence, unusual outbound connections, and activity under the Ray service identity. Correlate suspicious events with browser activity on the same host or with users who could reach the service from their workstations.</p><p>There is no public CISA campaign profile or authoritative indicator set for this entry. That means teams should avoid both extremes: do not declare compromise from version exposure alone, and do not treat the absence of a published indicator as proof of safety. Scope the review around the actual service, identity, host, and time window.</p><p>For federal teams, the catalog's August 20 date is not automatically a blanket deadline: BOD 26-04 ties required timing to the affected asset's exposure and risk classification. Other organizations should use the same evidence to set priority according to exposure and impact, even though the federal directive does not govern them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ofVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ofVD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ofVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1723559,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codeaintel.com/i/211676924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ofVD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ofVD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdf7fe1e-2011-4f4d-816c-6710c606aeb4_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Closure requires more than installing a fixed version: inventory the path, constrain reach, review evidence, and verify the resulting control state.</em></p><h2>Make the browser part of the model</h2><p>CVE-2025-62593 is a Ray vulnerability, but its reach depends on a relationship among three components: a hostile web origin, a browser with access to the user's environment, and a control service that trusts that environment too broadly.</p><p>That relationship is increasingly common. Modern engineering workstations sit at the intersection of public web content, private cloud consoles, local development servers, AI tooling, and powerful credentials. Security architecture that models each component in isolation can miss the path between them.</p><p>The durable control is to assume that browsers can bridge trust zones, then make sensitive services authenticate every consequential request. Patch the known flaw. Constrain the network path. Reduce the service identity. Review the evidence.</p><p><strong>A private address is a routing fact, not an authorization decision.</strong></p><h2>Sources</h2><ul><li><p><a href="https://www.cisa.gov/news-events/alerts/2026/08/17/cisa-adds-one-known-exploited-vulnerability-catalog">CISA: CISA Adds One Known Exploited Vulnerability to Catalog</a></p></li><li><p><a href="https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json">CISA: Known Exploited Vulnerabilities Catalog JSON</a></p></li><li><p><a href="https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk">CISA: BOD 26-04, Prioritizing Security Updates Based on Risk</a></p></li><li><p>Ray Project security advisory GHSA-q279-jhrf-cc6v</p></li><li><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-62593">NIST NVD: CVE-2025-62593</a></p></li></ul>]]></content:encoded></item></channel></rss>