GCS Threat Briefing
Threat Landscape

Verified, Signed and Malicious

G
Jonathan Garzon
Founder & CEO, Garzon Cyber Solutions
August 2026 · 6 min read
GCS Threat Briefing cover: Verified, Signed and Malicious. A widely used npm package went from a quiet commit to a poisoned release in 33 minutes, with provenance and signature both checking out, shown with a large faded numeral 33 in the Garzon Cyber Solutions brand colours.

On 4 August 2026 a compromise of one of the most widely used packages in the JavaScript ecosystem took thirty-three minutes to go from a quiet commit to a published release built to harvest credentials. The detail that should concern boards is not the malware. It is that the two signals most organisations rely on to prove software integrity both returned green.

What happened

At 09:02 UTC, a commit landed in the keyv repository adding two files and one line to the package manifest. Keyv is a caching library pulled in transitively across the Node.js ecosystem, which is to say most organisations running it did not choose it and do not know they have it. The library code itself was untouched, which is precisely what kept the change small enough to skim past in review.

Two minutes later, a second commit planted five configuration files wiring the payload to run when a developer opens the project in an editor or starts an AI coding agent session inside it. Nineteen minutes after that, a test file that pointed directly at the new install script was quietly deleted. At approximately 09:35 the poisoned version was published to the registry under the default tag. Four minutes later, the payload was staged across all nineteen packages in the same workspace, ready for the next routine release.

The first community issue was filed at 09:49. Detection came from the ecosystem, not from the release pipeline.

Timeline infographic of the keyv npm compromise on 4 August 2026, times in UTC. At 09:02 the payload is committed, adding two files and one manifest line with library code untouched. At 09:04 IDE and agent hooks are planted in a commit carrying a valid signature with the author spoofed to a bot. At 09:23 the test pointing at the new install script is deleted. At 09:35 the package is published to npm under the latest tag with valid build provenance. At 09:39 the payload is staged across nineteen packages. At 09:49 the first community issue is filed. At 10:10 independent analysis is published, with no statement from the maintainer, npm or GitHub at the reporting cutoff.
Thirty-three minutes from first commit to published package, and sixty-eight to the first independent analysis. Detection came from the community roughly fifteen minutes after publication. Source: SafeDep commit-level reconstruction, corroborated by The Hacker News.
33minutes from first commit to published release
353poisoned versions verified, across 79 package names
19sibling packages staged for a follow-up release

Researchers disagree on the total footprint. One firm verified 353 poisoned versions across 79 package names and put the wider figure at 442 versions across 353 names. Another counted at least 868 packages across 1,381 versions. No complete public list existed at the reporting cutoff against which the larger totals could be checked, so they should be treated as reported rather than established. All of these figures count malicious artefacts, not victim systems. They establish scale, not impact.

Why this one is different

Most supply chain incidents have a single entry point: you installed the thing, so you are exposed. This one had two, and the second is the reason it deserves board attention.

Alongside the install script, the attacker committed an editor task configured to run on folder open and an AI coding agent hook configured to run at session start. The two files were cross-wired, each pointing at a script in the other’s directory, so reading either one in isolation never revealed a self-contained loop. The task was labelled “Environment Setup” to survive a glance.

The people most likely to open that repository were the ones doing their jobs properly: engineers who cloned it to read the source once the compromise went public.

Modern editors and coding agents do apply workspace trust prompts, so this is not unconditional execution in every environment. But a trust prompt is a control that depends entirely on an engineer declining a routine dialogue at speed, on a repository they cloned deliberately. That is a weak place to put your last line of defence.

Infographic comparing two infection routes. Route one, the install path: a preinstall script runs attacker code before a single line of your application executes, exposing any laptop or CI runner that resolved the poisoned version including as a deep transitive dependency. Route two, the open-the-repo path: committed IDE and AI agent config files run on folder open with no install step required, exposing anyone who cloned the repository to read the source, then opened it and trusted the workspace when prompted. A closing panel notes that build provenance was valid because poisoned source passed through the real pipeline, that the commit signature was valid because platforms sign what their API is told to sign, and that neither answers whether the input to the build was safe.
Lockfile scanning addresses the first route only. Repository configuration files are now an execution surface in their own right.

The assurance signals that returned green

The poisoned release carried valid build provenance, because it passed through the project’s genuine automated release workflow. The attestation was accurate. It recorded where the artefact was built and by which pipeline. It could not, and was never designed to, establish that the source entering that pipeline deserved trust.

Likewise, the commit that planted the editor hooks displayed a valid platform signature, with its author field set to an automation account and a commit message reading “chore: update config”. Platforms sign commits created through their own interfaces, and the caller supplies the author name as free text. A write credential is therefore sufficient to produce a verified commit attributed to a bot.

Two controls that most organisations treat as proof of integrity were both technically correct and both operationally useless in this incident. That is the finding worth carrying into your next risk review.

Not an isolated technique

This is not a one-off. Researchers documented the same configuration-file execution technique, the same setup script filename and the same runtime download behaviour in a compromise of a Python machine learning package in April 2026, and have placed the August activity within an established malware family that has repeatedly targeted package registries this year.

The pattern is consistent and it is commercially significant: attackers have moved up the stack, from poisoning the artefact you download to poisoning the environment in which your engineers and your AI tooling work. Config files that execute commands are the new payload delivery mechanism, and almost no organisation currently governs them.

Where the exposure lands

Frame this as credential exposure rather than as a malware event, and the commercial picture becomes clear. Four exposures follow, in the order a UK board is likely to meet them.

Regulatory. Under NIS2 and DORA, supply chain and ICT third-party risk management are explicit, auditable obligations with board-level accountability. “We consumed a poisoned dependency and could not evidence which builds ran it” is not a defensible position in front of a supervisor. UK organisations in scope through European operations or customers carry the same exposure, and the Cyber Security and Resilience Bill will extend comparable duties to a wider UK population.

Contractual. Enterprise customers increasingly require software bill of materials evidence and defined incident notification windows. An inability to answer “did this run in your pipeline, and when” converts a technical incident into a commercial one within days.

Financial. The expensive part of this class of incident is rarely the removal. It is the credential rotation programme, the forced pause on releases while the pipeline is cleaned, and the customer assurance exercise that follows.

Governance. Repository configuration files that execute commands are a new category of executable asset. Most change control processes do not treat them as code. That gap is now an audit finding waiting to be written.

What leaders should do now

Six-step response plan for the first 48 hours. One, search lockfiles rather than manifests, because resolved versions are the only reliable record of what ran. Two, freeze releases before cleaning, revoking publishing credentials so a routine release cannot fire. Three, remove the watcher then rotate, because the malware reportedly watches for revocation and order matters. Four, treat CI as compromised too, rotating registry, source control, cloud and secrets credentials. Five, disable lifecycle scripts, noting newer clients block unapproved install scripts while older ones do not. Six, govern agent config as code, because repository config files run commands and should be reviewed like build scripts.
Sequence matters in this incident. Responders report the malware installs a watcher that triggers on token revocation, so removing it precedes rotation.

Three points bear emphasis. First, search resolved lockfile versions, not declared ranges: registry tags changed hour by hour during the incident, so a cached list of current tags is misleading in both directions. Second, revoke publishing credentials and freeze the release workflow before cleaning the repository, so that a routine release cannot fire mid-remediation. Third, if an affected version executed on a workstation or a build runner, treat that environment as credential-exposed and rotate accordingly.

Three questions for the board

1. If a widely used dependency were poisoned tomorrow, how long would it take us to answer, with evidence, which builds and which machines executed it?

2. Which of our integrity controls actually validate the input to a build, as opposed to attesting to the build process itself?

3. Who owns the security review of repository configuration that our editors and AI coding agents execute automatically?

If any of the three cannot be answered clearly in a single meeting, the gap is not in the tooling. It is in the assurance model.

The strategic takeaway

Most organisations have optimised for proving where an artefact was built. Very few have invested in proving that what went into the build deserved trust. Those are different problems, and this incident demonstrated that only one of them is solved.

The organisations that handle the next one well will not be the ones with the most scanning tools. They will be the ones that can evidence, on demand and within hours, exactly what ran in their pipeline and on whose machine. That capability is a commercial asset in a security questionnaire, a regulatory submission and a diligence process alike.

Could you evidence what ran in your pipeline?

A focused conversation about software supply chain assurance that stands up to a regulator, an auditor and an enterprise customer questionnaire. If you cannot currently evidence which dependencies ran in your builds, that is where we start.

Start the Conversation →

Sources: SafeDep, commit-level analysis of the keyv 6.0.0 compromise, 4 August 2026. The Hacker News, reporting on the Keyv-linked npm worm, 4 August 2026. Datadog Security Labs, analysis of the npm worm affecting popular packages, 4 August 2026. Aikido Security, reporting on the keyv supply chain attack, 4 August 2026. Socket, remediation guidance on credential exposure. Figures reported by different researchers differ and are labelled accordingly above. No public incident statement from the maintainer, npm or GitHub had been issued at the reporting cutoff. Attribution is unresolved: the evidence is consistent with a stolen credential, and the maintainer should be treated as a victim pending their own account. The operational response is identical either way. GCS Threat Briefings translate live incident intelligence into the governance and commercial decisions that boards and security leaders need to make.

#SupplyChainSecurity #CyberSecurity #DevSecOps #NIS2 #DORA #CISO #Governance #GarzonCyberSolutions

Garzon Cyber Solutions delivers cybersecurity advisory, compliance certification, and specialist technology recruitment as one integrated capability. We are a young firm, the founder personally runs the work, and our perspective comes from a career spent inside cybersecurity and compliance across the sales, marketing and technical sides of the industry.