44
55Report security bugs in Node.js via [ HackerOne] ( https://hackerone.com/nodejs ) .
66
7- Normally your report will be acknowledged within 5 days, and you'll receive
7+ Normally, your report will be acknowledged within 5 days, and you'll receive
88a more detailed response to your report within 10 days indicating the
99next steps in handling your submission. These timelines may extend when
1010our triage volunteers are away on holiday, particularly at the end of the
@@ -21,9 +21,9 @@ The Node.js project engages in an official bug bounty program for security
2121researchers and responsible public disclosures. The program is managed through
2222the HackerOne platform. See < https://hackerone.com/nodejs > for further details.
2323
24- ## Reporting a bug in a third party module
24+ ## Reporting a bug in a third- party module
2525
26- Security bugs in third party modules should be reported to their respective
26+ Security bugs in third- party modules should be reported to their respective
2727maintainers.
2828
2929## Disclosure policy
@@ -41,20 +41,19 @@ Here is the security disclosure policy for Node.js
4141* A suggested embargo date for this vulnerability is chosen and a CVE (Common
4242 Vulnerabilities and Exposures (CVE®)) is requested for the vulnerability.
4343
44- * On the embargo date, the Node.js security mailing list is sent a copy of the
45- announcement . The changes are pushed to the public repository and new builds
46- are deployed to nodejs.org. Within 6 hours of the mailing list being
44+ * On the embargo date, a copy of the announcement is sent to the Node.js
45+ security mailing list . The changes are pushed to the public repository and new
46+ builds are deployed to nodejs.org. Within 6 hours of the mailing list being
4747 notified, a copy of the advisory will be published on the Node.js blog.
4848
49- * Typically the embargo date will be set 72 hours from the time the CVE is
49+ * Typically, the embargo date will be set 72 hours from the time the CVE is
5050 issued. However, this may vary depending on the severity of the bug or
5151 difficulty in applying a fix.
5252
53- * This process can take some time, especially when coordination is required
54- with maintainers of other projects. Every effort will be made to handle the
55- bug in as timely a manner as possible; however, it's important that we follow
56- the release process above to ensure that the disclosure is handled in a
57- consistent manner.
53+ * This process can take some time, especially when we need to coordinate with
54+ maintainers of other projects. We will try to handle the bug as quickly as
55+ possible; however, we must follow the release process above to ensure that we
56+ handle disclosure consistently.
5857
5958## The Node.js threat model
6059
@@ -91,12 +90,12 @@ Vulnerabilities related to this case may be fixed by a documentation update.
91902 . The data received from the remote end of outbound network connections
9291 that are created through the use of Node.js APIs and
9392 which is transformed/validated by Node.js before being passed
94- to the application EXCEPT in respect to payload length. Node.js trusts
93+ to the application EXCEPT with respect to payload length. Node.js trusts
9594 that applications make connections/requests which will avoid payload
9695 sizes that will result in a Denial of Service.
9796 * HTTP APIs (all flavors) client APIs.
9897 * DNS APIs.
99- 3 . Consumers of data protected through the use of Node.js APIs (for example
98+ 3 . Consumers of data protected through the use of Node.js APIs (for example,
10099 people who have access to data encrypted through the Node.js crypto APIs).
1011004 . The file content or other I/O that is opened for reading or writing by the
102101 use of Node.js APIs (ex: stdin, stdout, stderr).
@@ -107,13 +106,13 @@ a security vulnerability. Examples of unwanted actions are polluting globals,
107106causing an unrecoverable crash, or any other unexpected side effects that can
108107lead to a loss of confidentiality, integrity, or availability.
109108
110- ** Node.js trusts everything else** . As some examples this includes :
109+ ** Node.js trusts everything else** . Examples include :
111110
1121111 . The developers and infrastructure that runs it.
1131122 . The operating system that Node.js is running under and its configuration,
114113 along with anything under control of the operating system.
115- 3 . The code it is asked to run including JavaScript and native code, even if
116- said code is dynamically loaded, e.g. all dependencies installed from the
114+ 3 . The code it is asked to run, including JavaScript and native code, even if
115+ said code is dynamically loaded, e.g., all dependencies installed from the
117116 npm registry.
118117 The code run inherits all the privileges of the execution user.
1191184 . Inputs provided to it by the code it is asked to run, as it is the
@@ -135,7 +134,7 @@ In addition to addressing vulnerabilities based on the above, the project works
135134to avoid APIs and internal implementations that make it "easy" for application
136135code to use the APIs incorrectly in a way that results in vulnerabilities within
137136the application code itself. While we don’t consider those vulnerabilities in
138- Node.js itself and will not necessarily issue a CVE we do want them to be
137+ Node.js itself and will not necessarily issue a CVE, we do want them to be
139138reported privately to Node.js first.
140139We often choose to work to improve our APIs based on those reports and issue
141140fixes either in regular or security releases depending on how much of a risk to
@@ -173,13 +172,13 @@ the community they pose.
173172
174173#### Malicious Third-Party Modules (CWE-1357)
175174
176- * Code is trusted by Node.js, therefore any scenario that requires a malicious
175+ * Code is trusted by Node.js. Therefore any scenario that requires a malicious
177176 third-party module cannot result in a vulnerability in Node.js.
178177
179178#### Prototype Pollution Attacks (CWE-1321)
180179
181180* Node.js trusts the inputs provided to it by application code.
182- It is up to the application to sanitize appropriately, therefore any scenario
181+ It is up to the application to sanitize appropriately. Therefore any scenario
183182 that requires control over user input is not considered a vulnerability.
184183
185184#### Uncontrolled Search Path Element (CWE-427)
@@ -205,8 +204,8 @@ the community they pose.
205204
206205* Corepack defaults to downloading the latest version of the software requested
207206 by the user, or a specific version requested by the user. For this reason,
208- Node.js releases won't be affected by such vulnerabilities, users are
209- responsible to keep the software they use through Corepack up-to-date.
207+ Node.js releases won't be affected by such vulnerabilities. Users are
208+ responsible for keeping the software they use through Corepack up-to-date.
210209
211210## Assessing experimental features reports
212211
0 commit comments