CVE-2026-66297 json
Unescaped deployment environment variables in generated setup commands
published 2026-08-05 3 mo ago modified 2026-10-24 16 d ago also EEF-CVE-2026-66297 , EUVD-2026-53601 , GHSA-qpjc-w5mm-73mj
- cvss
- 8.0
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 2.4%
- EPSS 2.4% chance of exploitation in 30 days, percentile 84%
- public exploits
- 0
- none known
Summary
Improper Neutralization of Special Elements used in an OS Command (OS Command Injection) vulnerability in livebook-dev livebook allows command injection into generated deployment setup commands.
LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.docker_instructions/2 and LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent.fly_instructions/4 in lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex interpolate deployment group environment variable values into the generated Docker and Fly.io setup commands without shell escaping. The values originate from the deployment group configuration and reach the sinks through Livebook.Hubs.Dockerfile.online_docker_info/3.
Both sinks place the value inside a double-quoted shell word, so a value containing a command substitution such as $(...) or backticks is evaluated by the shell without any need to break out of the quoting, and a literal double quote terminates the quoted word and allows arbitrary further tokens. The generated command is displayed in the Livebook web interface with a copy button, so a user who copies it and runs it without reviewing it first executes the injected commands on their own machine, under their own account.
An attacker requires privileges sufficient to set deployment group environment variables, while the resulting code execution occurs on the machine of whoever runs the generated command. The Kubernetes instructions are not affected, because they render the same values into a YAML manifest with escaping rather than into a shell command.
This issue affects livebook: from 0.13.0 before 0.18.7 and from 0.19.0 before 0.19.9.
Patch / fix
- hex livebook 0.18.7, 0.19.9
- livebook-dev livebook 0.18.7, 0.18.7-cuda12, 0.19.9, 0.19.9-cuda12
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
2.41% chance of exploitation in the next 30 days, higher than 84% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H |
| CNA | 4.0 | 5.0 | CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 8.0 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | livebook | >=0.13.0, <0.18.7 >=0.19.0, <0.19.9 |
0.18.7 0.19.9 |
Affected products
- livebook-dev livebook
Classification
- Weakness
-
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
References
-
github.com
/livebook-dev/livebook/commit/b2a8416d149043132fe5a14ed611e0fefc9dc9cd
patch
-
github.com
/livebook-dev/livebook/commit/0c2487326bbb37cb1eb43bb2f76eb93ad9f8fd6b
patch
-
github.com
/livebook-dev/livebook/commit/f8fe9c62cb8bfc1dd0ccda4ea4a57c5e91563c85
patch
-
github.com
/livebook-dev/livebook/security/advisories/GHSA-qpjc-w5mm-73mj
vendor-advisory, related, exploit, patch, advisory
-
cna.erlef.org
/cves/CVE-2026-66297.html
related, vendor-advisory, web
-
osv.dev
/vulnerability/EEF-CVE-2026-66297
related, third-party-advisory
-
hex.pm
/packages/livebook
package
Sources
- CVE List CVE-2026-66297
- NVD CVE-2026-66297
- OSV EEF-CVE-2026-66297
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.