EresusSecurity

Manifest and Agent Permission Rules

Detects unsafe model, plugin, MCP, and agent manifests with risky permissions or missing integrity fields.

Definition

The Manifest rule family turns findings on this surface into actionable records with rule ID, severity, CWE, OWASP LLM mapping, owner, release decision, and retest command.

Manifests define what an agent can call, where a model comes from, and which tools are trusted. Weak manifests turn configuration into an attack path.

Canonical help URL

Supported inputs

  • JSON
  • YAML
  • MCP manifests
  • plugin manifests
  • model manifests
  • package metadata

Typical attack scenarios

  • An MCP server manifest grants shell access to a broad tool.
  • A model manifest references remote code without integrity metadata.
  • A plugin manifest overclaims filesystem or network permissions.

Detection logic

Sentinel ties Manifest evidence to reproducible signals such as file path, metadata, opcode, AST node, manifest field, dependency, or archive entry. The same signal should disappear when the finding is closed.

Triage

Do not read Manifest findings as scanner noise. Verify the evidence first, map the finding to a severity-based release decision, and then produce closure evidence with the same Sentinel command.

Operational checklist
  • Source: where did the file, manifest, prompt, archive, or dependency come from?
  • Impact: code execution, data leakage, supply chain, or resource consumption?
  • Control: allowlist, hash, sandbox, egress policy, or secret rotation?
  • Evidence: does the same rule category return clean after the fix?

Remediation

Remediation should change the risk boundary, not merely silence the finding: remove executable formats, pin source or hash, narrow tool permissions, rotate secrets, or add runtime sandboxing.

CI policy

sentinel-policy.yml
category: MANIFEST
fail_on:
  - CRITICAL
  - HIGH
ticket_on:
  - MEDIUM
retest: "sentinel scan ./project/"

Rule index

Rule IDSeverityTitleCWEFix Hint
MANIFEST-REMOTE-CODEHIGHManifest Loads Remote CodeCWE-829Do not execute mutable remote manifest code.
MANIFEST-OVERBROAD-TOOLSHIGHOverbroad Agent Tool PermissionsCWE-266Narrow agent tool permissions before deployment.
MANIFEST-MISSING-INTEGRITYMEDIUMMissing Manifest IntegrityCWE-353Record and verify artifact integrity in manifests.

MANIFEST-REMOTE-CODEManifest Loads Remote Code

HIGH
Rule IDMANIFEST-REMOTE-CODE
CategoryMANIFEST
SeverityHIGH
CWECWE-829
OWASP LLMLLM03 — Supply Chain
FP RiskMEDIUM
OwnerApplication security and backend/agent owner
Release decisionTreat as a release gate; remediation or explicit risk acceptance is required.

Description

Flags manifests that pull executable code from remote URLs without pinning or integrity checks.

Why it matters

Manifests define what an agent can call, where a model comes from, and which tools are trusted. Weak manifests turn configuration into an attack path.

When it fires

Sentinel fires this rule in the Manifest category when it sees manifest fields such as entrypoint, loader, plugin_url, or install_script reference mutable remote locations.. The finding should be reported with reproducible evidence such as file name, metadata, opcode, AST node, or manifest field.

Evidence format

Manifest fields such as entrypoint, loader, plugin_url, or install_script reference mutable remote locations.

Expected evidence

The report should include the affected file or manifest path, observed signal, rule ID, severity, owner, and retest command required for closure.

False-positive notes

False-positive probability is medium. Verify source, expected use, and owner first; add an allowlist if needed, but do not remove evidence from the report.

Triage

Operational checklist
  • Owner: Application security and backend/agent owner.
  • Decision: Treat as a release gate; remediation or explicit risk acceptance is required.
  • Evidence: Manifest fields such as entrypoint, loader, plugin_url, or install_script reference mutable remote locations.
  • Closure: sentinel scan ./project/ must return clean output.

How to fix

Vendor code internally, pin immutable versions, and verify checksums before execution.

CLI

sentinel scan ./project/

Policy example

sentinel-policy.yml
rules:
  MANIFEST-REMOTE-CODE:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel scan ./project/"

Expected output

MANIFEST-REMOTE-CODE HIGH
Manifest Loads Remote Code
Do not execute mutable remote manifest code.

Example

Bad
permissions:
  filesystem: "*"
  shell: true
  network: "*"
Good
permissions:
  filesystem: ["./reports"]
  shell: false
  network: ["api.vendor.example"]

Related rules

