Thought Leadership 10 min read · May 2026

# The new attack surface is agentic infrastructure

GitHub Actions, Claude Code hooks, VS Code task runners, autonomous terminal agents — these are no longer developer tools. They are execution infrastructure. And execution infrastructure creates new attack surfaces. The recent compromises in the npm and developer-tooling ecosystem are not the story; they are evidence of a deeper shift the security and governance model has not caught up to.

By Theo Valmis · Published May 2026 · Updated May 2026

We are entering a new infrastructure era in which AI systems are no longer passive assistants generating text or code on request. They execute tools. They trigger workflows. They modify repositories, run terminal commands, persist configuration, invoke CI/CD systems, orchestrate other agents, and maintain long-running operational state. The shift is not a productivity story. It is an infrastructure story.

The result is that the attack surface is no longer just software. The attack surface is now the execution layer surrounding AI agents — the hooks, task runners, automation pipelines, orchestration graphs, and persistence mechanisms that let agents act between human turns.

This changes the security and governance model entirely. The recent malware campaigns that propagated through npm and persisted by writing themselves into Claude Code hooks, VS Code task configurations, and downstream automation paths are the surface symptom. The underlying condition is that AI tooling has crossed from productivity software into executable infrastructure, and the controls that govern executable infrastructure have not crossed with it.

## The old model: tools assisted humans

For most of the modern engineering era, developer tooling was deterministic, human-triggered, and reasonably isolated. Editors edited files when a human typed. Linters ran when a human invoked them or when a CI pipeline triggered. Package managers installed dependencies on explicit command. CI systems ran when a human pushed a commit or merged a pull request.

The compromise scope of any single tool was narrow because:

- Humans initiated execution. Most actions traced back to a deliberate keystroke, command, or merge.
- Workflows were explicit. Build steps, deploy steps, and test runs were described in version-controlled files that a human had reviewed.
- Persistence mechanisms were known. The set of places code could install itself was small and inspectable: PATH, shell rc files, system services, CI configurations, package registries.
- Observability matched execution. If something ran, it ran because a human or a known pipeline scheduled it.

Supply-chain attacks existed in this world, but the threat model assumed a human or a deterministic pipeline as the trigger. The defensive posture matched: sign artifacts, verify checksums, restrict registry sources, harden CI runners. The trust boundary was clear because the execution boundary was clear.

## The new model: tools execute autonomously

Modern AI-assisted development changes the execution model in ways that are easy to underestimate from inside it. Claude Code hooks fire on tool calls and prompt submissions. GitHub Actions workflows invoke models. Cursor and Windsurf agents drive multi-step edits without per-action human approval. Terminal copilots execute shell commands as a default behavior. Autonomous remediation loops attempt fixes, run tests, and retry. Multi-agent orchestration graphs chain decisions across systems.

The system evolves from human using tool to infrastructure invoking infrastructure. That is the paradigm shift.

Execution under this model has new properties:

- Delegated. A human authorized the agent once. The agent now decides which actions to perform within that authorization window.
- Persistent. Hooks, settings files, MCP server configurations, and agent skill definitions remain active across sessions and survive the original prompt that created them.
- Chained. One agent invokes another. One tool call triggers another. One workflow emits an event that wakes another workflow.
- Partially opaque. The exact sequence of actions an agent will take is not fully knowable in advance and is sometimes not fully knowable in retrospect either.
- Continuously running. Long-running agents, scheduled runs, and event-driven loops mean execution is no longer a discrete event keyed to a human action.

None of these properties make the tooling worse; they are exactly what makes agentic development valuable. But they break every assumption the old model relied on for narrow compromise scope.

## Why the recent attacks matter

The recent compromises through the npm ecosystem and developer-tooling supply chain are important not because the malware was novel, but because of where it chose to persist. The infected packages did not stop at executing code at install time. They wrote themselves into the execution surfaces surrounding AI agents and editors: Claude Code settings, VS Code task definitions, automation paths invoked by extensions, and downstream package-manager hooks.

Reporting and post-incident writeups across the ecosystem — including GitHub's own security advisory infrastructure, GitHub Security Lab coverage of supply-chain campaigns, and OpenSSF's tracking of malicious packages — describe a consistent pattern. The compromise targeted the orchestration layer itself, not just the application code that depended on it.

That is the critical conceptual jump. The persistence layer of choice was no longer the binary or the package; it was the developer's execution fabric. Once installed, the malware did not need a fresh invocation to act — it inherited the agent's authority and ran whenever the agent ran.

That is what makes this incident class structurally different from the npm and PyPI compromises of the prior decade. The attack used the agent's execution surface as both the host and the trigger. The agent was not malicious. The agent was the multiplier.

