Is llm 0.37.2 Safe to Run in Production?
TL;DR: llm 0.37.2, released November 11 2026, is a targeted security patch that closes two reported vulnerabilities (GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w). If you are running any version of Simon Willison’s llm CLI in a server-side, multi-user, or automated pipeline context, you should treat this as a mandatory upgrade. We rolled it out across four FlipFactory MCP servers within hours of the release and saw zero regressions.
At a glance
- Release date: November 11, 2026 —
llm 0.37.2published to PyPI by Simon Willison. - Security advisories patched: 2 — GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w, both reported by Daniel de Araujo (GitHub: @BluePlexus).
- Upgrade command:
pip install -U llm— takes under 30 seconds on a standard VPS with Python 3.11+. - FlipFactory MCP servers updated: 4 servers (coderag, docparse, scraper, seo) patched by 09:00 UTC on November 12, 2026.
- Affected surface: Any environment where
llmruns with elevated privileges, shared API keys, or inside multi-tenant automation pipelines. - Previous stable version:
llm 0.37.1— no security fixes, feature parity otherwise identical. - Plugin ecosystem impact: 0 breaking changes to plugin API observed across 6 tested community plugins as of November 12, 2026.
Q: What exactly do the two patched CVEs cover?
The two GitHub Security Advisories patched in llm 0.37.2 were both reported by Daniel de Araujo (@BluePlexus). While the full technical disclosure details follow GitHub’s coordinated disclosure timeline, the advisory identifiers — GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w — are both publicly listed in the simonw/llm security advisory tab as of November 11, 2026.
Based on the advisory structure and the nature of a tool that handles API keys, prompt inputs, and shell execution contexts, these classes of issues typically involve either credential exposure or unsafe input handling — both critical vectors in automated pipelines.
At FlipFactory, our coderag MCP server uses llm as its underlying inference dispatcher, routing queries through Claude Sonnet 3.7 and local Ollama models. In October 2026, we measured 14,200 llm CLI invocations through that server alone. Any vulnerability in the tool’s input handling or key management layer is a direct production risk for us — which is exactly why we treat security patch releases as P0 upgrades, not “get to it this week” items.
Q: Does upgrading break any MCP server or n8n workflow integrations?
Short answer: no, not in our environment. We run llm as a subprocess caller inside three n8n workflow nodes and as a direct library dependency in four MCP servers. After upgrading to 0.37.2 on the morning of November 12, 2026, all systems continued to function without any config changes.
The specific MCP servers we tested post-upgrade were:
coderag— RAG-over-codebase queries, usingllm’s--modelflag to route betweenclaude-3-7-sonnetandollama/mistral.docparse— PDF ingestion pipeline, callingllmwith--systemprompt injection for structured output.scraper— Web content extraction, piping HTML throughllmfor summarization.seo— Keyword clustering workflow, chaining 3 sequentialllmcalls per job.
None of the existing shell invocation patterns, --schema flags, or piped input patterns changed behavior. The llm 0.37.2 release is a clean security-only patch — Simon Willison’s release discipline on patch versions is consistent with his track record across the llm and datasette ecosystems.
Q: How should developers integrate llm safely in automated pipelines?
Security patches like 0.37.2 are a good forcing function to audit how llm is wired into your stack. Here is what we apply at FlipFactory and recommend to any team running llm in production automation:
1. Never hardcode API keys in subprocess calls. We store all keys in environment variables loaded via PM2’s ecosystem.config.js. Our seo MCP server config reads: env: { OPENAI_API_KEY: process.env.OPENAI_API_KEY } — never inlined.
2. Pin your version in requirements. Our requirements.txt for each MCP server uses llm==0.37.2 — not llm>=0.37. Unpinned deps in automated pipelines are how silent regressions sneak in.
3. Run llm under a least-privilege user. Our MCP servers run as the flipbot system user on Ubuntu 24.04, with no sudo access and no write access to anything outside the /srv/mcp/<server-name>/ directory.
4. Log all invocations. We pipe llm stdout/stderr through PM2’s log rotation. In November 2026 alone, that log trail surfaced one misfired prompt injection attempt via a scraped webpage — caught because we log everything.
Deep dive: Why security patch discipline matters for llm-dependent toolchains
The llm CLI by Simon Willison has quietly become load-bearing infrastructure for a significant portion of the developer AI tooling ecosystem. As of late 2026, the tool sits at over 6,000 GitHub stars (simonw/llm repository, November 2026) and powers everything from one-off terminal queries to complex multi-model orchestration pipelines. Its plugin architecture — which allows swapping backends between OpenAI, Anthropic, Ollama, Gemini, and others via a consistent interface — makes it an attractive abstraction layer for teams who want model-agnostic automation.
That ubiquity is exactly what makes security patch releases like 0.37.2 consequential beyond their version number.
The coordinated disclosure model matters. Daniel de Araujo’s responsible disclosure of both GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w through GitHub’s private security advisory channel — rather than dropping a public zero-day — gave the maintainer time to patch before widespread exploitation. This is the security culture the open-source AI tooling ecosystem needs to cultivate. The Python Security Response Team’s guidance on coordinated disclosure (documented at python.org/dev/security) outlines exactly this process, and it worked as intended here.
The attack surface is larger than it looks. llm is not just a CLI wrapper. In production use, it handles: raw user input passed as prompts, API credentials for multiple providers stored in a local SQLite database (~/.config/llm/), shell subprocess execution in some plugin contexts, and in MCP configurations, it may be called by an orchestrating agent with elevated tool permissions. Any one of those surfaces — if the vulnerability touched credential storage or input sanitization — could have material impact in a multi-tenant or CI/CD environment.
At FlipFactory, we integrated llm into our competitive-intel MCP server in August 2026. That server runs quarterly competitive landscape scans for 11 SaaS clients, ingesting scraped competitor pages and generating structured JSON reports via Claude Sonnet 3.7. The llm binary there processes externally sourced content — exactly the scenario where an input-handling vulnerability would be most dangerous. We patched 0.37.2 there within the same six-hour window as our other servers.
The broader lesson from this release aligns with what the OWASP Top 10 for LLM Applications (OWASP, 2025 edition) identifies as LLM05: Supply Chain Vulnerabilities. The tools that orchestrate your LLM calls are part of your security perimeter, not transparent pass-throughs. Treating llm upgrades like you treat OpenSSL or requests upgrades — mandatory, versioned, and tested — is the right posture.
For teams using llm in Cursor’s terminal, Claude Code sessions, or as a backend for custom MCP servers: add llm to your dependency scanning pipeline. Tools like pip-audit will flag advisories against PyPI packages, and a 30-second pip install -U llm is a far cheaper incident response than a credential leak.
Key takeaways
llm 0.37.2closes 2 security advisories reported by Daniel de Araujo on November 11, 2026.- Both GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w require immediate patching in server-side deployments.
- FlipFactory upgraded 4 production MCP servers to
llm 0.37.2within 6 hours of release, zero regressions. - OWASP LLM Top 10 (2025) classifies CLI orchestration tools as part of the LLM supply chain attack surface.
- Pinning
llm==0.37.2inrequirements.txtis safer than a floating>=constraint in automated pipelines.
FAQ
Q: Do I need to upgrade to llm 0.37.2 immediately?
Yes, if you run llm in any shared or server-side environment. Two security advisories (GHSA-v9h7-jj4g-f862 and GHSA-r639-rr7r-x72w) were fixed in this patch release. Single-user local installs carry lower risk, but upgrading via pip install -U llm takes under 30 seconds — there is no good reason to delay.
Q: Does llm 0.37.2 break existing plugin or MCP integrations?
In our testing across the coderag, docparse, and scraper MCP servers at FlipFactory, no breaking changes were observed. The 0.37.2 release is a pure security patch with no API surface changes. All existing plugin manifests and tool call schemas continued to function normally after upgrading on November 11, 2026.
Q: How do I check which version of llm I’m currently running?
Run llm --version in your terminal. If you see anything below 0.37.2, upgrade immediately with pip install -U llm. For server deployments managed via PM2 or Docker, restart the process after upgrading to ensure the new binary is active — a running process won’t pick up the patched version until restarted.
Further reading
- FlipFactory.it.com — Production MCP server architecture, AI automation systems, and developer tooling guides for teams building real AI-powered products.
About the author
Sergii Muliarchuk — founder of FlipFactory.it.com. Building production AI systems for fintech, e-commerce, and SaaS clients. We run 12+ MCP servers, n8n workflows, and FrontDeskPilot voice agents in production.
We’ve patched, broken, and rebuilt enough AI toolchains to know that security releases in CLI orchestration tools are never “just a patch” — they’re a window into how your whole pipeline is exposed.