Time-to-Patch Analysis

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

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

55
Packages Analyzed
85.3d
Industry Average
0.0d
Fastest (Ollama)
1372.0d
Slowest (TensorFlow)
CISO Analysis Data updated 2026-05-19

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, 42.7% have a documented fix available (775 of 1,816 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

  • 42.7% global patch coverage across 1,816 CVE-package associations. The remaining 775 associations have no documented fix in package metadata at the time of analysis.
  • torch remains #1 by risk score (85/100) — 40 CVEs, ~7% patch coverage. High blast radius through downstream dependents amplifies every vulnerability.
  • ollama (84/100) is the highest-risk inference platform with 26 CVEs including SSRF, authentication bypass, and command injection. Patch coverage at ~12% — release cadence outpaces backport discipline.
  • mlflow (81/100) has 68 CVEs making it the most vulnerability-dense MLOps platform. ~26% 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. ~27% and ~55% 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 (434) 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 ~42.7% 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 Ollama 26 3 12% 0.0d
2 OpenAI Node 6 3 50% 0.0d
3 Streamlit 13 1 8% 0.0d
4 Panel 4 3 75% 0.0d
5 Claude Code 11 4 36% 0.2d
6 PraisonAI Agents 22 19 86% 0.2d
7 PraisonAI 44 37 84% 0.2d
8 Jupyter 16 11 69% 0.3d
9 OpenClaw 140 127 91% 0.4d
10 Anthropic Python 5 4 80% 0.5d
11 LoLLMs 9 3 33% 0.8d
12 Flowise 95 57 60% 1.4d
13 n8n 97 44 45% 2.5d
14 Anthropic Node 3 2 67% 2.9d
15 LangGraph 7 7 100% 3.2d
16 Open WebUI 99 73 74% 4.2d
17 XGrammar 4 4 100% 5.3d
18 Fickling 14 14 100% 5.4d
19 smolagents 8 2 25% 9.7d
20 MLX 4 2 50% 10.9d
21 BentoML 20 11 55% 11.0d
22 picklescan 62 59 95% 11.8d
23 Pydantic AI 4 4 100% 14.0d
24 MONAI 5 5 100% 14.7d
25 LangChain Core 8 7 88% 19.9d
26 skops 3 3 100% 26.4d
27 ONNX 10 9 90% 29.3d
28 Keras 19 10 53% 32.0d
29 vLLM 71 40 56% 32.6d
30 LiteLLM 20 11 55% 41.6d
31 LangChain Community 6 4 67% 47.6d
32 LlamaIndex Core 7 7 100% 49.7d
33 LlamaIndex 15 13 87% 50.0d
34 SageMaker 5 4 80% 52.7d
35 Langflow 59 18 31% 53.1d
36 MLflow 78 20 26% 57.7d
37 ExecuTorch 13 12 92% 64.1d
38 Transformers 46 18 39% 101.2d
39 Gradio 79 21 27% 110.4d
40 PyTorch 43 3 7% 142.1d
41 Label Studio 7 5 71% 145.1d
42 LLaMA Factory 4 3 75% 166.5d
43 LangChain 66 14 21% 183.2d
44 Ray 9 7 78% 186.1d
45 Jupyter Notebook 12 9 75% 451.7d
46 PyTorch Lightning 5 2 40% 496.4d
47 TensorFlow 454 20 4% 1372.0d
48 Mistral AI 4 0 0% -
49 LlamaIndex 6 0 0% -
50 scikit-learn 3 0 0% -
51 GPT Academic 6 0 0% -
52 ChuanhuChatGPT 4 0 0% -
53 WPBot 4 0 0% -
54 OpenAI Python 6 0 0% -
55 LLaMA Factory 4 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