Skip to content

docs(security): add the release advisory for the credential-exposure fixes - #1185

Merged
Dumbris merged 2 commits into
mainfrom
claude/release-security-notice
Sep 2, 2026
Merged

Dumbris merged 2 commits into
mainfrom
claude/release-security-notice

Conversation

@Dumbris

@Dumbris Dumbris commented Sep 2, 2026

Copy link
Copy Markdown
Member

The release body today is LLM-generated notes from the commit log plus a static download table. That is fine for a feature summary and wrong for anything a user has to act on — a security advisory, a migration step, a breaking change — because it cannot depend on a summarizer choosing to include it.

This adds .github/RELEASE_NOTICE.md, prepended verbatim to the release body when present and a no-op when absent, plus the advisory for the security work in #1181, #1182 and #1183.

Why this one needs to be hand-written

Two of the fixed defects mean shipped versions were weaker than the documentation described, and both have user-facing remediation that no commit-log summary would produce:

The notice splits the logging exposure by the level each class actually required (info / debug / trace) rather than flattening it, because "credentials were in your logs" and "credentials were in your logs only if you enabled debug" are different asks of the reader, and only the first applies by default.

Remediation it states

Rotate the API key, revoke and re-mint agent tokens, rotate upstream credentials that appeared in logs, treat existing log files (including backups) as secret-bearing, and — server edition — re-check admin_emails and revoke tokens belonging to disabled accounts.

Housekeeping

.github/RELEASE_NOTICE.md must be deleted after this release ships, or it repeats on the next one. That is stated in a comment on the workflow step and in the commit message.

Verified: the workflow parses, the notice step sits in the same job as the release step and after its Checkout, the heredoc capture round-trips 5622 bytes, and the delimiter does not collide with the file's contents.

…fixes

The release body is assembled from LLM-generated notes plus a static download
table. That is fine for a feature summary and wrong for anything a user has to
act on, so a security advisory cannot depend on a summarizer choosing to
include it.

Adds .github/RELEASE_NOTICE.md, prepended verbatim to the release body when
present, and a no-op when absent. The notice covers #1180 (any agent token
could read the admin API key, so allowed_servers was not a boundary), #1167
(upstream credentials served to unprivileged callers), #1166 (REST enumeration
ignored token scope, including per-server logs and tool-call payloads), #1158
(credentials in main.log - split by the log level each class required, since
the OAuth authorization code needed no non-default configuration), and the
server-edition defects #1168/#1169.

It states the remediation plainly: rotate the API key, re-mint agent tokens,
rotate upstream credentials that appeared in logs, and treat existing log files
as secret-bearing.

Delete the notice file after this release ships or it repeats on the next one.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 2, 2026 •

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: bbce6be
Status: ✅  Deploy successful!
Preview URL: https://73c22acc.mcpproxy-docs.pages.dev
Branch Preview URL: https://claude-release-security-noti.mcpproxy-docs.pages.dev

View logs

The notice is prepended verbatim to the release body and is written for one
release, so leaving it in place repeats it on the next one - and a reader who
sees the same advisory on three releases stops believing any of them.

That made deletion a required manual step, which is not a step. This fires on
'release: published' and opens a PR removing the file, so the deletion goes
through the same review and checks as any other change and a maintainer who
wants to keep the notice for a follow-up patch release can just close the PR.
It is a no-op when no notice is present, and it will not stack a second PR on
top of an unmerged one.
@github-actions

github-actions Bot commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

📦 Build Artifacts

Workflow Run: View Run
Branch: claude/release-security-notice

Available Artifacts

  • archive-darwin-amd64 (29 MB)
  • archive-darwin-arm64 (26 MB)
  • archive-linux-amd64 (17 MB)
  • archive-linux-arm64 (15 MB)
  • archive-windows-amd64 (29 MB)
  • archive-windows-arm64 (26 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (23 MB)
  • installer-dmg-darwin-arm64 (21 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 33627839307 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Dumbris
Dumbris merged commit 6ee388e into main Sep 2, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants