TAKO AI Agent CVE-2026-63378
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or log in for valid fctr_session cookie
-
DeliveryPOST crafted script_code to /api/react/execute-script
-
Exploitgetattr/__builtins__ chain bypasses code validator
-
ExecutionSubprocess executes payload as root in container
-
ImpactRead SSE output, steal Okta tokens/JWT key and pivot
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) a network-reachable instance of the okta-ai-agent application and (2) any authenticated account - a valid |
| Impact | This is a genuine high-priority issue for anyone running the affected product, not an inflated high-CVSS score. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) describes network-reachable, low-complexity exploitation requiring only a low-privileged authenticated session - consistent with the advisory's statement that any user holding a valid |
| Exploit ScenarioDerived | An attacker who has registered or obtained any valid low-privilege account logs in to get an |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Authenticated users of TAKO AI Agent for Okta can execute arbitrary Python and OS commands on the server because the application's script validator can be bypassed with dynamic getattr call chains; all versions prior to 3.0.1-beta are affected, and the default Docker deployment runs the process as root. The public advisory includes a working proof-of-concept that returns uid=0(root) output in that default container, enabling disclosure of Okta API tokens and the JWT key, SQLite database access, and backend pivoting. No CISA KEV entry is recorded at time of analysis; the vendor-released fix is 3.0.1-beta.
RemediationAI
Upgrade to v3.0.1-beta, the vendor-released patch, which fixes the issue by disabling client-supplied script execution, removing root runtime, and introducing an ephemeral bootstrap setup token; the commit also changes the default compose binding from 0.0.0.0:8001 to 127.0.0.1:8001. If upgrading immediately is not possible, apply the advisory's code changes: return HTTP 403 from POST /api/react/execute-script, remove getattr from ALLOWED_BUILTINS, and extend the AST checker to reject ast.Call call targets and dunder string constants; the trade-off is loss of the saved-script execution feature and possible breakage of workflows that depend on it. Restricting network exposure to localhost or trusted networks reduces reachability, but the complete fix remains v3.0.1-beta, and non-root deployments reduce blast radius without eliminating the validator bypass. Advisory: https://github.com/fctr-id/okta-ai-agent/security/advisories/GHSA-r9q7-6784-7rc6; fix commit: https://github.com/fctr-id/okta-ai-agent/commit/3b5ccaff8423cdfa6d26f5e133c01b8b71148df4; release: https://github.com/fctr-id/okta-ai-agent/releases/tag/v3.0.1-beta.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CVE-2026-63378 is CWE-94 code injection in the FastAPI application okta-ai-agent, tracked as cpe:2.3:a:fctr-id:okta-ai-agent. The endpoint POST /api/react/execute-script accepts a Pydantic ScriptExecuteRequest with a raw script_code field and requires only a valid fctr_session cookie via get_current_user, with no administrator or elevated privilege check. The code is stored with skip_discovery=True, bypassing AI-based content filtering, and is validated by validate_generated_code in src/utils/security_config.py. Three validator gaps combine: BLOCKED_PATTERNS only matches direct __import__ calls and misses the import name passed as a string; getattr is present in ALLOWED_BUILTINS; and the AST walker handles ast.Name and ast.Attribute call targets but not ast.Call as a func node. A payload such as getattr(__builtins__, '__import__')('os') followed by getattr(os_module, 'popen')('id') therefore passes validation as is_valid=True with no violations. The accepted source is written to disk by _write_temp_script and executed with asyncio.create_subprocess_exec using the application process user, which is root in the default container; command output is streamed back through GET /api/react/stream-react-updates?process_id=<id> as Server-Sent Events. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, consistent with a network-reachable service requiring any authenticated account.
Know when Python gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network endpoint, low-complexity validator bypass, any authenticated non-admin user (PR:L), no user interaction; direct root code execution yields full C/I/A impact within an unchanged scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
TAKO AI Agent for Okta is a local-first AI agent that helps Okta administrators query tenant data using natural language. Prior to 3.0.1-beta, any authenticated user with a valid fctr_session cookie can submit arbitrary Python source in the script_code field of POST /api/react/execute-script, without administrator privilege. In src/api/routers/react_stream.py, the source is stored with skip_discovery=True, bypassing AI-based content filtering, and is passed to validate_generated_code in src/utils/security_config.py. BLOCKED_PATTERNS recognizes direct __import__ calls but misses the import name passed as a string, getattr is in ALLOWED_BUILTINS, and the AST checker handles ast.Name and ast.Attribute targets but fails to handle ast.Call targets. Dynamic getattr call chains through __builtins__ therefore evade validation. The _write_temp_script helper writes the accepted code to disk, and asyncio.create_subprocess_exec() executes it as the application process user, which is root in the default container. Command output is returned as Server-Sent Events through GET /api/react/stream-react-updates?process_id=<id>. The resulting container compromise can disclose environment secrets including Okta API tokens and the JWT key, expose the SQLite database, and permit backend-service pivoting and persistence. This issue is fixed in version 3.0.1-beta.
Articles & Coverage 1
Technical POC Analysis
CWE-94 (code injection) in the pip package okta-ai-agent.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-63378 is a high-severity vulnerability in TAKO AI Agent for Okta that allows authenticated users to execute arbitrary commands as root on the server. This puts sensitive Okta API tokens, JWT signing keys, and the underlying database at risk, potentially enabling broader compromise of identity infrastructure. Leadership should prioritize remediation given the default root-level exposure and the availability of a public proof-of-concept.
No vendor-released patch identified at time of analysis; however, the vendor has released fix version 3.0.1-beta. Interim mitigations include running the container as a non-root user, restricting access to trusted users, and monitoring for suspicious command execution.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Affected Products (CPE)CVE.org
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
NVD
CVE.org
EPSS
GitHub
Exploit-DB