CVE-2026-31236

NameCVE-2026-31236
DescriptionThe llm CLI tool thru 0.27.1 contains a critical code injection vulnerability via its --functions command-line argument. This argument is intended to allow users to provide custom Python function definitions. However, the tool directly executes the provided code using the unsafe exec() function without any sanitization, sandboxing, or security restrictions. An attacker can exploit this by crafting a malicious llm command with arbitrary Python code in the --functions argument and using social engineering to trick a victim into running it. This leads to arbitrary code execution on the victim's system, potentially granting the attacker full control.
SourceCVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
llm (PTS)trixie/contrib0.23-1vulnerable
forky, sid0.30-1vulnerable

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
llmsource(unstable)(unfixed)

Notes

[trixie] - llm <no-dsa> (Minor issue)
https://www.notion.so/CVE-2026-31236-35d1e139318881a4a0f1fffcf671f7e3
https://github.com/simonw/llm/security/advisories/GHSA-g52p-p8pm-jjw6

Search for package or bug name: Reporting problems