IT SBIT Services
Schneeberger
DEEN
CVE tracker

TAKO AI Agent for Okta: Authenticated Python code execution via validator bypass

CVE-2026-63378High 8.8

← All vulnerabilities

Summary

TAKO AI Agent for Okta contains a validation bypass in its script execution endpoint. Any authenticated user with a valid session cookie, without administrator rights, can submit Python code that runs as the application process user, which is root in the default container. An attacker can then read environment secrets such as Okta API tokens and the JWT key, access the SQLite database and pivot to backend services. The attack requires a valid login but no further user interaction.

Affected

  • fctr-id TAKO AI Agent for Okta (okta-ai-agent) versions prior to 3.0.1-beta

Fixed in

  • Fixed in version 3.0.1-beta

Workaround

  • No vendor-documented workaround. Upgrading is the only complete remediation.
  • Interim measures: restrict access to the web interface to admin workstations or a VPN, and remove unneeded user accounts and sessions.

Exploitation

  • No exploitation in the wild reported at the time of analysis.
  • No public proof of concept found in a short search.

Our recommendation

  • Upgrade to the latest release, at least 3.0.1-beta, without delay.
  • Check for unexpected user and admin accounts and for active sessions. CVE-2026-63377 affects the initial setup and should be checked as well.
  • If the service was reachable by untrusted users before patching, rotate Okta API tokens and the JWT signing key.
  • Restrict network exposure of the web interface.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 08:36.

Original description (NVD)

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.

NVD references (3)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.