Security & Threat Intelligence

The Watch

The Signal

Z.ai's open-weights release ships with a public map of 2,436 bugs across 269 projects.

Adversaries got the ledger on the same day defenders did. The named code lives in container base images and vendored source, and in appliance firmware, which is precisely the layer the dependency scanner in your pipeline never reads. Some of the flagged code dates to 1981.

In Play

  1. Rails Secrets Flaw Exploited in the Wild

    Risky Business reports that CVE-2026-66066, nicknamed KindaRails2Shell, is being exploited against Ruby on Rails apps running the default Active Storage configuration. The flaw needs no authentication, and the payoff is the application's secret_key_base and stored credentials rather than a shell. That means forged sessions, database access and cloud IAM keys on any app patched late. Rotation closes this exposure, not the version bump.

    Ask Clarity
    Try
  2. ClickFix Splits Into Three Variants

    Risky Business documents ClickFix forking three ways: ClickExfil repurposes the paste-to-fix lure for pure data theft, TerminalFix installs a reverse-tunnel implant through terminal commands, and CRPx0 ransomware now arrives through ClickFix campaigns. Microsoft spotted the TerminalFix variant. Your rules and awareness decks almost certainly still describe the original clipboard-to-Run-dialog lure, and the exfil-only variant leaves no malware artifact to find.

    Ask Clarity
    Try
  3. Agent Credentials Nobody Has Inventoried

    Uber disclosed that more than 70% of its pull requests now come from agents running 3,600-plus skills through 1,000-plus MCP tools, the interface layer between agents and internal systems. Risky Business separately counted 155 abandoned MCP servers on public marketplaces that an attacker can take over. Each of those paths carries a production credential, and tool-call telemetry rarely reaches the SIEM. You cannot revoke what no register lists.

    Ask Clarity
    Try
  4. Open Weights Ship With a 2,436-Bug Ledger

    Z.ai published GLM-5.3's open weights after the model found 2,436 vulnerabilities across 269 open source projects, some in code dating to 1981, according to Z.ai's own disclosure. The findings now sit in a public ledger that works equally well as a target list. Most of those projects live inside container base images, vendored source and appliance firmware, which is exactly where software composition analysis is blindest.

    Ask Clarity
    Try
  5. Security Vendor Viability and Compute Custody

    Hunterbrook Media published a critical report on Tenable while Hunterbrook Capital disclosed a short position in the same stock. The same coverage notes CoreWeave carrying $35B of on-balance-sheet debt at 13% yields, and Nvidia extending roughly $230B in lease backstops and residual-value support across nominally independent GPU hosts. If your exposure data, model weights or inference logs sit with those counterparties, the renewal question is custody under distress rather than uptime.

    Ask Clarity
    Try

Deep Dives

Patching CVE-2026-66066 Leaves the Intruder Logged In

The disclosed value is a signing key, so every session cookie your application trusts can be minted by whoever read it, and the order you rotate in decides whether they lose access.

What the disclosed key buys

Rails derives cookie signing and encryption from secret_key_base. An attacker who reads it does not need the vulnerability again. They can mint session cookies the application accepts as authentic, privileged accounts included, and unwrap whatever the app kept in its encrypted credential store. Risky Business's framing is the one to brief upward: the attacker gets what a shell would have given them without creating a process, a child shell or a beacon that endpoint tooling is tuned to catch.

Patched and exposed are separate facts. Triage queues record the first. A host that took the early-August fix but had its keys read in mid-August looks, from the attacker's side, identical to one still running vulnerable code. The access arrives as ordinary authenticated traffic through the application's own front door. No payload lands on disk for a later scan to find.


Sequence the rotation

One secret regenerates all the others, so order decides whether the work holds.

  1. Inventory every Rails application using Active Storage, including internal apps that quietly terminate public traffic behind a load balancer, and confirm the early-August fix on each one.
  2. Rotate secret_key_base and the signed and encrypted cookie keys first, then invalidate sessions fleet-wide. Rotating downstream credentials while cookie forgery still works hands an intruder the replacements from an authenticated session.
  3. Rotate database credentials, cloud IAM keys and third-party API tokens held by anything internet-facing since 1 August. Cloud IAM keys are the ones most likely to have unknown consumers. Teams that skip the broken-jobs check find out at 3am.
  4. Hunt authentication logs for sessions and tokens issued before rotation and still in use, and for the same credential appearing from an unfamiliar network.

Step 3 depends on a complete list of what holds a credential. Few organisations have one.


The pattern across these items

McKesson shows the same shape. The company confirmed an intrusion sourced from a third-party application, with the extortion crew claiming hundreds of millions of customer and patient records. That breach happened inside a vendor integration's token scope. Bring-your-own-key agent tooling leaves long-lived Anthropic, OpenAI and Google API keys sitting in local secret stores, the artifact class commodity infostealers already enumerate. Every MCP endpoint an agent calls is an authenticated path into a production system whose credential use is typically unlogged.

The sources pull against each other, which is instructive. Risky Business treats rotation as the control that closes a secrets-disclosure bug, and operationally that holds. The agent and AI-tooling reporting shows the rotation inventory is incomplete by construction: credentials have migrated into config stores, delegated grants and desktop secret vaults that no register covers. The Rails work is the urgent task and a rehearsal at once. The list built to answer which secrets did this app hold is the list needed the next time a disclosure hands someone a key.

Rotation and session invalidation close a secrets-disclosure bug. A version number records the patch date.

What to do

  1. Inventory every Rails application using Active Storage, confirm the early-August patch, then rotate secret_key_base and the signed and encrypted cookie keys and invalidate all sessions.

  2. Rotate database credentials, cloud IAM keys and third-party API tokens held by any app exposed since 1 August, then hunt authentication logs for pre-rotation sessions still in use.

  3. Assign a named owner for application-secret rotation this quarter and publish a maximum time-to-rotate per secret class.

Your Agent Layer Is a Credential Plane With No Register

Production tokens now sit behind unsigned marketplace prompts, abandoned tool servers and a menu-bar toggle, and every control you would show an auditor still sees an approved application.

Ollama v0.33 registers as a gateway provider inside Claude Desktop

Ollama v0.33 ships a Claude Desktop integration that registers as a third-party gateway provider. One switch in the Ollama menu bar puts a user's entire local model library into Claude Desktop's model picker, Qwen, DeepSeek, Kimi and GLM included, with inference running on user hardware or through Ollama Cloud. A CASB logs an approved application, and an egress proxy logs expected traffic or nothing at all. DLP has no inspection point, because the prompt never leaves the host. The switch is also fully reversible, which is what makes a quarterly attestation worthless against it.

Where the four paths diverge from what controls log

PathWhat your controls seeWhat actually happensDetection hook
Ollama v0.33 in Claude DesktopSanctioned app, sanctioned domainInference on local hardware or Ollama Cloud against unreviewed weightsollama process, local listener on port 11434, Claude Desktop config diffs
Community prompt catalogue (170 prompts)Markdown files in a public repoExecutable text inheriting the host agent's full OAuth scope, contributed by pull request with no review gateEgress to the catalogue's JSON and raw feeds; anomalous tool-call sequences
155 abandoned MCP serversA registered integrationAttacker-controllable tool endpoint inside agent workflowsRegistry diff; agent reaching outside its declared scope
Codex served from chatgpt.com/codexOne allowed hostnameSanctioned agent traffic and consumer accounts share the same FQDNTenant restriction plus path-level inspection at egress

The VM boundary did not hold

Trail of Bits demonstrated cyber-capable agents routinely escaping QEMU, KVM, libslirp and CUPS. Any agent design that shows an auditor a virtual machine boundary as the control has lost that argument. What remains is egress filtering around an execution host treated as an untrusted network segment. The publishing side failed independently in the same month: a compromised OpenAI-related npm package reached users through an unsecured publish workflow rather than a stolen laptop.

Both the benchmarks and the deployment numbers hold

Uber's disclosure describes agents as production infrastructure: 30,000-plus executions a day, a context graph of 24M nodes and 80M edges spanning 30-plus internal systems, agentic requests up 9.4x in six months. Two independent benchmarks put whole-repository migrations at a 5.4% clean pass rate and document a discovery-reliability gap across 507 stateful business workflows. Both readings are true, and read together they name the exposure: agents generate change at production volume while completing long-horizon work unreliably, and shared service accounts mean nobody can reconstruct which agent made which write.

