Skip to content

meta: refine the security vuln posture for experimental flagged features - #65438

Closed
jasnell wants to merge 4 commits into
nodejs:mainfrom
jasnell:jasnell/refine-security-vuln-posture-for-experimental
Closed

meta: refine the security vuln posture for experimental flagged features#65438
jasnell wants to merge 4 commits into
nodejs:mainfrom
jasnell:jasnell/refine-security-vuln-posture-for-experimental

Conversation

@jasnell

@jasnell jasnell commented Aug 20, 2026

Copy link
Copy Markdown
Member

Currently, any runtime gated experimental feature security vulnerability is considered a "valid" vulnerability, even if the work is still very much work in progress. This adds friction because it ends up requiring that things be compile time gated which makes it more difficult if there is not a corresponding CI job to run tests.

This relaxes the policy a bit. For anything that is 1.0 and 1.1, a vuln report is only valid if it directly compromises a stable feature, allows a workaround that compromises a stable feature, etc. An example would be an obvious DOS vector that can be exploited even if the feature is not enabled, for instance.

This gives us leeway to reject vuln reports on things that are enabled only by --experimental-* runtime flag that are still works in progress.

@jasnell
jasnell requested review from a team, RafaelGSS and mcollina August 20, 2026 16:29
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/tsc

@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to the documentations. label Aug 20, 2026
Comment thread SECURITY.md Outdated
Currently, any runtime gated experimental feature security vulnerability
is considered a "valid" vulnerability, even if the work is still very
much work in progress. This adds friction because it ends up requiring
that things be compile time gated which makes it more difficult if there
is not a corresponding CI job to run tests.

This relaxes the policy a bit. For anything that is 1.0 and 1.1, a vuln
report is only valid if it directly compromises a stable feature, allows
a workaround that compromises a stable feature, etc. An example would be
an obvious DOS vector that can be exploited even if the feature is not
enabled, for instance.

This gives us leeway to reject vuln reports on things that are enabled
only by `--experimental-*` runtime flag that are still works in progress.

Signed-off-by: James M Snell <jasnell@gmail.com>
Given it's complexity and active development, give ourselves coverage
by specifically excluding QUIC/H3 from vuln reports. Any vuln reports
received for QUIC, unless it's something that can compromise security
of something else in Node.js when the `--experimental-quic` runtime
flag is not enabled, should be handled as regular issues and not as
security vulns

Signed-off-by: James M Snell <jasnell@gmail.com>
@jasnell
jasnell force-pushed the jasnell/refine-security-vuln-posture-for-experimental branch from e29539d to 15f3ea3 Compare August 21, 2026 15:58

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Comment thread SECURITY.md Outdated
Comment thread SECURITY.md Outdated
@RafaelGSS RafaelGSS added the notable-change PRs with changes that should be highlighted in changelogs. label Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

The notable-change PRs with changes that should be highlighted in changelogs. label has been added by @RafaelGSS.

Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section.

Comment thread SECURITY.md Outdated

@gurgunday gurgunday left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

jasnell added a commit that referenced this pull request Aug 27, 2026
Currently, any runtime gated experimental feature security
vulnerability is considered a "valid" vulnerability, even if
the work is still very much work in progress. This adds friction
because it ends up requiring that things be compile time gated
which makes it more difficult if there is not a corresponding
CI job to run tests.

This relaxes the policy a bit. For anything that is 1.0 and 1.1,
a vuln report is only valid if it directly compromises a stable
feature, allows a workaround that compromises a stable feature,
etc. An example would be an obvious DOS vector that can be
exploited even if the feature is not enabled, for instance.

This gives us leeway to reject vuln reports on things that are
enabled only by `--experimental-*` runtime flag that are still
works in progress.

Given it's complexity and active development, give ourselves
coverage by specifically excluding QUIC/H3 from vuln reports.
Any vuln reports received for QUIC, unless it's something that
can compromise security of something else in Node.js when the
`--experimental-quic` runtime flag is not enabled, should be
handled as regular issues and not as security vulns

Signed-off-by: James M Snell <jasnell@gmail.com>
PR-URL: #65438
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
@jasnell

jasnell commented Aug 27, 2026

Copy link
Copy Markdown
Member Author

Landed in c66ae4f

@jasnell jasnell closed this Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Issues and PRs related to the documentations. notable-change PRs with changes that should be highlighted in changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants