The Rotation You Never Scheduled
Two unrelated disclosures put the same class of secret outside your vault, and the cheap question is which credentials your build hosts and prompt logs can still hand over today.
Forty minutes is a full harvest window
Dependency resolution is automated, so malicious availability converts to victims at machine speed. Any pipeline running an unpinned install in that window pulled the poisoned build with no human in the loop. That is how 40 minutes reaches thousands of organizations. The stealer runs once, inside a build, on a host that legitimately holds cloud access keys, SSH keys, Kubernetes service-account tokens and database passwords. It leaves no beacon. No alerts since March is not evidence of absence. Silence is the design.
Scope is transitive, reporting is incomplete
The Hacker News ties this compromise to the earlier Trivy hack, which makes the discovered scope a floor rather than a ceiling. Every project, container image and release pipeline that consumed Trivy, or artifacts built by pipelines running it, belongs in the same query as the direct installs.
Missing from the reporting: no CVE, no CVSS score, no affected version strings, no publish timestamps and no indicators of compromise. Lockfile and build-log queries need the two malicious version identifiers. Until the project advisory publishes them, scope by time window and host role: which runners resolved that package family in March, and what those runners could reach.
The same secrets, a second door
Separately, AI Breakfast reports that researchers extracted encrypted reasoning traces from models at OpenAI, Anthropic and Google, and that those traces held real passwords and live API keys. A weaker model can decode a stronger model's hidden reasoning. Spreading workloads across providers bought resilience against an outage, not protection against a defect class all three share.
Secret scanning at most shops covers repositories and CI logs. It does not cover prompt and completion logs, agent transcripts, or vendor-side trace retention, which is where these credentials came to rest.
Where the two readings disagree
The two scopes differ enormously in cost. The supply-chain framing is bounded: the March window, the hosts that resolved the package, the keys those hosts could reach. The AI-exposure framing argues for rotating every secret that plausibly transited an LLM prompt, an agent scratchpad or a coding-assistant context in the last twelve months. Unbounded rotation proposals die in change control.
Rotate on evidence first, then let a measurement decide the size of the second wave.
Run the bounded rotation now. In parallel, point secret scanning at prompt and transcript stores and count what it finds. Live secrets per thousand prompts converts an unbounded proposal into a funded one, and it justifies retiring long-lived static secrets in favour of short-lived tokens and workload identity federation.
One design note for review
An AI gateway is a credential aggregation point by construction: it holds keys for every downstream model and cloud account. Poisoning that package is the highest-leverage move available in an AI stack, which plausibly explains the target. Treat gateway hosts as tier-0 and broker downstream access with short-lived per-caller tokens instead of stored provider keys.
What to do
Query build logs, lockfiles and artifact caches for any LiteLLM resolution during March 2026, then rotate every credential reachable from those runners within 72 hours.
Point secret scanning at prompt, completion and agent-transcript stores this sprint and report the live-secret count before committing to a twelve-month rotation scope.
Mirror PyPI through a private registry with a 24-72 hour quarantine on new releases and hash pinning for AI middleware this quarter.