/

CVE-2026-108263

Severity:

CRITICAL RISK

(9.9)

Code Injection (CWE-95) in Astron Agent Workflow API

CVE-2026-108263

Deferred

Vulnerability type

Category:

Code Injection

CWE:

CWE-95, CWE-306, CWE-653, CWE-863, CWE-1392

Impact:

Arbitrary Code Execution and Cross-Tenant Compromise

Severity:

CRITICAL RISK

(9.9)

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

Astron Agent contains an unsafe dynamic code-execution path in its default workflow code-node configuration. An authenticated low-privilege tenant may execute arbitrary Python code as root in the core-workflow container when the default executor is used, potentially exposing shared credentials and other tenants' data.

Astron Agent contains an unsafe dynamic code-execution path in its default workflow code-node configuration. An authenticated low-privilege tenant may execute arbitrary Python code as root in the core-workflow container when the default executor is used, potentially exposing shared credentials and other tenants' data.

Affected context

The vulnerability occurs in Astron Agent deployments that use the default workflow code-node execution path through the workflow run APIs. It is relevant when CODE_EXEC_TYPE remains configured to select LocalExecutor, which provides unrestricted Python builtins instead of the documented sandbox restrictions. Exploitation also depends on an authenticated tenant being able to submit or invoke workflows containing code-node execution.

The vulnerability occurs in Astron Agent deployments that use the default workflow code-node execution path through the workflow run APIs. It is relevant when CODE_EXEC_TYPE remains configured to select LocalExecutor, which provides unrestricted Python builtins instead of the documented sandbox restrictions. Exploitation also depends on an authenticated tenant being able to submit or invoke workflows containing code-node execution.

Exploit preconditions

  • Attack surface: Workflow execution APIs, including the console and workflow run endpoints
  • Required access: Authenticated access available to a low-privilege tenant
  • Trigger point: Execution of a workflow code node through the default LocalExecutor path
  • Why exploitation is possible: Dynamic code executes with complete Python builtins and elevated container privileges rather than within an effective sandbox
  • Additional risk factor: Shared service or database credentials available to the workflow container may enable access beyond the attacker's tenant
  • Attack surface: Workflow execution APIs, including the console and workflow run endpoints
  • Required access: Authenticated access available to a low-privilege tenant
  • Trigger point: Execution of a workflow code node through the default LocalExecutor path
  • Why exploitation is possible: Dynamic code executes with complete Python builtins and elevated container privileges rather than within an effective sandbox
  • Additional risk factor: Shared service or database credentials available to the workflow container may enable access beyond the attacker's tenant

Why this happens

The underlying flaw is unrestricted execution of tenant-influenced workflow code in a privileged application process. Selecting LocalExecutor by default exposes complete Python builtins and fails to enforce the intended isolation boundary, allowing dynamic code to access operating-system functionality and process resources. This maps primarily to CWE-95: Improper Neutralization of Directives in Dynamically Evaluated Code, with related concerns involving missing authorization, broken tenant isolation, and insufficient sandboxing.

The underlying flaw is unrestricted execution of tenant-influenced workflow code in a privileged application process. Selecting LocalExecutor by default exposes complete Python builtins and fails to enforce the intended isolation boundary, allowing dynamic code to access operating-system functionality and process resources. This maps primarily to CWE-95: Improper Neutralization of Directives in Dynamically Evaluated Code, with related concerns involving missing authorization, broken tenant isolation, and insufficient sandboxing.

Potential impact

  • An attacker may execute arbitrary Python or operating-system actions in the core-workflow container.
  • The attacker could obtain or misuse shared service and database credentials.
  • Other tenants' data may be read, altered, or deleted.
  • Application-level tenant authorization checks could be bypassed.
  • Shared services may be disrupted or misused.
  • A compromised container could provide a foothold for further internal access, depending on deployment permissions.
  • An attacker may execute arbitrary Python or operating-system actions in the core-workflow container.
  • The attacker could obtain or misuse shared service and database credentials.
  • Other tenants' data may be read, altered, or deleted.
  • Application-level tenant authorization checks could be bypassed.
  • Shared services may be disrupted or misused.
  • A compromised container could provide a foothold for further internal access, depending on deployment permissions.

General mitigation guidance

Mitigation generally focuses on removing unrestricted dynamic execution from tenant-controlled workflows and enforcing a genuine isolation boundary.

