docs(skills): send CVE advisory mails from the ASF CVE tool - #1851
Merged
Conversation
Advisory mails for S2-070..S2-074 were composed and sent by hand from Gmail. The bodies were already the CVE tool's generated text, but every send failed at least once: one bounced for a non-@apache.org sender, four bounced for carrying a text/html part, and the re-sends went out with a hand-added [ANN] prefix. sebb and raboof both pointed out on the S2-073 thread that these should go through the 'Send these Emails' button on the record's OSS/ASF Emails tab at cveprocess.apache.org, and that ASF CVE reports do not carry an [ANN] prefix. Mail sent through the tool is moderated automatically; the same text from a personal account waits for a human moderator. The skill already recommended the tool's text but then documented a full Gmail recipe underneath, so the fallback is what got used. Replace the recommendation with an ordered recipe ending in the send button, and demote Gmail to a conditional keyed to the button actually failing. The reason hand-sending looked necessary was a misconfigured field: CNA_private.userslist on the Struts records reads dev@struts.apache.org, so the generated ASF mail addressed announce@ and dev@ and missed user@struts.apache.org. Setting that one field is now step 1 of the send and a pre-publication checklist item. Also guard the release [ANN] mail explicitly: that prefix stays on release announcements, and only advisory subjects drop it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
lukaszlenart
force-pushed
the
docs/cve-advisory-mails-from-cve-tool
branch
from
August 15, 2026 04:50
af5ac9a to
be084cb
Compare
lukaszlenart
marked this pull request as ready for review
August 15, 2026 04:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to feedback from sebb and raboof on the S2-073 announcement thread.
What prompted this
The S2-070…S2-074 advisory mails were sent by hand from Gmail on 2026-08-14. The bodies were already the CVE tool's generated text — only the sending was hand-rolled, and that is where every failure came from:
Must be sent from an @apache.org address.user@withannounce@in Cc/Bccunacceptable MIME Content-Type: 'text/html' (#5.2.3)announce@alone[ANN]raboof asked why the
Send these Emailsbutton oncveprocess.apache.orgwasn't used. sebb noted that ASF CVE reports don't carry an[ANN]prefix, and that mail sent through the tool is moderated automatically while a personal account waits for a human moderator.The actual cause
CNA_private.usersliston the Struts records readsdev@struts.apache.org. That field is labelled "This is your project list such as users@ where you also want security announcement emails go to" — so the tool's generated ASF mail addressedannounce@apache.org, dev@struts.apache.organd misseduser@struts.apache.org, the list operators actually read. That is why the button looked inadequate and hand-sending looked necessary. It is a one-field fix.(
CNA_private.emailedis stillnullon all five records, confirming the button was never pressed.)Changes
creating-security-bulletins/SKILL.mdcarries the substance. The announcement section becomes an ordered four-step recipe ending inPress Send these Emails, with theuserslistfix as step 1. The Gmail path is demoted from a co-equal alternative to a conditional keyed to the button actually failing. Adds the subject rule (take the tool'sCVE-YYYY-NNNNN: Apache Struts: …unedited — no[ANN], no- S2-XXXsuffix) and a note that moderation delay is not a failed send.The old text already said "use the tool's mails" and then documented a complete Gmail recipe underneath — the fallback is what got taken under time pressure. This replaces the recommendation with a recipe rather than adding another prohibition.
bulletin-template.md—userslistadded to the pre-publication checklist.releasing-struts/— three lines only, deferring to the bulletin skill rather than restating it, per the principle #1848 established that the runbook holds only what the published guidelines cannot. Phase 6 gains one sentence guarding the release[ANN]prefix; phase 7 names the button and the no-[ANN]rule and points at the owning skill for the rest. Plus the phase 7 gate and one Common Mistakes row inSKILL.md.Rebased onto #1848
#1848 landed after this branch was cut and moved the release process to the published Release Guidelines, cutting
release-runbook.mdby two thirds. This branch is rebased onto it.Worth noting for review: git offered the deleted sections back as "our side" of the conflict — the site-PR section, the
RESERVED → DRAFT → READYparagraph and the whole## Post-releasesection. Those were dropped rather than resurrected, so this PR reverts nothing from #1848. The runbook diff againstmainis nine added lines and no removals.Testing
Not tested against the live tool, deliberately: modifying an already-published CVE record is prohibited, and reserving a CVE that isn't needed is too. This will be exercised on the next advisory that needs one. Draft until then.
Every fact here was read off the tool on 2026-08-15 (read-only — no record was modified and no mail was sent).
🤖 Generated with Claude Code