Identity issuance is an enrolment record, and nothing in that record constrains what a delegated token does at 2am. Okta's argument that agents now touch every system is architecturally right. SSO, SCIM and RBAC were built for humans: SCIM disables the user and leaves the agent's grants and memory intact, and RBAC hands the agent the human's full scope by default.

Agents absent from the identity register hold live grants that no revocation workflow touches.

What to do

  1. Run an endpoint sweep for ollama processes, local listeners on port 11434, Claude Desktop configuration changes and multi-gigabyte pulls from public model hubs, in report-only mode for two weeks.

  2. Build a register of every MCP server, agent skill and assistant holding production credentials this quarter — owner, scopes, auth method, egress policy, log destination — and quarantine anything unregistered.

  3. Set third-party app consent to admin-approval-required in Entra ID and Google Workspace and strip wildcard scopes from agent clients before the end of the quarter.

The 269-Project Diff Your Composition Scanner Cannot Run

One model's findings were published as a ledger, handing defenders and adversaries the same map on the same day, and the code it names hides in layers dependency tooling never reads.

The ledger is the security consequence

Z.ai's own report calls GLM-5.3's exploitation skill emergent: as post-training scaled, the capability grew faster than the lab expected. They hardened it and released the weights anyway. The consequence is the artifact left behind, a public disclosure ledger of 2,436 findings across 269 projects. Disclosure almost never coincides with universal patch availability. For that interval the ledger serves as a remediation roadmap for defenders and a pre-built N-day target list for everyone else, with patch-diffing automatable on both sides.

Where 1981-era code actually lives

The oldest affected code predates most asset inventories, and that matters mechanically. Ancient C utilities, parsers and daemons survive in three places software composition analysis reads poorly or not at all: container base image layers, vendored or statically linked source copied into a repo years ago, and appliance and OT firmware that cannot be opened. A clean SCA report means the tool found no manifest entry. Absence of the code is a separate claim requiring separate evidence. So the diff runs against four inventories, not one. The matches with no upstream maintainer end the exercise with nothing to apply.


The economics moved under the third-party patch SLA

Miessler dates the collapse of the skill floor to end of 2026 into early 2027, when unrestricted open-weight models put frontier-quality offensive capability into hands with no offensive experience. Separately, near-frontier Chinese open weights are landing at what the reporting on Tencent's Hy4 and Z.ai calls superlow hosted cost. Cost collapse is the strongest predictor of adoption, on both sides of the fence.

The practical read is narrow and defensible. Finding a memory-safety bug in an unmaintained parser costs GPU hours, with no API rate limit in the path and no vendor abuse telemetry watching it. Patch SLAs for third-party components were baselined against a longer time-to-exploit for exactly that class of dependency. The change is confined to the unmaintained tail; first-party, well-maintained software is unaffected.

The distribution channel is the concentration risk

These weights ship through Hugging Face. Publicly: nothing. Reported: CNBC's sources say NVIDIA has agreed to buy the hub for $12.9B, unconfirmed by either company, so treat it as a reported deal rather than a settled fact. Ownership matters less than what the reporting makes visible. The hub is an unauthenticated distribution point for artifacts that execute code on load, with no signing infrastructure and no SBOM analogue, and it appears on almost no critical-vendor list. The controls are identical whether or not the deal closes: an internal mirror, allowlisted repositories, digest pinning, safetensors-only, and trust_remote_code off by default.

A published ledger of 2,436 findings is a remediation plan and a target list, released on the same day.

What to do

  1. Pull the published disclosure ledger and diff all 269 projects against your SBOM, container base image layers, vendored source and appliance firmware inventory.

  2. Assign a compensating control — virtual patching, egress restriction or removal — to every matched dependency with no upstream maintainer within 30 days.

  3. Rebaseline the patch SLA for unmaintained third-party components this quarter and take the revised time-to-exploit assumption to the risk committee with the ledger as evidence.

The bottom line

These items share a mechanism rather than a vendor: what attackers take is the key, and keys have migrated into layers no register covers — application config, delegated agent grants, marketplace tooling, a partner's integration. A fix version closes nothing until the credential it exposed is rotated and the session it minted is cut, and that breaks the assumption behind your remediation metrics. Expect the next several disclosures to hand someone a secret rather than a shell. Pick the one credential-issuing surface your team cannot enumerate in an hour, make it enumerable, and publish a time-to-revoke you can actually meet.