The conceptual shift: Traditional supply-chain attacks compromise an artifact. Agentic supply-chain attacks compromise the execution fabric that artifacts authorize. The blast radius scales with the agent's authority, not with the package's footprint.

## Agentic infrastructure creates hidden execution paths

The deeper problem the attacks expose is that agentic infrastructure creates execution paths that no inventory tool, security scanner, or code review process is currently designed to enumerate.

A modern repository is no longer just code plus CI. It is a layered system whose components touch and authorize each other in ways that are increasingly hard to draw on a single diagram.

What a modern agentic repository actually contains
01
Application code
The shipped product. Reviewed in pull requests, scanned by SAST tools, covered by tests. This is the part the old security model was designed to protect.
02
Prompts and instructions
CLAUDE.md, AGENTS.md, repo-local system prompts, skill definitions. These shape what agents do but are rarely reviewed as security artifacts. A modified instruction file can redirect agent behavior without changing any application code.
03
Hooks and task runners
Claude Code hooks, VS Code tasks, editor extensions with execute permissions, pre-commit and post-merge scripts. These fire automatically on developer actions and inherit the developer's authority.
04
Agent memory and persistent state
Long-term memory stores, vector databases, progress files, agent checkpoints. They carry information forward across sessions and across agents. They are also writable persistence surfaces.
05
Execution policies
Tool-use allowlists, MCP server configurations, automated approval rules, network policies, sandbox toggles. These define what an agent is allowed to invoke; they are the closest existing analog to a governance layer.
06
Orchestration graphs
Multi-agent workflows, sub-agent invocation patterns, scheduled automation, event-driven loops. The graph itself is infrastructure: which agent can call which, under what condition, with what authority.
07
Automation metadata
CI workflows that invoke models, deployment pipelines that include agent steps, webhook integrations that trigger autonomous responses. These were once "just CI" but increasingly contain execution authority delegated to non-deterministic systems.

Every one of these surfaces is an execution path. Every one of them can persist. Most of them sit outside the review processes that govern application code. And every one of them is a place that a compromise — or simply an unintended agent action — can land.

This massively expands operational complexity. It also shifts where the boundary of "the system" sits. The boundary used to be the deployed binary. It now extends backward into the development fabric itself.

## The governance gap

Current AI discourse focuses heavily on models, prompts, benchmarks, hallucinations, and memory. Those are real concerns. But for teams operating agentic infrastructure, the real operational problem is execution governance — and very little of the AI conversation is about that.

Execution governance asks a set of questions the productivity-tooling era never had to answer:

- What is allowed to execute? Which tools, which hooks, which sub-agents can run, and from which contexts?
- Under which invariants? What architectural rules and security boundaries must any execution respect?
- Which decisions propagate downstream? When an agent makes a choice in one place, where else does that choice now apply?
- What persists after generation? Which artifacts — hooks, skills, memories, settings — survive the agent session and act as new execution surfaces?
- Which automation inherits governance? When agent A invokes agent B, do the constraints on A bind B as well? If not, why not?
- Which actions require deterministic verification? Where is it acceptable for an LLM to be the only check, and where does a downstream operation require a constraint resolver that does not run on a probability distribution?

None of these questions are answered by model quality or prompt engineering. They are infrastructure questions, and they require infrastructure-level answers.

Governance answers the question security cannot: should this execution path exist at all?

## Security is not enough

The distinction between security and governance is important enough to make explicit, because they are often used as if they were the same thing. They are not.

Security asks
Is this malicious or vulnerable?
Is this package compromised? Has this artifact been tampered with? Does this binary match its source? Does this CI runner have the minimum required privileges? Security is fundamentally a verification problem about properties of artifacts and processes.
Governance asks
Should this execution path exist at all?
Should this agent have authority to perform this action? Does this automation violate an architectural invariant? Does the chain of delegations through which this command arrived match what was actually approved? Governance is a constraint problem about authority and intent.

A non-malicious agent can violate architectural intent. A signed, attested, fully provenance-tracked package can still be wired into a hook that should not exist. A correctly configured CI runner can execute a workflow whose authority chain was never approved. None of these failures are security failures in the traditional sense. All of them are governance failures.

Supply-chain security frameworks — SLSA, Sigstore, OpenSSF — do important work at the artifact level. They answer "is this build what its source claims to be?" That work is necessary; it is also not sufficient for the agentic era. A verified artifact installed into a hook that should not exist is still a governance failure, even when every signature checks out.

The relationship between security and governance is not adversarial; the two layers compose. Security narrows the set of artifacts you can trust. Governance narrows the set of actions trusted artifacts are allowed to perform.

## AI infrastructure is becoming operational infrastructure

