Security & Threat Intelligence

The Watch

The Signal

SMOKE#SCREEN delivers a genuine, signed ScreenConnect agent your EDR already trusts.

The stage-2 sleep is 180 seconds, timed to fall outside Elastic EDR's correlation window. Defender is left alone, so the alert most SOCs actually tuned for never fires — detection here depends on what you built beyond the vendor default. Watch the pattern rather than the sample: XCSSET v40 runs the same play on macOS through Chrome's own DevTools Protocol.

In Play

  1. Langflow RCE Lands on KEV With a Two-Day Clock

    CISA added CVE-2026-9198 in IBM Langflow OSS to its Known Exploited Vulnerabilities catalog on August 4, with a federal remediation deadline of August 7, per Cyberpresso. The flaw is CVSS 9.8: an auto-login endpoint hands out a superuser token, and a code-validation endpoint then accepts arbitrary Python. IBM patched it on July 17 in v1.10.1 and stated that all default deployments are affected. Langflow is stood up by data teams and rarely appears in a CMDB, so your first task is a hunt, not a patch.

    Ask Clarity
    Try
  2. Attackers Shipped Signed Tools, Not Malware

    Securonix documented the SMOKE#SCREEN campaign delivering a genuine, signed ConnectWise ScreenConnect agent from a fake Zoom update page, per Cyberpresso. The stage-2 delay was set at 180 seconds, chosen to fall outside Elastic EDR's correlation window. The same cycle brought XCSSET v40, which abuses Chrome's own DevTools Protocol on macOS to steal credentials and run a fileless reverse shell. In both cases the binary is legitimate and the channel is sanctioned, so only behavioral authorization catches them.

    Ask Clarity
    Try
  3. AI Assistant Configs Are an Unmonitored Persistence Layer

    The npm credential worm that began in keyv plants hooks in Claude Code and VS Code, so removing the poisoned package leaves the attacker executing on every later developer session, per The Hacker News. Separately, poisoned agent instruction files — AGENTS.md, .cursor/rules, .mcp.json — have already been found in repositories, and no scanner in your pipeline claims that artifact class. IBM's finding that 92% of AI breaches trace to missing access controls puts this in your IAM program, not your model-safety program.

    Ask Clarity
    Try
  4. Marketplace Delisting Is Not Remediation

    Manifold counted 77 counterfeit Open VSX extensions reusing real names and namespaces, every one published at version 0.0.1, per Cyberpresso. Fifty-eight sent hostnames out. Nineteen read the workspace .git directory and harvested GitHub, GitLab and Azure DevOps identifiers 4–5 seconds after activation, exfiltrating to mangorbit[.]com. The packages were pulled on August 3 but remain installed on endpoints. Recon without a payload is target selection ahead of a follow-on supply-chain strike.

    Ask Clarity
    Try
  5. Exposures Where There Is No Patch to Deploy

    Forescout showed 15 new TP-Link Omada zero-touch-provisioning flaws chaining with CVE-2025-7850 and CVE-2025-7851 to give an unauthenticated external attacker root across an entire managed fleet. TP-Link has said in writing that some fixes will never ship. Microsoft closed a Cosmos DB Gremlin API cross-tenant path by redesigning the platform rather than issuing a patch. Neither exposure produces a ticket you can close, so your controls are MFA, segmentation, disabled protocol APIs and written attestation.

    Ask Clarity
    Try

Deep Dives

The Payload Was a Real, Signed ScreenConnect Agent

Securonix's findings turn two standing assumptions into test cases: that antivirus tampering generates an alert, and that your EDR reliably links stage one to stage two.

The evasion is engineered against named products

SMOKE#SCREEN's fake Zoom update page auto-downloads after two seconds. That is not the consequential detail. The consequential one is that the operator stopped destroying Microsoft Defender and started quietly evading it. AV-tampering events are among the highest-fidelity alerts most SOCs own, because they are loud. An actor that leaves Defender running produces silence instead, and detection anchored to AV-disable telemetry has nothing to fire on.

Second engineered detail: a 180-second sleep between stages, chosen to fall outside Elastic EDR's event-correlation window. Read that as a disclosure about the tooling rather than about the malware. A correlation window is a configuration value that someone reverse-engineered and now treats as a known adversary parameter. So test it: benign stage-1 execution, a 180-second pause, then a stage-2 network callback. If the chain does not reassemble in the SIEM, the fix is a longer window or stateful behavioral chaining. Better learned on a Wednesday than during triage.

Why the terminal stage defeats artifact detection

Delivery is diversified across VBScript droppers, batch loaders and .NET executables. The end of the chain is a fully functional, signed ConnectWise ScreenConnect agent beaconing to attacker-controlled relay servers. Nothing here is unsigned and no hash is novel. The parent-process tree looks like IT remote support because it is IT remote support software. The prerequisite control is unglamorous and most organizations skip it: a tenant-level allowlist of approved RMM instance IDs and relay FQDNs. Without that list, helpdesk traffic and intruder traffic are indistinguishable, and the detections worth writing collapse into noise.

