-
Notifications
You must be signed in to change notification settings - Fork 1.6k
blog: otel-js Node.js DOS Mitigation #8916
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
tiffany76
merged 6 commits into
open-telemetry:main
from
JamieDanielson:jamie.oteljs-node-cve-mitigation
Jan 15, 2026
+46
−0
Merged
Changes from 5 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
afe0ec3
blog: oteljs nodejs dos mitigation
JamieDanielson 47fdc57
clarify based on pr feedback
JamieDanielson dc4bf1e
Results from /fix directive
otelbot[bot] c3336b6
Merge branch 'main' into jamie.oteljs-node-cve-mitigation
maryliag 0f73db4
Update content/en/blog/2026/oteljs-nodejs-dos-mitigation.md
JamieDanielson a491640
Results from /fix directive
otelbot[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| --- | ||
| title: OpenTelemetry JS Statement on Node.js DOS Mitigation | ||
| linkTitle: OTel JS DOS Mitigation | ||
| date: 2026-01-15 | ||
| author: > | ||
| [Jamie Danielson](https://github.com/JamieDanielson) (Honeycomb) | ||
| sig: OpenTelemetry JS | ||
| cSpell:ignore: Danielson | ||
| --- | ||
|
|
||
| You may have seen a recent Node.js security advisory and related coverage | ||
| discussing a potential denial-of-service issue involving `async_hooks`. | ||
| OpenTelemetry (and other APM tools) were mentioned because we rely on | ||
| `AsyncLocalStorage` for context propagation. | ||
|
|
||
| To be clear: **this is not a bug or vulnerability in OpenTelemetry**. The issue | ||
| ultimately lies in applications and frameworks that rely on unspecified stack | ||
| space exhaustion behavior for availability. In Node.js versions before 24.x, | ||
| `AsyncLocalStorage` is implemented on top of `async_hooks`, which - when | ||
| combined with this unsafe assumption — made the edge case easier to reproduce. | ||
|
|
||
| The Node.js team has fixed this behavior in **Node.js 20.20.0 and newer** to | ||
| make the edge case harder to reproduce. This fix is **not being backported to | ||
| Node.js 18**, so the recommended mitigation is to upgrade to Node.js 20+ if you | ||
| haven’t already. Review | ||
| [this table](https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks#affected-versions) | ||
| for specific affected versions and patches. | ||
|
|
||
| There’s nothing OpenTelemetry-specific you need to change — following the Node.js | ||
| upgrade guidance is sufficient. As always, we recommend running on supported and | ||
| patched Node.js versions. | ||
maryliag marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Thanks to the Node.js security team for the fix, and to the community for | ||
| helping share accurate information. This was included in a security release for | ||
| visibility, but is not classified as a security issue by V8. | ||
|
|
||
| For more details, see the | ||
| [Node.js security bulletin](https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks). | ||
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.