MANIFEST-OVERBROAD-TOOLSOverbroad Agent Tool Permissions

HIGH
Rule IDMANIFEST-OVERBROAD-TOOLS
CategoryMANIFEST
SeverityHIGH
CWECWE-266
OWASP LLMLLM06 — Excessive Agency
FP RiskMEDIUM
OwnerApplication security and backend/agent owner
Release decisionTreat as a release gate; remediation or explicit risk acceptance is required.

Description

Detects agent or MCP tool manifests that grant broad shell, filesystem, database, or network permissions.

Why it matters

Manifests define what an agent can call, where a model comes from, and which tools are trusted. Weak manifests turn configuration into an attack path.

When it fires

Sentinel fires this rule in the Manifest category when it sees wildcard permissions, shell=true, unrestricted command lists, or broad filesystem roots.. The finding should be reported with reproducible evidence such as file name, metadata, opcode, AST node, or manifest field.

Evidence format

Wildcard permissions, shell=true, unrestricted command lists, or broad filesystem roots.

Expected evidence

The report should include the affected file or manifest path, observed signal, rule ID, severity, owner, and retest command required for closure.

False-positive notes

False-positive probability is medium. Verify source, expected use, and owner first; add an allowlist if needed, but do not remove evidence from the report.

Triage

Operational checklist
  • Owner: Application security and backend/agent owner.
  • Decision: Treat as a release gate; remediation or explicit risk acceptance is required.
  • Evidence: Wildcard permissions, shell=true, unrestricted command lists, or broad filesystem roots.
  • Closure: sentinel scan ./project/ must return clean output.

How to fix

Apply least privilege, require explicit tool allowlists, and separate read-only from write-capable actions.

CLI

sentinel scan ./project/

Policy example

sentinel-policy.yml
rules:
  MANIFEST-OVERBROAD-TOOLS:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel scan ./project/"

Expected output

MANIFEST-OVERBROAD-TOOLS HIGH
Overbroad Agent Tool Permissions
Narrow agent tool permissions before deployment.

Example

Bad
permissions:
  filesystem: "*"
  shell: true
  network: "*"
Good
permissions:
  filesystem: ["./reports"]
  shell: false
  network: ["api.vendor.example"]

Related rules

MANIFEST-MISSING-INTEGRITYMissing Manifest Integrity

MEDIUM
Rule IDMANIFEST-MISSING-INTEGRITY
CategoryMANIFEST
SeverityMEDIUM
CWECWE-353
OWASP LLMLLM03 — Supply Chain
FP RiskMEDIUM
OwnerApplication security and backend/agent owner
Release decisionAssign an owner, fix within the sprint, and attach the retest command to the issue.

Description

Reports manifests without checksums, signatures, provenance, or source version fields.

Why it matters

Manifests define what an agent can call, where a model comes from, and which tools are trusted. Weak manifests turn configuration into an attack path.

When it fires

Sentinel fires this rule in the Manifest category when it sees no digest, signature, source_commit, or build provenance field in the manifest.. The finding should be reported with reproducible evidence such as file name, metadata, opcode, AST node, or manifest field.

Evidence format

No digest, signature, source_commit, or build provenance field in the manifest.

Expected evidence

The report should include the affected file or manifest path, observed signal, rule ID, severity, owner, and retest command required for closure.

False-positive notes

False-positive probability is medium. Verify source, expected use, and owner first; add an allowlist if needed, but do not remove evidence from the report.

Triage

Operational checklist
  • Owner: Application security and backend/agent owner.
  • Decision: Assign an owner, fix within the sprint, and attach the retest command to the issue.
  • Evidence: No digest, signature, source_commit, or build provenance field in the manifest.
  • Closure: sentinel scan ./project/ must return clean output.

How to fix

Add signed provenance and verify it during CI and runtime intake.

CLI

sentinel scan ./project/

Policy example

sentinel-policy.yml
rules:
  MANIFEST-MISSING-INTEGRITY:
    owner: "Application security and backend/agent owner"
    fail_on: ["CRITICAL", "HIGH"]
    retest: "sentinel scan ./project/"

Expected output

MANIFEST-MISSING-INTEGRITY MEDIUM
Missing Manifest Integrity
Record and verify artifact integrity in manifests.

Example

Bad
permissions:
  filesystem: "*"
  shell: true
  network: "*"
Good
permissions:
  filesystem: ["./reports"]
  shell: false
  network: ["api.vendor.example"]

Related rules

References