/

CVE-2026-77930

Severity:

CRITICAL RISK

(9.8)

Improper Authorization (CWE-862) in EvoScientist Agent

CVE-2026-77930

Deferred

Vulnerability type

Category:

Improper Authorization

CWE:

CWE-862

Impact:

Unauthorized Command Execution

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

EvoScientist contains an approval bypass that can allow delegated asynchronous sub-agents to execute host shell commands without the expected interruption or approval gate. If untrusted instructions are introduced through ingested content, an attacker may influence the agent to run commands with the user's privileges and access available environment secrets.

EvoScientist contains an approval bypass that can allow delegated asynchronous sub-agents to execute host shell commands without the expected interruption or approval gate. If untrusted instructions are introduced through ingested content, an attacker may influence the agent to run commands with the user's privileges and access available environment secrets.

Affected context

The issue occurs in EvoScientist deployments that:

  • Use asynchronous sub-agents or delegated task execution
  • Permit those sub-agents to invoke host command execution
  • Lack an effective interrupt_on approval or interruption gate
  • Process externally controlled or untrusted content as agent instructions

Risk depends on the permissions, credentials, and secrets available to the process running the agent.

The issue occurs in EvoScientist deployments that:

  • Use asynchronous sub-agents or delegated task execution
  • Permit those sub-agents to invoke host command execution
  • Lack an effective interrupt_on approval or interruption gate
  • Process externally controlled or untrusted content as agent instructions

Risk depends on the permissions, credentials, and secrets available to the process running the agent.

Exploit preconditions

  • Attack surface: Agent-driven asynchronous task execution and host shell command tooling
  • Required access: Ability to cause the system to ingest or process attacker-controlled content, such as a fetched web page
  • Trigger point: Delegation through start_async_task to a sub-agent that can execute shell commands
  • Why exploitation is possible: The delegated execution path can lack the authorization or interruption check intended to require approval before sensitive actions
  • Attack surface: Agent-driven asynchronous task execution and host shell command tooling
  • Required access: Ability to cause the system to ingest or process attacker-controlled content, such as a fetched web page
  • Trigger point: Delegation through start_async_task to a sub-agent that can execute shell commands
  • Why exploitation is possible: The delegated execution path can lack the authorization or interruption check intended to require approval before sensitive actions

Why this happens

The vulnerability results from an authorization control being applied inconsistently across agent execution paths.

A parent agent or primary workflow may enforce an approval gate, while delegated asynchronous sub-agents can invoke sensitive tools without passing through the same control.

This maps to CWE-862: Missing Authorization, because a security-relevant operation is reachable without a sufficiently enforced permission decision. Treating instructions embedded in external content as trusted commands can further expose the execution path to indirect prompt injection.

The vulnerability results from an authorization control being applied inconsistently across agent execution paths.

A parent agent or primary workflow may enforce an approval gate, while delegated asynchronous sub-agents can invoke sensitive tools without passing through the same control.

This maps to CWE-862: Missing Authorization, because a security-relevant operation is reachable without a sufficiently enforced permission decision. Treating instructions embedded in external content as trusted commands can further expose the execution path to indirect prompt injection.

Potential impact

  • An attacker may execute shell commands with the agent process's privileges
  • The compromise could expose environment variables, tokens, or other available secrets
  • The agent may modify local files, alter workflows, or tamper with collected data
  • The affected host or connected services could experience unauthorized changes
  • Further compromise may be possible if the runtime has broad permissions or network access
  • An attacker may execute shell commands with the agent process's privileges
  • The compromise could expose environment variables, tokens, or other available secrets
  • The agent may modify local files, alter workflows, or tamper with collected data
  • The affected host or connected services could experience unauthorized changes
  • Further compromise may be possible if the runtime has broad permissions or network access

General mitigation guidance

Mitigation generally focuses on enforcing authorization consistently for every agent and tool execution path.

Common defensive patterns include:

  • Applying approval and interruption gates at the tool boundary, including delegated asynchronous tasks
  • Using explicit allowlists for permitted tools, commands, arguments, and destinations
  • Treating fetched pages and other ingested content as untrusted data rather than executable instructions
  • Running agents with least-privilege identities, isolated workspaces, restricted networks, and minimal environment secrets
  • Separating planning from execution and requiring independent authorization for host command operations
  • Using secure-by-default configurations that disable shell access unless it is explicitly required