Common defensive patterns include:

  • Use a deny-by-default, capability-limited execution model rather than a local process with complete Python builtins.
  • Run workflow code in strongly isolated, short-lived sandboxes with minimal filesystem, network, credential, and operating-system access.
  • Keep code execution disabled unless explicitly required and securely configured.
  • Do not expose shared service credentials to workflow execution environments; use narrowly scoped, short-lived identities where access is necessary.
  • Enforce tenant authorization independently at every data and service boundary, rather than relying on workflow-level checks.
  • Run workflow workers as non-root identities with least-privilege container and platform permissions.
  • Apply resource, timeout, network-egress, and concurrency limits to reduce abuse and service disruption.

Mitigation generally focuses on removing unrestricted dynamic execution from tenant-controlled workflows and enforcing a genuine isolation boundary.

Common defensive patterns include:

  • Use a deny-by-default, capability-limited execution model rather than a local process with complete Python builtins.
  • Run workflow code in strongly isolated, short-lived sandboxes with minimal filesystem, network, credential, and operating-system access.
  • Keep code execution disabled unless explicitly required and securely configured.
  • Do not expose shared service credentials to workflow execution environments; use narrowly scoped, short-lived identities where access is necessary.
  • Enforce tenant authorization independently at every data and service boundary, rather than relying on workflow-level checks.
  • Run workflow workers as non-root identities with least-privilege container and platform permissions.
  • Apply resource, timeout, network-egress, and concurrency limits to reduce abuse and service disruption.

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings involving dynamic evaluation, unrestricted Python builtins, local code executors, or subprocess and operating-system access in workflow components.
  • Code-review signals showing tenant-controlled code executing in the API or worker process, especially when sandbox selection is controlled by a default or weakly protected setting.
  • Runtime telemetry for unexpected child processes, filesystem access, network connections, credential reads, or privileged actions from workflow workers.
  • Authorization tests that attempt cross-tenant reads and writes through workflow execution paths.
  • Policy enforcement requiring non-root workers, restricted network egress, secret minimization, and isolated execution for untrusted code.
  • Automated security review tools that flag dangerous dynamic execution and missing authorization checks.

Organizations can look for:

  • Static-analysis findings involving dynamic evaluation, unrestricted Python builtins, local code executors, or subprocess and operating-system access in workflow components.
  • Code-review signals showing tenant-controlled code executing in the API or worker process, especially when sandbox selection is controlled by a default or weakly protected setting.
  • Runtime telemetry for unexpected child processes, filesystem access, network connections, credential reads, or privileged actions from workflow workers.
  • Authorization tests that attempt cross-tenant reads and writes through workflow execution paths.
  • Policy enforcement requiring non-root workers, restricted network egress, secret minimization, and isolated execution for untrusted code.
  • Automated security review tools that flag dangerous dynamic execution and missing authorization checks.

Sources

SourceLink
github.comgithub.com/iflytek/astron-agent/commit/848daba03e5e045435863815be7ab6dfbcefc18f
github.comgithub.com/iflytek/astron-agent/commit/ebf074a431e96da0ad9e0a56409d3d2da15eae36
github.comgithub.com/iflytek/astron-agent/pull/1650
github.comgithub.com/iflytek/astron-agent/pull/1651
github.comgithub.com/iflytek/astron-agent/releases/tag/v1.1.2
github.comgithub.com/iflytek/astron-agent/security/advisories/GHSA-mh3w-4q3f-2fg5

Frequently asked

questions

Yes. The described attack path requires authentication but does not require administrative privileges when the default local executor is available.

No. A tenant may reach the vulnerable behavior through an exposed workflow execution API, provided the tenant can invoke a workflow containing a code node.

Avoid executing tenant-influenced code in the application process. Use a disabled-by-default or strongly isolated sandbox with least-privilege credentials, restricted capabilities, and independent tenant authorization.

Treat workflow code as untrusted input, enforce isolation at the execution and infrastructure layers, test cross-tenant authorization boundaries, and monitor workers for unexpected privileged or network activity.

Yes. The described attack path requires authentication but does not require administrative privileges when the default local executor is available.

No. A tenant may reach the vulnerable behavior through an exposed workflow execution API, provided the tenant can invoke a workflow containing a code node.

Avoid executing tenant-influenced code in the application process. Use a disabled-by-default or strongly isolated sandbox with least-privilege credentials, restricted capabilities, and independent tenant authorization.

Treat workflow code as untrusted input, enforce isolation at the execution and infrastructure layers, test cross-tenant authorization boundaries, and monitor workers for unexpected privileged or network activity.

Find out what's already
exploitable in your codebase.