Time-to-Patch Analysis

How fast do AI/ML packages respond to security vulnerabilities? Benchmarking 75 packages with 3+ known CVEs.

Based on NVD publication-to-modification data. Updated continuously.

75
Packages Analyzed
77.7d
Industry Average
0.0d
Fastest (Gemini CLI)
1372.0d
Slowest (TensorFlow)
CISO Analysis Data updated 2026-08-18

Executive Summary

The AI/ML ecosystem still has a patch-rate gap, but the picture is sharper than the early "crisis" narrative suggested. Across all CVE-to-package associations we track, 41.2% have a documented fix available (1,400 of 3,399 entries) — better than first feared, but well below the 60-70% rate typical of mainstream software. For CISOs managing AI deployments, this means patch management remains a strategic risk decision: when no vendor-supplied fix exists at the moment of disclosure, you cannot simply "patch and move on."

The packages topping the risk-score table are: torch (85/100), ollama (84), mlflow (81), gradio (80), litellm (79). These combine high CVE volume, critical severity, and in many cases active exploitation. They are not niche tools; they are foundational components of enterprise AI stacks.

Key Findings

  • 41.2% global patch coverage across 3,399 CVE-package associations. The remaining 1,400 associations have no documented fix in package metadata at the time of analysis.
  • torch remains #1 by risk score (85/100) — 46 CVEs, ~13% patch coverage. High blast radius through downstream dependents amplifies every vulnerability.
  • ollama (84/100) is the highest-risk inference platform with 29 CVEs including SSRF, authentication bypass, and command injection. Patch coverage at ~10% — release cadence outpaces backport discipline.
  • mlflow (81/100) has 80 CVEs making it the most vulnerability-dense MLOps platform. ~36% patch coverage. Path traversal, authentication bypass, and code execution dominate, particularly concerning given its role in model training pipelines.
  • gradio (80/100) and litellm (79/100) patch faster than peers. ~28% and ~49% of their CVE-products have a recorded fix respectively, meaningfully better than ollama or torch despite similar disclosure volume.
  • TensorFlow has the highest absolute CVE count (438) but a lower risk score (67/100) thanks to Google's relatively mature security process and faster patch cadence than newer frameworks.
  • Newer agent platforms still trail. Flowise, LangFlow, and similar tools continue to show patch coverage in the low double digits while their feature surface grows monthly.

Trend Analysis

The patch-velocity data reveals a fundamental tension in the AI ecosystem: speed of innovation versus security maturity. Established projects (TensorFlow, scikit-learn) maintain better patch coverage because they have dedicated security teams, established CVE processes, and corporate or community backing. The newer wave of LLM frameworks, agent platforms, and inference servers grow user bases faster than their security posture can keep pace.

The "move fast and break things" culture that drove web development's early years is repeating in AI tooling, with higher stakes. An unpatched RCE in a web framework affects a website. An unpatched RCE in an inference server affects every model it serves and every system it connects to.

OpenSSF Scorecard scores correlate moderately with patch velocity: packages scoring above 7/10 patch noticeably faster than those below 4/10. Branch protection, dependency updates, and a published security policy are reliable predictors of patch responsiveness — and they are visible to anyone evaluating a dependency before adopting it.

Recommendations

  1. Evaluate AI dependencies by patch velocity, not just functionality. When choosing between competing AI frameworks, include time-to-patch and patch coverage as selection criteria. A tool that patches in 7 days is categorically safer than one that takes 90 days, regardless of feature parity.
  2. Implement compensating controls for unpatched AI vulnerabilities. With ~41.2% patch coverage, you cannot rely on vendor patches alone. Deploy WAF rules, network segmentation, input validation, and runtime monitoring as compensating controls.
  3. Prioritize patching for the top-5 risk-score packages. If your stack includes torch, ollama, mlflow, gradio, or litellm, treat their CVEs as high-priority patch cycles — these combine high severity, active exploitation, and wide blast radius.
  4. Monitor OpenSSF Scorecards for your AI dependencies. Packages with scores below 4/10 are statistically more likely to have slow or missing patch cycles. Treat that as a red flag in procurement decisions.
  5. Budget for AI-specific vulnerability management. The patch gap means your team will spend disproportionate time on workarounds, compensating controls, and risk acceptances for AI components. Plan staffing and tooling accordingly.

Methodology