The same pattern, one platform over

XCSSET v40 makes the point on macOS. It has spread through infected Xcode projects since April 2026, affecting dozens of legitimate apps with thousands of users. It ships no C2 of its own. Instead it replaces Chrome's launch process with a wrapper that enables remote debugging, then abuses the Chrome DevTools Protocol to inject JavaScript, steal credentials and API tokens, tamper with MetaMask transactions, and run a fileless reverse shell through console messages. Google's Windows-side protections have not yet reached macOS. The C2 channel is a browser feature, so egress inspection sees Chrome doing Chrome things.

Where the reporting agrees and where it splits

Both bodies of reporting converge on mechanism: attackers operating inside sanctioned tooling rather than smuggling code past it. They diverge on ownership. Cyberpresso frames it as a detection-engineering problem, testable and tunable. The Hacker News frames the same class as an identity and authorization problem, pointing at phishing kits that ride genuine Microsoft authentication infrastructure so that look-alike-domain tooling never fires. Both readings are correct. They bill to different budgets: one buys correlation and RMM allowlists, the other buys Conditional Access and behavioral authorization.

A stack that asks whether a binary is known-bad has nothing to say about a signed support tool talking to an unapproved relay.

Timing baselines have to span both directions

One number pair from the reporting should reset behavioral baselining. Malicious marketplace extensions phoned home 4 to 5 seconds after activation. SMOKE#SCREEN waited 180 seconds. A window tuned tightly enough to catch the first misses the second, and a window loose enough to catch the second drowns in benign activity unless it is chained on behavior rather than time alone. Test both ends against the same detection content before declaring coverage.

What to do

  1. Run the 180-second correlation test this week: execute a benign stage-1, sleep 180 seconds, fire a stage-2 network callback, and confirm your SIEM and EDR still link the chain into one incident.

  2. Publish a tenant allowlist of approved RMM instance IDs and relay FQDNs before the next change window, then alert on any ScreenConnect agent connecting to a raw IP address, any process stopping WinDefend, and any Defender exclusion added for a broad path.

  3. Deploy macOS detections for Chrome launched with remote-debugging flags and unexpected wrappers in Chrome's launch path, and move Xcode-bearing developer Macs to tier-1 monitoring this quarter.

Removing the Package Does Not Evict This Attacker

Published package counts for this campaign disagree by more than four hundred, which is exactly why scoping by package list instead of by which hosts ran an install leaves the hooks in place.

The persistence path no scanner owns

Theft is not the differentiator in this campaign. The worm writes hooks into Claude Code and VS Code: hook and settings files, .vscode/tasks.json, workspace settings, extension configs. Execution resumes at the start of every later developer session while SCA tooling reports a clean lockfile. Microsoft's own description, relayed through AI Breakfast, is blunter. CLAUDE.md and .mcp.json survive package reinstalls and sit outside file-integrity and EDR baselines entirely. Gitignoring of these files is inconsistent, so drift from a known-good state stays invisible even in repos that get close review.

The counts disagree. Scope by host, not by package.

Three research vantage points produced three defensible numbers. The Hacker News cites 353 SafeDep-verified poisoned packages spreading from [email protected] across the Keyv and Cacheable namespaces. CyberScoop reports 440+ packages injected in under four hours from a hijacked GitHub maintainer account, and 860+ packages touched and 2 billion-plus combined monthly installs. CSO reporting says 400+ and appends the words "thus far." None of the three is wrong. They are snapshots of a campaign still moving, which makes any published package list a floor rather than a scope. The scoping question that holds up: which endpoints and runners executed an install during the window, and what those hosts could reach.

The credential class nobody rotates

Alongside npm, GitHub, AWS and CI credentials, the payload harvests AI configuration files and crypto wallets. Model provider API keys, MCP server configs and agent config files sit in developer home directories and container images with no owner, no expiry, no rotation schedule and no revocation trigger. They almost never appear in an enterprise secrets inventory. They are therefore absent from the rotation runbook currently in flight.

The convergent vector is instructions, not code

