Case · DiggingBeagle record

Skyvern's AST gate missed executable bytecode constructed after validation

The workflow-script bypass reconstructed Python code objects from literal bytes. Source checks were repaired, but the advisory did not identify the first fixed package release; this was not an escape from a container or hypervisor.

Public disclosure: Oct 16, 2026

Scope

Vulnerability reported in a controlled research or disclosure setting. Exact prerequisites, versions and absence of documented exploitation must be preserved.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
fixed reported
AI role
AGAINST AI
Basis and provenance

The cited first-party advisory or research establishes the stated mechanism only within its documented conditions. No unrelated production compromise, extended victim scope, financial harm or universal mitigation is inferred.

Assessed Nov 9, 2026 using diggingbeagle.assessment/1.

At a glance

Mechanism and trust boundary

  1. 01

    Submit workflow Python in a configuration where script execution is authorized and the static AST denylist is the security check.

  2. 02

    Use literal byte sequences to create Python code objects through types.CodeType and types.FunctionType only after the syntactic inspection.

  3. 03

    Execute the reconstructed function using the regular Python interpreter, outside the scope of that syntactic inspection.

Claims & evidence

CLM-SKYVERN-BYTECODE-FIX-LIMITThe advisory describes affected Skyvern versions through 1.0.56; source-level checks were changed, but it does not identify a confirmed fixed package release.supported

Basis: reported finding

Link to claim
CLM-SKYVERN-BYTECODE-MECHANISMThe researcher demonstrated that bytes can be reconstructed into executable Python code after the AST filter admits an apparently safe workflow script.supported

Basis: reported finding

Link to claim
CLM-ENR231-SKYVERN-NO-RUNTIME-SANDBOXThe Skyvern issue states that uploaded scripts ran as imported Python modules with real builtins and no runtime sandbox, leaving an AST denylist as the sole gate before the bytecode-construction bypass.supported

Basis: reported finding

Link to claim

Implications

Source-level allowlist and denylist checks are not runtime containment. The exact bug is in workflow-script policy enforcement, not an escape from a container or hypervisor.

Controls and mitigations

  • Restrict who can upload executable workflow scripts, apply runtime isolation, and test all code-construction mechanisms in the fixed distribution.

Unknowns and contradictions

  • No public production victim or real credential theft; the executable script feature was not designed as a complete isolation sandbox and the patched package version is unspecified.

Sources and citation

Material revision history

  1. Nov 9, 2026 · Published version · first publication · revision 233