Time-to-patch metrics are derived from `cve_products.first_patched_version` — the earliest fixed version recorded against a CVE for a given package. Patch coverage is the share of CVE-product associations with a non-null patched version. Risk scores combine 7+ signals: CVE volume, severity distribution, EPSS exploitation probability, KEV status, blast radius (downstream dependents), OpenSSF scorecard, and patch responsiveness. Data sources include NVD, GitHub Security Advisories, PyPI, npm, OSV, and vendor changelogs. All numeric values in this analysis are pulled live from the database on every page load.

# Package CVEs Patched Patch Rate Avg Days
1 Gemini CLI 3 1 33% 0.0d
2 Cline 3 1 33% 0.0d
3 Local Deep Research 3 3 100% 0.3d
4 LMDeploy 4 1 25% 0.3d
5 H2O 16 1 6% 0.3d
6 Composio 4 1 25% 1.5d
7 Flowise 194 97 50% 1.8d
8 Anthropic Node 3 2 67% 2.9d
9 OpenClaw 542 199 37% 3.3d
10 Claude Code 43 29 67% 4.6d
11 Fickling 16 14 88% 5.4d
12 n8n 196 108 55% 5.6d
13 Open WebUI 158 128 81% 5.8d
14 PraisonAI Agents 53 33 62% 5.9d
15 Microsoft APM 12 8 67% 6.8d
16 HF Datasets 12 10 83% 6.8d
17 LangGraph 15 12 80% 7.9d
18 smolagents 8 2 25% 9.7d
19 MCP Atlassian 8 8 100% 10.3d
20 MLX 4 2 50% 10.9d
21 picklescan 112 59 53% 11.8d
22 Anthropic Python 48 43 90% 11.9d
23 pgvector 3 2 67% 12.9d
24 PraisonAI 152 101 66% 13.8d
25 Cohere 8 1 13% 13.8d
26 BentoML 20 11 55% 14.1d
27 Panel 62 40 65% 14.3d
28 Langroid 11 11 100% 14.4d
29 DeepSeek TUI 4 4 100% 16.6d
30 MCP Server K8s 4 3 75% 20.1d
31 Streamlit 14 2 14% 20.7d
32 OpenAI Python 7 1 14% 23.0d
33 LoLLMs 12 4 33% 23.5d
34 MONAI 8 8 100% 23.6d
35 skops 3 3 100% 26.4d
36 Jupyter 61 33 54% 27.5d
37 SageMaker 6 6 100% 36.3d
38 LangChain Core 9 7 78% 37.5d
39 XGrammar 5 4 80% 39.8d
40 ONNX 14 12 86% 41.2d
41 Milvus 3 1 33% 41.2d
42 Diffusers 4 3 75% 44.2d
43 LiteLLM 41 20 49% 47.1d
44 LangChain Community 7 4 57% 47.6d
45 vLLM 224 55 25% 49.6d
46 Keras 29 17 59% 49.6d
47 Ollama 29 3 10% 49.7d
48 LlamaIndex Core 7 7 100% 49.7d
49 LlamaIndex 15 13 87% 50.0d
50 ExecuTorch 13 12 92% 64.1d
51 MLflow 92 33 36% 69.5d
52 Langflow 138 30 22% 70.2d
53 MS Swift 4 1 25% 84.2d
54 Transformers 54 23 43% 87.2d
55 Chainlit 4 2 50% 88.1d
56 InvokeAI 6 3 50% 91.6d
57 Gradio 83 23 28% 104.6d
58 Ray 19 13 68% 131.7d
59 LLaMA Factory 4 3 75% 166.5d
60 Pydantic AI 12 11 92% 189.0d
61 LangChain 74 18 24% 209.3d
62 Jupyter Notebook 27 18 67% 234.6d
63 PyTorch 56 7 13% 255.9d
64 Label Studio 7 5 71% 274.9d
65 OpenAI Node 13 8 62% 338.1d
66 PyTorch Lightning 8 4 50% 414.2d
67 TensorFlow 470 20 4% 1372.0d
68 Mistral AI 5 0 0% -
69 LlamaIndex 6 0 0% -
70 ChromaDB 6 0 0% -
71 scikit-learn 3 0 0% -
72 GPT Academic 6 0 0% -
73 ChuanhuChatGPT 4 0 0% -
74 WPBot 11 0 0% -
75 LLaMA Factory 5 0 0% -

Monitor your stack's patch velocity

Get real-time alerts when CVEs in your AI stack get patched. Track patch rates and response times for the packages you depend on.

Start Monitoring