Detect CVE-2026-54769: Langroid TableChatAgent Sandbox Escape via eval() RCE in Sumo Logic CSE
Detects exploitation of CVE-2026-54769, a critical sandbox escape vulnerability in Langroid's TableChatAgent component (versions <= 0.65.1). The incomplete eval() mitigation allows attackers to craft malicious inputs that escape the intended sandbox and achieve remote code execution on the host system. CVSS 10.0 with public PoC available.
MITRE ATT&CK
- Tactic
- Execution Privilege Escalation
Sumo Detection Query
_sourceCategory=* ("langroid" OR "tablechat" OR "uvicorn" OR "gunicorn")
| parse regex "(?i)(?P<method>GET|POST|PUT|PATCH)\s+(?P<uri_path>/[^\s\?]*)(?:\?(?P<uri_query>[^\s]*))?" nodrop
| parse regex "(?i)parent[_\s]process[:\s=]+(?P<parent_proc>[^\s,\|]+)" nodrop
| parse regex "(?i)command[Line:\s=]+(?P<cmd_line>.{0,500})" nodrop
| where (
(
matches(uri_path, "(?i).*(chat|agent|query|tablechat|ask).*") and
(
matches(uri_query, "(?i).*(__import__|__builtins__|os\.system|subprocess|__subclasses__|__class__\.__mro__).*") or
matches(_raw, "(?i).*(__import__|__builtins__|os\.system|subprocess|__subclasses__|__class__\.__mro__).*")
)
) or
(
matches(parent_proc, "(?i).*(python|python3|uvicorn|gunicorn|fastapi).*") and
matches(cmd_line, "(?i).*(curl|wget|bash|/bin/sh|nc |ncat|python -c|exec\().*")
)
)
| eval threat="CVE-2026-54769-Langroid-RCE"
| eval attack_phase=if(isNull(parent_proc), "Initial_Exploitation", "Post_Exploitation_RCE")
| count by _sourceHost, uri_path, uri_query, parent_proc, cmd_line, attack_phase, threat
| order by _count desc Sumo Logic query for detecting CVE-2026-54769 exploitation attempts against Langroid TableChatAgent, identifying eval() sandbox escape payloads in HTTP requests and post-exploitation subprocess activity.
Data Sources
Required Tables
False Positives & Tuning
- Python web applications legitimately serving endpoints with 'agent' or 'query' in the path on the same log source
- Data science workflows that transmit Python expressions through HTTP APIs for server-side computation
- Automated regression test suites that submit complex query strings to Langroid API endpoints
- System administration scripts spawning curl or wget from Python parent processes for update workflows
Other platforms for CVE-2026-54769
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Langroid TableChatAgent eval() Basic Sandbox Escape via __import__
Expected signal: Python process executing os.system() call; creation of /tmp/cve_2026_54769_poc.txt by the Python process; Syslog/auditd records showing system() syscall from python3 process
- Test 2Langroid TableChatAgent MRO Traversal Sandbox Escape for RCE
Expected signal: Python process spawning subprocess.Popen with system commands; process tree showing python3 as parent of id/sh commands; auditd EXECVE records for child process
- Test 3CVE-2026-54769 HTTP API Exploitation Simulation with Reverse Shell Payload
Expected signal: Outbound TCP connection from Python/uvicorn process to attacker IP:4444; bash process spawned as child of python3/uvicorn; network flow showing new connection to port 4444 from the Langroid server IP; HTTP access log entry with encoded payload in POST body
- Test 4Langroid Package Version Enumeration for CVE-2026-54769 Exposure Assessment
Expected signal: pip command execution; find/grep commands scanning for requirements files; curl requests to application health/version endpoints; process enumeration via ps
Unlock Pro Content
Get the full detection package for CVE-2026-54769 including response playbook, investigation guide, and atomic red team tests.