|
| 1 | +--- |
| 2 | +hip: 9999 |
| 3 | +title: "Security Embargo and Coordinated Disclosure Process" |
| 4 | +authors: [ "George Jenkins" ] |
| 5 | +created: "2026-05-30" |
| 6 | +type: "process" |
| 7 | +status: "draft" |
| 8 | +--- |
| 9 | + |
| 10 | +## Abstract |
| 11 | + |
| 12 | +This proposal establishes a formal process for managing security embargoes and coordinating vulnerability disclosure with downstream distributors who package Helm. It defines an embargo timeline, a downstream notification list with eligibility criteria, and participant obligations so that patched releases across the ecosystem ship simultaneously when a CVE goes public. |
| 13 | + |
| 14 | +## Motivation |
| 15 | + |
| 16 | +### Current Limitations |
| 17 | + |
| 18 | +Helm's SECURITY.md documents reporting, triage, and public disclosure but contains no process for pre-disclosure coordination with downstream packagers. When the security team publishes a fix, distributors learn about it simultaneously with the public and must scramble to rebuild and ship. |
| 19 | + |
| 20 | +### Real-World Impact |
| 21 | + |
| 22 | +Users who install Helm through Linux distributions (Fedora, Debian, Alpine), cloud providers, or package managers (Homebrew, Chocolatey) remain vulnerable for hours or days after a CVE is published while downstream maintainers react. This gap is avoidable with advance notice. |
| 23 | + |
| 24 | +### Who Is Affected |
| 25 | + |
| 26 | +Distribution maintainers are forced into emergency response with no lead time. End users on downstream channels face delayed protection. The security team lacks a repeatable process for coordination. |
| 27 | + |
| 28 | +### Existing Workarounds |
| 29 | + |
| 30 | +Some distributors monitor Helm's release channels closely or rely on informal relationships with maintainers. This is inconsistent, unscalable, and leaves smaller distributors out entirely. |
| 31 | + |
| 32 | +## Rationale |
| 33 | + |
| 34 | +### Why a formal list rather than ad-hoc notification |
| 35 | + |
| 36 | +Ad-hoc emails to known contacts are error-prone and depend on institutional memory. A documented list with eligibility criteria and removal procedures ensures consistency across security team membership changes. |
| 37 | + |
| 38 | +### Why align with Kubernetes's model |
| 39 | + |
| 40 | +Many Helm downstream distributors already participate in the Kubernetes private distributors list. Aligning reduces cognitive overhead and leverages a proven structure, scaled down for Helm's smaller vulnerability volume. |
| 41 | + |
| 42 | +### Why a fixed 7-day embargo window |
| 43 | + |
| 44 | +A fixed default provides predictability for both the security team and distributors. Variable windows add coordination overhead without proportional benefit. Seven days balances preparation time against leak risk. |
| 45 | + |
| 46 | +## Specification |
| 47 | + |
| 48 | +### Downstream Notification List |
| 49 | + |
| 50 | +The Helm project will maintain a private mailing list (`cncf-helm-distros@lists.cncf.io`) for pre-disclosure notification, separate from the inbound reporting list. |
| 51 | + |
| 52 | +### Eligibility Criteria |
| 53 | + |
| 54 | +Applicants must meet all of the following: |
| 55 | + |
| 56 | +1. Actively package and distribute Helm through a publicly available channel |
| 57 | +2. Serve a non-trivial user base |
| 58 | +3. Have capability to produce patched builds within the embargo window |
| 59 | +4. Have no unresolved history of embargo violations |
| 60 | + |
| 61 | +### Application Process |
| 62 | + |
| 63 | +1. Send a request to `cncf-helm-security@lists.cncf.io` with distribution name, packaging description, user base estimate, two security contacts, and agreement to embargo obligations. |
| 64 | +2. The security team reviews; approval requires two security team members. |
| 65 | +3. Approved applicants are added to the list. Member organizations are published in SECURITY.md. |
| 66 | + |
| 67 | +### Removal |
| 68 | + |
| 69 | +Members are removed for: voluntary withdrawal, embargo violation (immediate removal, 12-month reinstatement wait), or inactivity (failure to respond to two consecutive notifications, removed after 30-day notice). |
| 70 | + |
| 71 | +### Embargo Process |
| 72 | + |
| 73 | +1. **Day 0**: Security team finalizes patch and determines timeline. |
| 74 | +2. **Day 0-1**: Notification sent to downstream list with vulnerability description, severity, patch, planned disclosure date, and workarounds. |
| 75 | +3. **Days 1-7**: Distributors prepare patched releases privately. No disclosure permitted outside immediate security response teams. |
| 76 | +4. **Day 7**: Public disclosure per existing SECURITY.md process. Distributors may publish simultaneously. |
| 77 | + |
| 78 | +### Timeline Adjustments |
| 79 | + |
| 80 | +- Default: 7 calendar days |
| 81 | +- Minimum: 2 days (active exploitation or imminent leak) |
| 82 | +- Maximum: 14 days (at distributor request if leak risk is low) |
| 83 | + |
| 84 | +### Severity Threshold |
| 85 | + |
| 86 | +The embargo process applies when: CVSS >= 7.0, or the vulnerability enables remote code execution, privilege escalation, or credential disclosure. |
| 87 | + |
| 88 | +## Backwards Compatibility |
| 89 | + |
| 90 | +This proposal is purely additive. The existing reporting and disclosure workflow in SECURITY.md is unchanged. Distributors who do not join the list are unaffected. |
| 91 | + |
| 92 | +## Security Implications |
| 93 | + |
| 94 | +Sharing vulnerability details pre-disclosure increases leak risk. This is mitigated by strict eligibility criteria, embargo violation consequences (removal plus 12-month wait), and a short maximum window of 14 days. |
| 95 | + |
| 96 | +## How to Teach This |
| 97 | + |
| 98 | +SECURITY.md will gain a new "Coordinated Disclosure for Downstream Distributors" section explaining eligibility, application, and obligations. An announcement on the `cncf-helm` mailing list will invite known distributors to apply. Vulnerability reporters need no process changes. |
| 99 | + |
| 100 | +## Reference Implementation |
| 101 | + |
| 102 | +Create the `cncf-helm-distros@lists.cncf.io` mailing list, update SECURITY.md with the new section, and conduct initial outreach to known distributors. |
| 103 | + |
| 104 | +## Rejected Ideas |
| 105 | + |
| 106 | +- **Private GitHub repository for patches** -- rejected because it requires GitHub accounts, provides less granular access control than a mailing list, and diverges from the Kubernetes model. |
| 107 | +- **Per-vulnerability opt-in notifications** -- rejected because the extra round-trip adds latency during time-sensitive coordination without meaningful security benefit. |
| 108 | +- **Unlimited embargo extensions** -- rejected because open-ended embargoes increase leak risk and delay protection for direct-install users. |
| 109 | + |
| 110 | +## Open Issues |
| 111 | + |
| 112 | +- Should embargo notifications use PGP or a modern alternative like age? |
| 113 | +- How should embargo timelines coordinate with Kubernetes when vulnerabilities span both projects? |
| 114 | + |
| 115 | +## References |
| 116 | + |
| 117 | +- [Helm SECURITY.md](https://github.com/helm/community/blob/main/SECURITY.md) |
| 118 | +- [Kubernetes Security Release Process](https://kubernetes.io/docs/reference/issues-security/security-release-process/) |
| 119 | +- [Kubernetes Private Distributors List](https://github.com/kubernetes/security/blob/master/private-distributors-list.md) |
| 120 | +- [Go Security Policy](https://go.dev/security/policy) |
0 commit comments