patch-cve
Skill3.7k starsChanged 8 months agoApache-2.0View on GitHub
Use this skill when the user asks to "patch a CVE", "fix a CVE", "handle a CVE", "check a CVE", or discusses Docker image vulnerabilities, docker scout findings, or Go/dependency CVE remediation in the Dockerfile.
- Installs packages
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 11 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Run docker scout cves on the current image to understand which package/binary introduces the CVE:
- Distinctive: line 33
Before rebuilding from source, always check if a newer release of the affected tool already includes the fix.
- Distinctive: line 60
Check if a newer version is available:
- Distinctive: line 67
Check if a newer version fixes the CVE:
- Distinctive: line 78
If a newer release includes the fix, simply update the version in the Dockerfile:
- Distinctive: line 85
If upstream hasn't released a fix yet, rebuild the tool from source.
- Very specific: line 100
Create a build script in scripts/ (see scripts/build_go_binaries.sh for reference)
- Very specific: line 106
Use ARG TARGETARCH in Dockerfile to select the right binary:
- Distinctive: line 111
Consider using Git LFS for large binaries (~200MB+)
- Distinctive: line 149
Check if the fix introduced any new vulnerabilities or if there are other CVEs that should be addressed.
- Distinctive: line 166
Remove temporary workarounds: when upstream releases a fix.
- Distinctive: line 179
Check if newer releases of each tool use a fixed Go version
- Distinctive: line 180
Only rebuild the ones that still use a vulnerable Go version
- Distinctive: line 184
When the image contains multiple Go binaries (e.g., ArgoCD + Helm), each may use a different Go version.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Patching CVEs in the Docker Image
This skill provides the workflow for patching CVEs found in the HolmesGPT Docker image. It covers identifying the source, checking if upstream fixes exist, applying patches, and validating the fix.
Workflow Overview
1. Identify → 2. Check upstream → 3. Apply fix → 4. Build → 5. Validate → 6. CleanupStep 1: Identify the CVE Source
Run docker scout cves on the current image to understand which package/binary introduces the CVE:
docker scout cves <image> 2>&1 | grep -B20 -A5 "CVE-XXXX-XXXXX"Key info to extract:
- Affected package: e.g.,
stdlib 1.25.5(Go standard library), a system package, or a Python dependency - Affected range: e.g.,
>=1.25.0-0, <1.25.7 - Fixed version: e.g.,
1.25.7 - Which binary: identify which binary in the image pulls in the vulnerable dependency
Step 2: Check if Upstream Fixes Exist
Before rebuilding from source, always check if a newer release of the affected tool already includes the fix.
For Go-based tools (ArgoCD, Helm, etc.)
- Check the latest release version:
curl -s https://api.github.com/repos/<org>/<repo>/releases/latest | python3 -c "import sys,json; print(json.load(sys.stdin)['tag_name'])" - Check Go version in that release — download the binary and inspect:
Or check# For tools that show version info with Go version ./<tool> versiongo.modin the release tag:curl -s https://raw.githubusercontent.com/<org>/<repo>/<tag>/go.mod | head -5Important:
go.modshows the minimum Go version, but the binary may be compiled with a newer Go toolchain. Always prefer checking the actual binary's version output. - Check upstream PRs/issues for the CVE — it may be merged to
masterbut not yet in a release branch. Search:https://github.com/<org>/<repo>/pulls?q=CVE-XXXX-XXXXX
For system packages (apt)
Check if a newer version is available:
apt-get update && apt-cache policy <package>For Python dependencies
Check if a newer version fixes the CVE:
pip index versions <package>Step 3: Apply the Fix
Choose the appropriate strategy based on findings:
Strategy A: Upgrade to a fixed upstream release (preferred)
If a newer release includes the fix, simply update the version in the Dockerfile:
ARG TOOL_VERSION=vX.Y.Z # Updated from vX.Y.W to fix CVE-XXXX-XXXXXStrategy B: Rebuild from source with patched compiler/dependency
If upstream hasn't released a fix yet, rebuild the tool from source. For Go CVEs:
FROM golang:<fixed-version> AS go-builder
RUN git clone --depth 1 --branch <version> <repo> /build/<tool>
WORKDIR /build/<tool>
RUN CGO_ENABLED=0 go build -o /go/bin/<tool> <build-path>Or use the pre-built binary approach (see Strategy C).
Strategy C: Pre-build binaries locally (fastest Docker builds)
For tools that are slow to compile, build locally for both architectures and commit to the repo:
- Create a build script in
scripts/(seescripts/build_go_binaries.shfor reference) - Build for both
linux/amd64andlinux/arm64using cross-compilation:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/<tool>/amd64/<tool> <build-path> CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o bin/<tool>/arm64/<tool> <build-path> - Use
ARG TARGETARCHin Dockerfile to select the right binary:ARG TARGETARCH COPY bin/<tool>/${TARGETARCH}/<tool> /usr/local/bin/<tool> - Consider using Git LFS for large binaries (~200MB+)
Strategy D: Pin system package version
For apt packages:
RUN apt-get install -y <package>=<fixed-version>Step 4: Build the Docker Image
Build for the target platform:
docker build --platform linux/amd64 -t holmes-cve-test:latest .Note: For a quick validation, building for a single platform is sufficient. Multi-platform builds (
linux/amd64,linux/arm64) can be done after the fix is confirmed.
Step 5: Validate the Fix
This is the most critical step. Never skip validation.
5a: Check the specific CVE is gone
docker scout cves holmes-cve-test:latest 2>&1 | grep -A5 "CVE-XXXX-XXXXX"- If no output → CVE is fixed
- If still present → the fix didn't work, go back to Step 2
5b: Run a full scan and review remaining CVEs
docker scout cves holmes-cve-test:latest 2>&1 | grep -E "✗ (CRITICAL|HIGH)"Check if the fix introduced any new vulnerabilities or if there are other CVEs that should be addressed.
5c: Verify the tool still works
docker run --rm holmes-cve-test:latest <tool> version
docker run --rm holmes-cve-test:latest <tool> --helpStep 6: Document and Clean Up
- Add comments in the Dockerfile explaining the CVE patch and when it can be reverted:
# Rebuilt with Go 1.25.7 to fix CVE-2025-68121. # Revert when <tool> releases a version built with Go >= 1.25.7. - Remove temporary workarounds when upstream releases a fix. Keep track of what needs reverting.
- Clean up test images:
docker rmi holmes-cve-test:latest
Common Patterns
Go stdlib CVEs
These are the most common. A CVE in Go's standard library affects every Go binary in the image. Steps:
- Identify all Go binaries in the image and their Go versions
- Check if newer releases of each tool use a fixed Go version
- Only rebuild the ones that still use a vulnerable Go version
Multi-binary images
When the image contains multiple Go binaries (e.g., ArgoCD + Helm), each may use a different Go version. Check and fix each independently — don't assume fixing one fixes all.
Checklist
- Identified which binary/package introduces the CVE
- Checked latest upstream releases for a fix
- Checked upstream PRs/issues for pending fixes
- Applied the fix (upgrade or rebuild)
- Built the Docker image successfully
- Ran
docker scout cvesand confirmed the CVE is gone - Verified the patched tool still works (
--help,version) - Added Dockerfile comments explaining the patch and revert conditions
- Confirmed both architectures are supported (amd64 + arm64)
Trending
Steady talk.about the whole repository
Who's talking about robusta-dev/holmesgpt
- cncf/sandbox“[Sandbox] HolmesGPT”GitHub · Jun 15, 2025 · 37 reactions
- @kube.archi“HolmesGPT is a tool that investigates incidents and provides root cause analysis for various issues, …”Bluesky · Jul 10, 2025 · 4 likes
- A Hacker News story“HolmesGPT – The Open Source On-Call/DevOps Agent”Hacker News · Aug 23, 2024 · 4 points
- vscode-kubernetes-tools/vscode-kubernetes-tools“Feature Request: Add HolmesGPT as a built-in diagnostic command for Kubernetes clusters”GitHub · Feb 3, 2026 · 3 reactions
- HolmesGPT/holmesgpt“HolmesGPT Operator (checks)”GitHub · Sep 22, 2025 · 3 reactions
The biggest 5 of 55 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 55
Talked about on GitHub, Hacker News and Bluesky (55 times).
On GitHub · 50
- Jun 15, 2025[Sandbox] HolmesGPT — cncf/sandbox37 reactions · 22 comments
- Feb 3, 2026Feature Request: Add HolmesGPT as a built-in diagnostic command for Kubernetes clusters — vscode-kubernetes-tools/vscode-kubernetes-tools3 reactions · 1 comment
- Sep 22, 2025HolmesGPT Operator (checks) — HolmesGPT/holmesgpt3 reactions
- Oct 6, 2025feat: Add experimental AG-UI supported chat endpoint and PPL query assist — HolmesGPT/holmesgpt1 reaction · 10 comments
- Jul 21, 2025Interactive mode: show truncation line in /show — HolmesGPT/holmesgpt1 reaction
45 more on GitHub
- May 25, 2025fix typer compatibility issue — HolmesGPT/holmesgpt1 reaction · 2 comments
- Mar 14, 2025brew install fails on ubuntu 22.04 — HolmesGPT/holmesgpt1 reaction · 2 comments
- Oct 12, 2026Broken links detected by scheduled check — be-next/awesome-performance-engineering0 reactions · 1 comment
- Aug 1, 2026docs(1806): Tier C PR3b batch 1 — mechanical HAPI/HolmesGPT -> KA sweep (37 files) — jordigilh/kubernaut0 reactions
- Mar 31, 2026Support pluggable LLM providers — eliminate mandatory Anthropic API key for local use — muras3/3am0 reactions · 1 comment
- Mar 26, 2026feat: add holmesgpt.dev CRD schemas (HealthCheck, ScheduledHealthCheck v1alpha1) — datreeio/CRDs-catalog0 reactions
- Mar 15, 2026Pin HolmesGPT submodule to commit 85ce5b39 and remove branch=master tracking — jordigilh/kubernaut0 reactions
- Feb 3, 2026analysisコマンド: 根本原因分析(RCA)の実装 — 3-shake/alert-menta0 reactions
- Dec 18, 2025chore(deps): update dependency holmesgpt/holmesgpt to v0.17.0 — uniget-org/tools0 reactions · 3 comments
- Nov 9, 2025helm: Add dedicated clusterName Helm value — HolmesGPT/holmesgpt0 reactions · 1 comment
- Nov 3, 2025Change license to apache 2.0 — HolmesGPT/holmesgpt0 reactions · 4 comments
- Oct 27, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.21.0 — killo431/tools0 reactions
- Oct 13, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.16.0 — uniget-org/tools0 reactions · 1 comment
- Oct 7, 2025fix: allow the user to config api key in config file — HolmesGPT/holmesgpt0 reactions · 2 comments
- Oct 3, 2025[DRAFT] Add experimental AG-UI supported chat endpoint and PPL query assist — kylehounslow/holmesgpt0 reactions
- Sep 16, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.14.2 — uniget-org/tools0 reactions · 3 comments
- Sep 7, 2025add free form tempo toolset — HolmesGPT/holmesgpt0 reactions · 2 comments
- Sep 4, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.13.3 — uniget-org/tools0 reactions · 1 comment
- Aug 27, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.13.1 — uniget-org/tools0 reactions · 3 comments
- Aug 22, 2025Fixes to `holmes version` — HolmesGPT/holmesgpt0 reactions · 5 comments
- Aug 21, 2025holmes version does not return expectedly — HolmesGPT/holmesgpt0 reactions · 2 comments
- Aug 19, 2025toolset/mcp: Add support for enum for input schema — HolmesGPT/holmesgpt0 reactions · 4 comments
- Aug 15, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.12.5 — uniget-org/tools0 reactions · 3 comments
- Aug 13, 2025Fix case sensitivity in model cost-lookup — HolmesGPT/holmesgpt0 reactions · 3 comments
- Aug 4, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.12.4 — uniget-org/tools0 reactions · 3 comments
- Jul 31, 2025make agent name in welcome banner configurable — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 28, 2025[ROB-1732] Holmes able to unzip logs from findings — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 25, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.12.3 — uniget-org/tools0 reactions · 3 comments
- Jul 22, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.12.0 — uniget-org/tools0 reactions · 3 comments
- Jul 22, 2025Support otel for tracing llm calls — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 18, 2025feat: add flag to refresh toolsets status — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 17, 2025ROB-1740: datadog metrics toolset — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 3, 2025homesgpt complain `invalid sort-by value` for --sort-by=.lastTimestamp, which is valid — HolmesGPT/holmesgpt0 reactions · 2 comments
- Jul 1, 2025chore: check toolset prerequisites in parallel — HolmesGPT/holmesgpt0 reactions · 3 comments
- Jun 25, 2025Tool output can be printed out of order due to parallel tool calling — HolmesGPT/holmesgpt0 reactions
- Jun 17, 2025bash toolset breaks — HolmesGPT/holmesgpt0 reactions · 1 comment
- Jun 5, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.11.5 — uniget-org/tools0 reactions · 3 comments
- May 16, 2025Broken install because of codesign failure — robusta-dev/homebrew-holmesgpt0 reactions · 2 comments
- May 16, 2025Speed up cli startup time — HolmesGPT/holmesgpt0 reactions · 5 comments
- May 13, 2025Wrong permissions prevent `codesign` from succeeding — Homebrew/brew0 reactions · 4 comments
- May 13, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.11.4 — uniget-org/tools0 reactions · 3 comments
- May 12, 2025chore(deps): update dependency robusta-dev/holmesgpt to v0.11.1 — uniget-org/tools0 reactions · 3 comments
- May 6, 2025[bug]The CLI install instructions , does not install the latest version of Holmes GPT — HolmesGPT/holmesgpt0 reactions · 4 comments
- Mar 19, 2025Installing 0.10.3-alpha shows error using brew on M1 — HolmesGPT/holmesgpt0 reactions · 1 comment
- Feb 11, 2025How to set temperature from 0.00000001 to 0.01 — HolmesGPT/holmesgpt0 reactions · 2 comments
On Hacker News · 3
- Aug 23, 2024HolmesGPT – The Open Source On-Call/DevOps Agent4 points
- Mar 24, 2025Show HN: HolmesGPT – OSS AI Agent for On-Call and Observability2 points
- Nov 6, 2024Show HN: We released an AI Agent for Prometheus alerts and on-call1 point
On Bluesky · 2
- Jul 10, 2025HolmesGPT is a tool that investigates incidents and provides root cause analysis for various issues, including Kubernetes, Prometheus,… — @kube.archi4 likes and reposts
- Jun 10, 2025HolmesGPT is a tool that investigates incidents and provides root cause analysis for various issues, including Kubernetes, Prometheus,… — @kube.archi3 likes and reposts · 1 reply
Other versions1 project uses a version of this.
Word for word · 1
- HolmesGPT/holmesgpt★ 3.7k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- benchmark-judgeSkill
- create-evalSkill
- review-eval-runSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

