CVE-2026-44265
### Summary Elo's programmatic AST API accepts arbitrary values in many node fields without runtime type or syntax validation. Each backend's emit stage interpolates those values straight into the generated source with no escape pass. An integrator that populates the AST from JSON-deserialised input, plugin output, or any other untyped source therefore exposes a code-injection primitive that flows through to the emitted JavaScript, Ruby, Python, or SQL. The same pattern was previously addressed in **0.9.7 (2026-01-27)**, which patched the date/datetime/duration literal emitters via `JSON.stringify()` after a report by **naoyashiga**. This advisory generalises that fix to the remaining AST surface — at least 23 emission sites across six node-field categories and four backends. ### Vulnerable sinks Each row is a category of sinks that share the same shape: TypeScript signature erased at runtime → AST-API consumer passes a crafted value → emit interpolates the value verbatim. | # | AST field | Affected backends | Resulting injection | |---|---|---|---| | 1 | `int_literal` / `float_literal` `.value` | JS, Ruby, Python, SQL | Arbitrary expression in the emitted numeric position (RCE on JS/Ruby/Python; SQL expression injection) | | 2 | `variable.name` | JS, Ruby, Python, SQL | Identifier-position injection; on SQL, raw SQL injection because undefined identifiers are intentionally emitted as column references | | 3 | `member_access.property` | JS, Ruby, Python, SQL | Property access escaped into expression (RCE) | | 4 | `object_literal` key | JS, Ruby, SQL | Computed-key / extra-property injection (RCE on JS/Ruby; SQL injection) | | 5 | `datapath` segment | JS, Ruby, Python, SQL | Ruby symbol-list injection allows backtick shell exec; SQL string-segment unquoted in single-quote context allows SQL injection | | 6 | `lambda.params[].name` | JS, Ruby, Python | Parameter-list structural injection (RCE) | | 7 | SQL `let` binding `name` | SQL | Identifier injection in `… AS
Properties
- Summary
- Elo backends have code injection via unvalidated emission of programmatic AST fields
- Severity
- high
- Nvd fetched at
- 2026-11-03T21:24:30.963596+00:00
- Cvss score
- 7.4
- Cvss severity
- HIGH
- Retrieved at
- 2026-11-03T21:26:50+00:00
- Ghsa published
- 2026-11-03T17:48:09Z
- Source url
- https://github.com/advisories/GHSA-x9rp-7wh3-2rj5
- Ghsa updated
- 2026-11-03T17:48:09Z
- Ghsa id
- GHSA-x9rp-7wh3-2rj5
- Last source
- GitHub Advisory Database
- Score
- 7.4
- Cvss version
- 3.1
- Cve id
- CVE-2026-44265
- Cvss vector
- CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- First seen by Signal
- 2026-11-03T21:21:12+00:00
- Is ghsa only
- false
- Vector
- CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- Published at
- 2026-11-03T18:18:02.760
- Last modified
- 2026-11-03T18:18:02.760
Related Entities (6)
HAS_WEAKNESS (4)
AFFECTS (1)
VULNERABLE_TO (1)
Explore deeper with Ninja Signal's threat intelligence graph