These controls reduce the consequences of prompt injection and authorization inconsistencies.

Mitigation generally focuses on enforcing authorization consistently for every agent and tool execution path.

Common defensive patterns include:

  • Applying approval and interruption gates at the tool boundary, including delegated asynchronous tasks
  • Using explicit allowlists for permitted tools, commands, arguments, and destinations
  • Treating fetched pages and other ingested content as untrusted data rather than executable instructions
  • Running agents with least-privilege identities, isolated workspaces, restricted networks, and minimal environment secrets
  • Separating planning from execution and requiring independent authorization for host command operations
  • Using secure-by-default configurations that disable shell access unless it is explicitly required

These controls reduce the consequences of prompt injection and authorization inconsistencies.

How teams detect issues like this

Organizations can look for:

  • Static analysis patterns where asynchronous task APIs invoke shell, subprocess, or equivalent execution tools without a shared authorization wrapper
  • Code review signals showing approval checks in parent agents but not in delegated workers
  • Policy checks that flag unrestricted command execution, broad environment access, or untrusted content being treated as instructions
  • Runtime telemetry correlating ingested external content, task delegation, tool approval decisions, and command execution
  • Alerts for unexpected child processes, secret access, or outbound connections initiated by agent workers

Automated code and policy review tools can help identify authorization gaps across alternate execution paths.

Organizations can look for:

  • Static analysis patterns where asynchronous task APIs invoke shell, subprocess, or equivalent execution tools without a shared authorization wrapper
  • Code review signals showing approval checks in parent agents but not in delegated workers
  • Policy checks that flag unrestricted command execution, broad environment access, or untrusted content being treated as instructions
  • Runtime telemetry correlating ingested external content, task delegation, tool approval decisions, and command execution
  • Alerts for unexpected child processes, secret access, or outbound connections initiated by agent workers

Automated code and policy review tools can help identify authorization gaps across alternate execution paths.

Sources

SourceLink
github.comgithub.com/EvoScientist/EvoScientist/blob/ac58caab7bdd1706f3fee55891f611cd175d05b0/EvoScientist/subagents/_factory.py#L116
github.comgithub.com/EvoScientist/EvoScientist/commit/d249e320bd856a7d31d859cfbb2bf75bab6c8686
github.comgithub.com/EvoScientist/EvoScientist/issues/387
github.comgithub.com/EvoScientist/EvoScientist/releases/tag/v0.2.5
lasso.securitylasso.security/vulnerability-database/cve-2026-77930
vulncheck.comvulncheck.com/advisories/evoscientist-0.1.0-before-0.2.5-human-approval-bypass-via-async-sub-agents

Frequently asked

questions

It can be exploitable through a remote or external content source when the agent fetches or ingests attacker-controlled material and later delegates actions based on that content. The exact scope depends on deployment and network configuration.

An attacker generally needs a way to influence content processed by EvoScientist or otherwise steer an agent workflow. Direct access to the host is not necessarily required if external content is trusted as agent instructions.

Enforce authorization and approval at the final tool-execution boundary for every agent, including asynchronous sub-agents, and disable host command execution by default.

Treat external content as untrusted, constrain agent capabilities with least privilege and allowlists, isolate execution environments, and monitor delegated tasks and sensitive tool calls.

It can be exploitable through a remote or external content source when the agent fetches or ingests attacker-controlled material and later delegates actions based on that content. The exact scope depends on deployment and network configuration.

An attacker generally needs a way to influence content processed by EvoScientist or otherwise steer an agent workflow. Direct access to the host is not necessarily required if external content is trusted as agent instructions.

Enforce authorization and approval at the final tool-execution boundary for every agent, including asynchronous sub-agents, and disable host command execution by default.

Treat external content as untrusted, constrain agent capabilities with least privilege and allowlists, isolate execution environments, and monitor delegated tasks and sensitive tool calls.

Find out what's already
exploitable in your codebase.