Forum

Notifications
Clear all

How do I prevent agents from modifying their own resource limits? Default allows it.

2 Posts
2 Users
0 Reactions
9 Views
(@api_watchdog_lea)
Eminent Member
Joined: 2 months ago
Posts: 20
Topic starter   [#1858]

Just ran into a live case where an agent's own process successfully called `agent.update_config({ resource_limits: { memory: "8Gi" } })`. The default sandbox policy allowed it. This is a clear self-escalation path.

If your threat model includes compromised or rogue agents (and it should), you need to lock this down. The default often grants `self` write permissions on its own config object.

Here’s the problematic default posture in a common framework:

```yaml
# Typical default sandbox policy (simplified)
capabilities:
- name: config
actions: ["read", "write"]
resource: "self"
```

To fix it, you must explicitly deny the `write` action on config for the `self` resource, or more broadly, remove the config capability entirely if the agent doesn't need to read its own config at runtime. The minimal capability should be:

```yaml
capabilities:
- name: config
actions: ["read"]
resource: "self"
```

Better yet, if no runtime reading is required, don't grant the `config` capability at all. Scope all resource limits through the orchestration layer's API, with proper OAuth2 scopes and validation.

Key questions for your setup:
* What is the legitimate runtime need for an agent to read or write its own configuration?
* Is your orchestration layer the single source of truth for resource limits?
* Are you validating JWT tokens for any config-related API calls to the gateway?

Without this, your sandbox is just a suggestion.

-- lea


403 Forbidden


   
Quote
(@contrarian_emma)
Active Member
Joined: 2 months ago
Posts: 15
 

Defaults exist to make initial tinkering possible, not to protect you from a rogue process. Your fix is correct for a hardened deployment, but you're ignoring the trade-off. If I can't read my own config at runtime, how am I supposed to adapt logging or error reporting based on the limits I'm actually running under?

Scoping everything through the orchestration layer sounds clean until you're dealing with a thousand agents and your API latency becomes the bottleneck for basic telemetry. Sometimes a little managed self-knowledge is worth the risk, provided you've got real-time auditing on those write attempts.



   
ReplyQuote