Am I affected?

type your livebook version to check

Description

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.

Weaknesses & attack patterns

Weakness

CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') in catalog → MITRE ↗

Attack patterns

CAPEC-88 · OS Command Injection MITRE ↗

Affected — Hex / livebook Hex.pm ↗ Repository ↗

0.13.0 < 0.18.7 affected
0.19 series 0.19.0 < 0.19.9 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent
source files lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex
routines 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':docker_instructions/2 · 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':fly_instructions/4

Affected — ghcr.io / livebook-dev/livebook Container registry ↗

0.13.0 < 0.18.7 affected
0.19 series 0.19.0 < 0.19.9 affected
0.13.0-cuda12 < 0.18.7-cuda12 affected
0.19 series 0.19.0-cuda12 < 0.19.9-cuda12 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent
source files lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex
routines 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':docker_instructions/2 · 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':fly_instructions/4

Affected — GitHub / livebook-dev/livebook Repository ↗

7cf4af5 and up affected
b2a8416 not affected
0c24873 not affected
f8fe9c6 not affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:livebook-dev:livebook:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent
source files lib/livebook_web/live/hub/teams/deployment_group_agent_component.ex
routines 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':docker_instructions/2 · 'Elixir.LivebookWeb.Hub.Teams.DeploymentGroupAgentComponent':fly_instructions/4

References

Credits

Nguyễn Công Tú Finder
Jonatan Kłosko Remediation developer
José Valim Remediation reviewer
Jonatan Männchen / EEF Analyst

CVSS breakdown

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
« All CVEs