Separately from the worm, poisoned agent instruction files have been found in repositories. The path set is short and unguarded: AGENTS.md, CLAUDE.md, .cursor/rules, .github/copilot-instructions.md, .mcp.json, devcontainer definitions. SCA skips them because they are not dependencies. SAST skips them because there is no code to analyze. CODEOWNERS was written around source directories, so a change to one of these paths merges on a casual approval from whoever is on rotation. The payload is natural language, and the reviewer instinct (it's just docs) is the instinct being monetized.

A pull request touching one of those paths is functionally a code-execution request against whatever tool scope the agent holds. Blast radius is not the laptop. It is whatever that laptop can sign, publish or deploy through a live cloud session, an SSH agent, a kubeconfig, or a long-lived registry token in a dotfile.

Where the reports diverge, and why both fixes are needed

One set of reporting treats this as endpoint integrity: baseline the files, alert on modification by non-interactive processes. Another treats it as SDLC governance: put the paths under CODEOWNERS with mandatory security review. Same artifact class, described from opposite ends, because that class is simultaneously a persistence mechanism and an instruction channel. Fix one and the other stays open.

Every scanner in the pipeline inspects the code the agents write, and none of them inspect the files that tell those agents what to do.

What to do

  1. Baseline and diff agent configuration paths across developer endpoints and build agents this week — Claude Code hook and settings files, .vscode/tasks.json, workspace settings, .mcp.json — and alert on any modification by a non-interactive parent process.

  2. Add every agent instruction and MCP definition path to CODEOWNERS with mandatory security review by month end, plus a repo-event alert on diffs from first-time or external contributors.

  3. Add model provider API keys, MCP server configs and agent credential files to the standing secrets-rotation program this quarter, with named owners and expiry dates.

Three Exposures With Nothing to Patch

One was closed by rearchitecting a hyperscaler, one will never be fully fixed by its vendor, and one is a trust boundary nobody ever drew — and none of the three produce a change ticket.

Congress moved the Salt Typhoon post-mortem from devices to wiring

A US House committee concluded that telecom carriers connected their systems to data centers and related infrastructure in a way that exposed them, and that those connections potentially opened the door to Salt Typhoon, the campaign that breached several US mobile carriers roughly two years ago. That is Bloomberg's reporting. The committee is not naming an unpatched appliance. It is naming interconnection architecture, meaning the trust relationships built between carrier core networks and adjacent compute facilities. Those relationships have always been the least-examined part of carrier engineering, because they get approved once, at circuit turn-up, by staff who have moved on by the next audit cycle.

Calibrate honestly: this is a congressional finding characterizing a plausible access path, not a forensic attribution of initial access. It changes the work anyway, because the exposure is inherited. Consuming carrier private interconnect, sitting in a colo that peers with a carrier, or terminating a cloud on-ramp inside a shared facility each leaves a path whose far side was assumed trusted at turn-up and never re-reviewed. In ATT&CK terms the activity is lateral movement and internal traffic relay across a peering boundary. Where NetFlow collection stops at the internet edge, coverage for that scenario is zero.

TP-Link Omada: the structural failure of severity triage

Forescout chained 15 new zero-touch-provisioning flaws with CVE-2025-7850 and CVE-2025-7851. The result is an unauthenticated external attacker with no network access winning a race condition during cloud device adoption, seizing the cloud controller account, and reaching root-level command execution across every managed router, switch and access point. Firewalls, VPNs and segmentation of the devices do not mitigate it, because the compromise happens inside the vendor's cloud adoption flow.

The aggregation is the part worth reading twice. Individually low-severity flaws combined into a critical path, which is the same argument against CVSS-only triage that has been made after every provisioning-chain writeup for years. TP-Link has stated in writing that structural fixes may slip to late 2026 and that some items will never be fixed. That moves this off the patch backlog and into a documented risk exception with compensating controls attached.

Cosmos DB: the fix was a platform redesign

Microsoft closed a cross-tenant path through the Cosmos DB Gremlin API by redesigning the platform rather than shipping a patch. The distinction is the finding. An implementation bug gets a patch. An architectural isolation failure gets a rearchitecture. Secondary and legacy protocol APIs on hyperscaler managed services keep surfacing as the weak point in multi-tenant isolation, because they are bolted onto a model built for the primary API, and this one reportedly reached Microsoft's own internal services.

Publicly, two independent reports agree on the mechanism and the remediation approach. Neither establishes that exploitation occurred. Remediated is not the same as unexploited, which sets the ask precisely: an exploitation attestation from the provider, plus log-retention guidance for the exposure window. Notification-clock analysis depends on evidence nobody outside Microsoft currently holds.

What the three share

In each case the failing control is a trust assumption rather than a version number, and the missing artifact is evidence rather than a fix. The change queue has never handled items without a version number well. These belong on the risk register with named owners and expiry dates.

Concentration risk and inherited trust do not get patched. They get bounded, attested, and reported.

What to do

  1. Enforce MFA on all TP-Link Omada cloud controller accounts, segment controller management traffic, and disable cloud-based zero-touch adoption outside explicit change windows, then file a formal vendor risk exception citing the vendor's own late-2026 and won't-fix statements.

  2. Produce an interconnect inventory this quarter covering cross-connects, private peering, cloud on-ramps and MPLS/VRF attachments, labeling each with its current trust assumption and monitoring status.

  3. Request written exploitation attestation and log-retention guidance from Microsoft for the Cosmos DB Gremlin exposure window this quarter, and disable unused Cosmos protocol APIs across all instances.

The bottom line

Every payload that mattered in this reporting was already authorized: a signed remote-support tool, a browser's own debugging channel, a configuration file your reviewers classify as documentation, a vendor's cloud provisioning flow. That breaks the assumption underneath artifact-centric defense — that hostile execution looks different from sanctioned execution. It does not, and severity scores will not tell you which combination of low-rated flaws becomes fleet-wide root. Build the authorization inventory this week: name every tool, agent identity and management console permitted to execute in your developer and administrative planes, and alert on everything outside that list.