Releases: mitchallen/random-mcp-server
Releases · mitchallen/random-mcp-server
Release list
v0.2.6
Security
- Bumped cryptography 49.0.0 → 50.0.0 in
uv.lock
(GHSA advisory, high severity): PKCS#7
EnvelopedDatadecryption exposed a Bleichenbacher oracle through
distinguishable errors and timing. The package is a transitive dependency
(viaauthlib/joserfc/pyjwtin the FastMCP auth stack) and this
server does not use PKCS#7EnvelopedData, so exposure was minimal — but the
image installsuv sync --frozen, so the fix only reaches users in a
published release.
Changed
- Dependabot auto-merge now matches the
uvpackage ecosystem. The
condition testedpackage-ecosystem == 'pip'— the name declared in
dependabot.yml— but the metadata action reports Dependabot's internal
identifier, which isuvfor a project resolved throughuv.lock. The
Python branch therefore never matched and no Python bump could auto-merge.
It went unnoticed because the only Python PR so far was a major, which is
excluded by design anyway. make releasenow creates the matching GitHub Release automatically
(gh release create) after pushing the tag, using that version's
CHANGELOG.mdsection as the release notes (extracted withawk).
Previously the target only pushed the tag, so the Releases page drifted
behind the tags and published images.make releasenow verifies thatCHANGELOG.mdhas a## [X.Y.Z]section for
the version being released before it bumps, tags, or pushes anything. The
target version is computed withuv version --dry-run(no mutation), and the
release aborts early with a helpful message if the entry is missing — so a
release can no longer be cut with empty auto-generated GitHub Release notes.
v0.2.5
Changed
- Switched the Docker base image from
python:3.12-slim-bookworm(Debian) to a
distroless Chainguard/Wolfi Python base (cgr.dev/chainguard/python). The
Debian base carried numerous OS-package CVEs (perl, zlib, sqlite, util-linux,
ncurses) with no upstream fix available; the Wolfi image ships those
packages away entirely and scans 0 vulnerabilities at every severity. The
venv is built on the matching-devimage so its interpreter resolves at
runtime; the image still runs as a non-root user. The previousapt-get upgradeanduseraddsteps are gone (no package manager / already non-root). make scannow fails on fixable CRITICAL/HIGH vulnerabilities
(--severity CRITICAL,HIGH --ignore-unfixed --exit-code 1), matching the CI
gate for local parity.
Security
- Automated container image vulnerability scanning with Trivy. The new
image-scanworkflow builds the image and fails the build on fixable
CRITICAL/HIGH vulnerabilities on every pull request and push tomain, and
thepublish/publish-dockerhubworkflows run the same gate before
pushing so a vulnerable image can't reach GHCR or Docker Hub. - Added a
scan-scheduledworkflow that re-scans the published:latestimage
daily and uploads results (all severities, including unfixed) to the GitHub
Security tab, catching CVEs disclosed after build time. - Added a Dependabot config (
.github/dependabot.yml) opening weekly update PRs
for the Docker base image, GitHub Actions, and Python dependencies, and
enabled Dependabot alerts + security updates on the repository.