From 47aea5fb6a2ef5da6950c60a7c1e214e7763f844 Mon Sep 17 00:00:00 2001 From: Lucas Mundim Date: Fri, 10 Jul 2026 00:19:46 -0300 Subject: [PATCH 1/3] =?UTF-8?q?release:=20v0.2.4=20=E2=80=94=20rebuild=20t?= =?UTF-8?q?o=20clear=20libssh2=20CVE-2026-55200=20(PLAT-1259)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cuts v0.2.4 to rebuild the image on the current python:3.12-slim base, clearing a CRITICAL container-image vulnerability SCC flagged on the deployed digest: libssh2 CVE-2026-55200 (CVSS 8.1, exploit available), an OS base-layer package. No application changes. Also ships the pending [Unreleased] startup/OpenAPI-fetch fix. --- RELEASE.md | 9 +++++++++ pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 139de25..e51f9a5 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -10,6 +10,15 @@ rename the `[Unreleased]` heading to the new `## vX.Y.Z` and bump ## [Unreleased] +## v0.2.4 + +### Security + +- Rebuild on the current `python:3.12-slim` base to clear a CRITICAL container-image + vulnerability flagged by Security Command Center on the deployed image — `libssh2` + CVE-2026-55200 (CVSS 8.1, exploit available), an OS base-layer package. No application + changes; a fresh build pulls the patched `libssh2`. (PLAT-1259) + ### Fixed - Startup no longer silently degrades to a token-tools-only catalog when the diff --git a/pyproject.toml b/pyproject.toml index 42fcb2a..50ece72 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openfilter-mcp" -version = "0.2.3" +version = "0.2.4" requires-python = ">=3.10,<3.13" dependencies = [ "fastmcp>=2.13.1", From d8963088435ed8187354b009d49e44d116096137 Mon Sep 17 00:00:00 2001 From: Lucas Mundim Date: Fri, 10 Jul 2026 11:56:43 -0300 Subject: [PATCH 2/3] address review: sync uv.lock + deterministic libssh2 upgrade - Bump uv.lock openfilter-mcp 0.2.3 -> 0.2.4 so `uv sync --locked` stays reproducible (the version bump left it out of sync). Verified with `uv lock --check`. - Explicitly `apt-get --only-upgrade libssh2-1t64` in Dockerfile and Dockerfile.slim so CVE-2026-55200 is cleared deterministically instead of relying on the floating python:3.12-slim base already carrying the patch. --- Dockerfile | 1 + Dockerfile.slim | 7 ++++++- RELEASE.md | 10 ++++++---- uv.lock | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8b244ed..095077b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ RUN apt-get update && apt-get install -y \ curl \ gcc \ g++ \ + && apt-get install -y --only-upgrade libssh2-1t64 \ && rm -rf /var/lib/apt/lists/* # Disable strict host key checking for container diff --git a/Dockerfile.slim b/Dockerfile.slim index 522c4fd..06f3c58 100644 --- a/Dockerfile.slim +++ b/Dockerfile.slim @@ -1,7 +1,12 @@ FROM python:3.12-slim COPY --from=ghcr.io/astral-sh/uv:0.9.6 /uv /uvx /bin/ -RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/* +# Explicitly upgrade libssh2 (trixie t64 package) so CVE-2026-55200 is cleared +# deterministically, not only when the floating base already happens to carry the +# patched package (PLAT-1259). +RUN apt-get update && apt-get install -y git curl \ + && apt-get install -y --only-upgrade libssh2-1t64 \ + && rm -rf /var/lib/apt/lists/* WORKDIR /app diff --git a/RELEASE.md b/RELEASE.md index e51f9a5..58b5817 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -14,10 +14,12 @@ rename the `[Unreleased]` heading to the new `## vX.Y.Z` and bump ### Security -- Rebuild on the current `python:3.12-slim` base to clear a CRITICAL container-image - vulnerability flagged by Security Command Center on the deployed image — `libssh2` - CVE-2026-55200 (CVSS 8.1, exploit available), an OS base-layer package. No application - changes; a fresh build pulls the patched `libssh2`. (PLAT-1259) +- Clear a CRITICAL container-image vulnerability flagged by Security Command Center — + `libssh2` CVE-2026-55200 (CVSS 8.1, exploit available), an OS base-layer package. + Rebuilds on `python:3.12-slim` and **explicitly upgrades `libssh2`** so the fix is + deterministic rather than dependent on the floating base snapshot. Also bumps + `uv.lock` to `0.2.4` so `uv sync --locked` stays reproducible. No application changes. + (PLAT-1259) ### Fixed diff --git a/uv.lock b/uv.lock index 907e467..bae894f 100644 --- a/uv.lock +++ b/uv.lock @@ -1591,7 +1591,7 @@ wheels = [ [[package]] name = "openfilter-mcp" -version = "0.2.3" +version = "0.2.4" source = { editable = "." } dependencies = [ { name = "fastmcp" }, From 21781034f5f781184bf2565682e1ffb15157d99c Mon Sep 17 00:00:00 2001 From: Lucas Mundim Date: Fri, 10 Jul 2026 12:25:30 -0300 Subject: [PATCH 3/3] address review: patch libssh2 in Dockerfile.gpu too Dockerfile and Dockerfile.slim already upgrade libssh2 explicitly; do the same in Dockerfile.gpu for parity. Its final stage is debian:bookworm-slim (Debian 12), where the package is libssh2-1 (not the trixie t64 name). --- Dockerfile.gpu | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Dockerfile.gpu b/Dockerfile.gpu index 3a9f1d6..0dd2f82 100644 --- a/Dockerfile.gpu +++ b/Dockerfile.gpu @@ -18,7 +18,12 @@ RUN uv sync --python 3.12 --no-dev --group code-search --no-install-workspace FROM debian:bookworm-slim COPY --from=ghcr.io/astral-sh/uv:0.9.6 /uv /uvx /bin/ -RUN apt-get update && apt-get install -y git curl libgomp1 && rm -rf /var/lib/apt/lists/* +# Deterministically clear libssh2 CVE-2026-55200 (PLAT-1259). Final stage is +# debian:bookworm-slim (Debian 12), where the package is libssh2-1 (not the +# trixie t64 name used in Dockerfile/Dockerfile.slim). +RUN apt-get update && apt-get install -y git curl libgomp1 \ + && apt-get install -y --only-upgrade libssh2-1 \ + && rm -rf /var/lib/apt/lists/* RUN uv python install 3.12 # Copy CUDA runtime libs from the builder (only what llama-cpp needs at runtime)