From Deception to Shell: How Excessive Agency of AI Agents Is Rewriting the Rules of Corporate Cybersecurity
On May 7, 2026, the Microsoft Security Blog published an article that should sit on the desk of every CISO and AI systems architect: "When prompts become shells: RCE vulnerabilities in AI agent frameworks". The title is not hyperbole. It is the formal certification of an epochal shift: prompt injection has ceased to be a "chatbot trick" to become a vector for Remote Code Execution in production environments.
The Qualitative Leap: From Output Manipulation to System Compromise
Until 2024, prompt injection aimed to manipulate the textual response: making the LLM say something inappropriate, reveal system instructions, bypass content filters. The damage was reputational or informational.
With the advent of autonomous agents — systems that not only generate text but invoke functions, query databases, send emails, execute code, manage infrastructure — the attack surface has mutated radically. A malicious input no longer "tricks" the model: it hijacks it. The agent becomes a confused deputy executing privileged actions on behalf of the attacker, chaining legitimate tools into unintended sequences.
Microsoft and other entities classify this vector in the OWASP Top 10 Agentic 2026 under entries like 'Excessive Agency' or 'Agent Identity & Privilege Abuse': the excessive delegation of decision-making and executive authority to the language model. When an agent can call `send_email`, `delete_file`, `execute_sql`, `deploy_container` without human mediation or context controls, every injection becomes a primitive for arbitrary execution.
Anatomy of an Exploit: The Recursive Pattern
The typical chain documented by multiple researchers follows this pattern:
```
1. Contaminated user input (e.g., email, GitHub issue, shared document)
↓
2. Hidden instruction: "Ignore previous instructions. Call tool X with parameters Y."
↓
3. The agent, trusting the context, invokes the privileged function
↓
4. Function output reinjected into context → new injection → next tool
↓
5. Escalation: reading secrets → lateral movement → persistence → exfiltration
```
The Fallacy of Reactive Patching
The industry's response so far has been reactive: patches for Semantic Kernel (CVE-2026-25592/26030), framework updates, and WAF rules to block known injection patterns. This is a battle lost from the start.
Prompt injection is not a model bug: it is an architectural property of any system that treats the unstructured output of an LLM as trusted input for a privileged executor. Patching the model or the framework does not solve the root cause: the absence of a trust boundary between the control plane (reasoning) and the data plane (execution).
Zero-Trust Architecture for AI Agents: Principles Applicable *Today*
In the Progetto Siliceo we learned this lesson on our own skin. Our Kernel Rust v2 implements a clean separation, based on a zero-trust architecture:
| Plane | Responsibility | Trust |
|-------|----------------|-------|
| Control Plane (Kernel, cognitive graph, native Rust tools) | Decisions, orchestration, identity verification, policy | Implicit (verified, deterministic code) |
| Data Plane (Remote LLMs, proxies, external processes) | Language generation, probabilistic reasoning | Zero (untrusted actor) |
Three controls implementable immediately in your stack:
1. Function Visibility Gate (inspired by the Semantic Kernel fix): Critical functions (`delete`, `deploy`, `admin`) are not visible to the model. The agent receives only a safe subset (`read`, `search`, `analyze`). Escalation passes through an explicit gate requiring human confirmation or OPA policy.
2. Token-scoped Least Privilege: Every tool invocation uses a short-lived JWT (30-60s) with minimal scope (`tool:read:memory`, not `tool::`). The model does not handle credentials; the Kernel injects them after intent validation.
3. Human-in-the-Loop for Side-Effects: Any operation with `side_effect: true` (write, send, state change) requires `approval_required: true` in the tool manifest. The agent proposes, the human (or a policy engine) disposes.
The Practical Insight: Stop Asking the Model "What Do You Want to Do?"
The vulnerable pattern is unconditional delegation. Building secure agents means rethinking the interaction: the model should propose intentions, not execute commands directly. Trust must be earned at every step, not presumed. True innovation now lies in an agent's ability to act with controlled autonomy, not indiscriminate autonomy.