raw
current commit
260924.1 · docs: warn about buffering response bodies (#5872)

Security

Reporting a vulnerability in undici

Report security bugs in undici via GitHub Security Advisories or HackerOne.

Your report will normally be acknowledged within 5 days, and you will receive a more detailed response within 10 days indicating the next steps in handling your submission. These timelines may extend when our triage volunteers are away, particularly at the end of the year.

After the initial reply to your report, the security team will endeavor to keep you informed of the progress being made towards a fix and full announcement, and may ask for additional information or guidance surrounding the reported issue.

Disclosure policy

The undici threat model

Undici is an HTTP client library for Node.js. Its threat model is derived from and aligned with the Node.js threat modelgithub.

What constitutes a vulnerability

Being able to cause the following through control of the elements that undici does not trust is considered a vulnerability:

Denial of Service (DoS) vulnerabilities

For a behavior to be considered a DoS vulnerability, the proof of concept must meet the following criteria:

Undici does NOT trust:

Undici trusts:

In other words, if untrusted data passing through undici to the application can trigger actions other than those documented for the APIs, there is likely a security vulnerability. Examples of unwanted actions are polluting globals, causing an unrecoverable crash, or any other unexpected side effects that can lead to a loss of confidentiality, integrity, or availability.

Examples of vulnerabilities

Improper Certificate Validation (CWE-295)

Inconsistent Interpretation of HTTP Responses (CWE-444)

HTTP Request Smuggling (CWE-444)

CRLF Injection in Request Headers (CWE-93)

Examples of non-vulnerabilities

Malicious Third-Party Modules (CWE-1357)

Prototype Pollution Attacks (CWE-1321)

Uncontrolled Resource Consumption on Outbound Connections (CWE-400)

Calling body-consuming methods on untrusted responses

HTTP/1.1 keep-alive with untrusted servers

Application Misconfiguration

Unauthorized or untrusted proxy use

Receiving security updates

Security notifications will be distributed via GitHub Security Advisories.

Comments on this policy

If you have suggestions on how this process could be improved, please open an issue on the nodejs/undici repository or file a pull request.