The industry still talks about AI tooling as if it were productivity software. The actual deployed pattern looks more like operational infrastructure: orchestration systems, distributed runtimes, policy execution layers, and CI/CD-adjacent automation that happens to have a model in the loop.

This is not a metaphor. GitHub itself increasingly frames CI/CD and workflow execution as security-critical infrastructure rather than developer convenience. Its guidance on hardening GitHub Actions reads less like advice for an automation tool and more like advice for a runtime: principle of least privilege, scoped secrets, restricted token permissions, controlled use of untrusted input, careful handling of external references. The transition has already happened; the vocabulary is catching up.

The consequence is that failures in this layer stop being coding mistakes and start being architectural, operational, and organizational failures. A misconfigured workflow that grants write access to the repository where it should have had read-only is no longer a developer bug. It is an authority assignment error in a runtime. The framing matters because it determines who is responsible for the fix, where the control plane lives, and what kind of check is supposed to catch the misconfiguration before it ships.

Three shifts follow from taking the framing seriously:

1. Governance stops being optional. When AI systems execute infrastructure, the cost of "we will review this later" rises with every additional agent and every additional persistent execution surface.
2. Architectural intent becomes operational. The rules that used to live in ADRs and tribal knowledge now need to be machine-checkable, because the actors most likely to violate them are not humans who can be reasoned with.
3. Verification becomes infrastructure-native. Constraint checks belong in the same layer as the execution they govern, not in a documentation folder that the next agent will not read.

This is also where Mneme's category becomes legible. The work we do — precedence-aware decision resolution, deterministic enforcement, governance propagation across execution surfaces — is one specific instance of the broader need for verifiable execution governance around autonomous systems. The category is not "tool for AI coding teams"; the category is "execution governance for agentic infrastructure." Mneme is one implementation. The need will produce many.

## Conclusion

The npm and developer-tooling compromises are not the story. They are the visible edge of a larger transition. AI systems have moved from generating output that a human then deploys to operating execution infrastructure directly. The hooks they install, the workflows they trigger, the configurations they persist, and the agents they invoke are all part of a fabric that did not exist in the productivity-tooling era and that current security models were not designed for.

The right response is not better antivirus for developer machines or stricter package allowlists, though both have their place. The right response is to treat the execution fabric as the runtime it has become: define which paths are allowed to exist, attach architectural invariants to them, propagate constraints across delegations, and put a deterministic check between intent and execution.

The future AI stack will not just need better models. It will need verifiable execution infrastructure.

## FAQ

Is this article about a specific malware incident?
No. The recent compromises that persisted through Claude Code hooks, VS Code tasks, and CI automation are the surface symptom. The article's argument is about the underlying infrastructure transition that made those persistence paths exist. The incident is treated as evidence, not as the story.
How is execution governance different from security?
Security answers whether something is malicious, vulnerable, or compromised. Governance answers whether an execution path should exist at all, whether an agent has authority to perform an action, and whether automation is operating within approved architectural boundaries. The two questions overlap in places but are not substitutes — a non-malicious agent action can still violate architectural intent.
What counts as agentic infrastructure?
Anything that gives an AI system the ability to execute work without an explicit per-action human trigger: Claude Code hooks, agent skills, VS Code task runners, GitHub Actions workflows that invoke models, MCP servers, autonomous remediation loops, scheduled agent runs, and multi-agent orchestration graphs. The defining property is delegated authority — the agent is allowed to act, and the act has effects on shared systems.
Why does this matter for governance specifically?
Because the security model for agentic infrastructure still assumes a human in the loop, but the execution model increasingly does not. Once an agent can write code, modify configuration, trigger workflows, and persist state, the question of which decisions govern those actions stops being a documentation problem and becomes an enforcement problem. Governance is the layer that turns architectural intent into a deterministic check that runs before execution, not after.
Doesn't supply-chain security already cover this?
Supply-chain security frameworks like SLSA, Sigstore, and OpenSSF address provenance and integrity of code artifacts — they answer "is this build what its source says it is?" That is necessary but not sufficient. They do not address whether the now-trusted artifact should have authority to run a hook on developer machines, modify CI configuration, or invoke another agent. That additional question is what execution governance covers.

## Related reading

- Autonomous Code Remediation Requires Architectural Governance
- Long-Running Agents Need More Than Memory
- Architectural Governance Across Heterogeneous AI Coding Agents
- Why AI Architectural Governance Needs Precedence Semantics
- Concept: Governance Infrastructure
- Concept: Enforcement Provenance

### See execution governance running

The Mneme demo shows a deterministic governance layer intercepting agent tool calls, resolving the applicable decision, and enforcing it before any change lands — the same enforcement pattern this article argues belongs in every agentic execution surface.

View the demo →
← Back to Insights