<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Node.js Blog: Vulnerability Reports]]></title><description><![CDATA[Node.js Blog: Vulnerability Reports]]></description><link>https://nodejs.org/en/</link><generator>metalsmith-feed</generator><lastBuildDate>Tue, 08 Sep 2020 16:06:15 GMT</lastBuildDate><atom:link href="https://nodejs.org/en/feed/vulnerability.xml" rel="self" type="application/rss+xml"/><author><![CDATA[Node.js]]></author><language><![CDATA[English]]></language><docs/><item><title><![CDATA[June 2020 Security Releases]]></title><description><![CDATA[<h2 id="header-update-2-june-2020-security-releases-available"><em>(Update 2-June-2020)</em> Security releases available<a id="update-2-june-2020-security-releases-available" class="anchor" href="#update-2-june-2020-security-releases-available" aria-labelledby="header-update-2-june-2020-security-releases-available"></a></h2><p>Updates are now available for all supported Node.js release lines for the following
issues.</p>
<h3 id="header-tls-session-reuse-can-lead-to-host-certificate-verification-bypass-high-cve-2020-8172">TLS session reuse can lead to host certificate verification bypass (High) (CVE-2020-8172)<a id="tls-session-reuse-can-lead-to-host-certificate-verification-bypass-high-cve-2020-8172" class="anchor" href="#tls-session-reuse-can-lead-to-host-certificate-verification-bypass-high-cve-2020-8172" aria-labelledby="header-tls-session-reuse-can-lead-to-host-certificate-verification-bypass-high-cve-2020-8172"></a></h3><p>The &#39;session&#39; event could be emitted before the &#39;secureConnect&#39; event. It should not be, because the connection may fail to be authorized. If it was saved an authorized connection could be established later with the session ticket. Note that the <code>https</code> agent caches sessions, so is vulnerable to this.</p>
<p>The &#39;session&#39; event will now only be emitted after the &#39;secureConnect&#39; event, and only for authorized connections.</p>
<p>Affects Node.js 12.x, and 14.x. Does <em>not</em> affect Node.js 10.x.</p>
<h3 id="header-http-2-large-settings-frame-dos-low-cve-2020-11080">HTTP/2 Large Settings Frame DoS (Low) (CVE-2020-11080)<a id="http-2-large-settings-frame-dos-low-cve-2020-11080" class="anchor" href="#http-2-large-settings-frame-dos-low-cve-2020-11080" aria-labelledby="header-http-2-large-settings-frame-dos-low-cve-2020-11080"></a></h3><p>Receiving unreasonably large HTTP/2 SETTINGS frames can consume 100% CPU to process all the settings, blocking all other activities until complete.</p>
<p>The HTTP/2 session frame is limited to 32 settings by default. This can be configured if necessary using the <code>maxSettings</code> option.</p>
<p>Thank you to Jordan Zebor and Adam Cabrey of F5 Networks for reporting this.</p>
<p>Affects Node.js 10.x, 12.x, and 14.x.</p>
<h3 id="header-napi_get_value_string_-allows-various-kinds-of-memory-corruption-high-cve-2020-8174"><code>napi_get_value_string_*()</code> allows various kinds of memory corruption (High) (CVE-2020-8174)<a id="napi_get_value_string_-allows-various-kinds-of-memory-corruption-high-cve-2020-8174" class="anchor" href="#napi_get_value_string_-allows-various-kinds-of-memory-corruption-high-cve-2020-8174" aria-labelledby="header-napi_get_value_string_-allows-various-kinds-of-memory-corruption-high-cve-2020-8174"></a></h3><p>Calling <code>napi_get_value_string_latin1()</code>, <code>napi_get_value_string_utf8()</code>, or <code>napi_get_value_string_utf16()</code> with a non-NULL <code>buf</code>, and a <code>bufsize</code> of <code>0</code> will cause the entire string value to be written to <code>buf</code>, probably overrunning the length of the buffer.</p>
<p>A exploit has not been reported and it may be difficult but the following is suggested:</p>
<ul>
<li>All users of LTS Node.js versions should update to the versions announced in this security post. This will address the issue for any non pre-built add-on.</li>
<li>Maintainers who support EOL Node.js versions and/or build against a version of Node.js that did not support N-API internally should update to use the new versions of node-addon-api 1.x and 2.x that will be released soon after this announcement.</li>
</ul>
<p>Affects Node.js 10.x, 12.x, and 14.x.</p>
<p>Affects <a href="https://www.npmjs.com/package/node-addon-api">https://www.npmjs.com/package/node-addon-api</a> 1.x, 2.x when a native add-on is/was built using a version of Node.js that did not support N-API internally.  The <a href="https://github.com/nodejs/node/blob/master/doc/api/n-api.md#n-api-version-matrix">N-API version matrix</a> shows which versions of Node.js in which this support was added.</p>
<h3 id="header-icu-20958-prevent-segv_maperr-in-append-high-cve-2020-10531"><code>ICU-20958 Prevent SEGV_MAPERR in append</code> (High) (CVE-2020-10531)<a id="icu-20958-prevent-segv_maperr-in-append-high-cve-2020-10531" class="anchor" href="#icu-20958-prevent-segv_maperr-in-append-high-cve-2020-10531" aria-labelledby="header-icu-20958-prevent-segv_maperr-in-append-high-cve-2020-10531"></a></h3><p>An issue was discovered in International Components for Unicode (ICU) for C/C++
through 66.1. An integer overflow, leading to a heap-based buffer overflow,
exists in the UnicodeString::doAppend() function in common/unistr.cpp.</p>
<p>Fix was applied to 10.x in an abundance of caution, even though there is no
known way to trigger the overflow in 10.x.</p>
<p>Does not affect 12.x or 14.x, they do not include an affected version of ICU.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><ul>
<li><a href="https://nodejs.org/en/blog/release/v10.21.0/">Node.js v10.21.0 (LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v12.18.0/">Node.js v12.18.0 (LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v14.4.0/">Node.js v14.4.0 (Current)</a></li>
</ul>
<hr>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>The Node.js project will release security updates to all supported release lines on or shortly after Tuesday, June 2nd, 2020.</p>
<p>The highest severity fix will be &quot;High&quot;.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>All supported versions (10.x, 12.x, and 14.x) of Node.js are vulnerable. Note that 13.x will be end-of-life on June 1st, before the security release date, and according to policy it will <strong><em>not</em></strong> receive any more updates.</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available on or shortly after Tuesday, June 2nd, 2020.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>. Please follow the process outlined in <a href="https://github.com/nodejs/node/blob/master/SECURITY.md">https://github.com/nodejs/node/blob/master/SECURITY.md</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the nodejs GitHub organization.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/june-2020-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/june-2020-security-releases</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Tue, 02 Jun 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[OpenSSL security releases do not require Node.js security releases]]></title><description><![CDATA[<h3 id="header-update">Update<a id="update" class="anchor" href="#update" aria-labelledby="header-update"></a></h3><p>The OpenSSL project has released a description of the issue fixed in the
OpenSSL 1.1.1g update. It only affects a function which is <em>not called</em>
by Node.js (or its dependencies), and as such, does not affect Node.js.</p>
<p>No Node.js security releases are required.</p>
<p>For more information, see the OpenSSL
<a href="https://www.openssl.org/news/secadv/20200421.txt">announcement</a>.</p>
<p>The previous Node.js announcement can be found below.</p>
<h3 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h3><p>The Node.js project may be releasing new versions across all of its supported
release lines early next week to incorporate upstream patches from OpenSSL.
Please read on for full details.</p>
<h3 id="header-openssl">OpenSSL<a id="openssl" class="anchor" href="#openssl" aria-labelledby="header-openssl"></a></h3><p>The OpenSSL project
<a href="https://mta.openssl.org/pipermail/openssl-announce/2020-April/000170.html">announced</a>
this week that they will be releasing version 1.1.1g on the 21st of
April. The highest severity issue that will be fixed in the release
is &quot;HIGH&quot; severity under their
<a href="https://www.openssl.org/policies/secpolicy.html">security policy</a>,
meaning they are:</p>
<blockquote>
<p>... issues that are of a lower risk than critical, perhaps due to affecting
less common configurations, or which are less likely to be exploitable. </p>
</blockquote>
<p>All supported versions of Node.js use OpenSSL v1.1.1, therefore all active
release lines are impacted by this update: v10.x, v12.x, v13.x, and v14.x (
14.0.0 is to be released on the 21st of April, by coincidence).</p>
<p>At this stage, due to embargo, the exact nature of these defects is uncertain
as well as the impact they will have on Node.js users.</p>
<p>After assessing the impact on Node.js, it will be decided whether the issues
fixed require immediate security releases of Node.js, or whether they can be
included in the normally scheduled updates.</p>
<p>Please monitor the <strong>nodejs-sec</strong> Google Group for updates, including a
decision within 24 hours after the OpenSSL release regarding release timing,
and full details of the defects upon eventual release:
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a></p>
<h3 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h3><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>,
including information on how to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only <strong>nodejs-sec</strong> mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on
security vulnerabilities and security-related releases of Node.js and the
projects maintained in the
<a href="https://github.com/nodejs">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/april-2020-openssl-updates</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/april-2020-openssl-updates</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Tue, 21 Apr 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[February 2020 Security Releases]]></title><description><![CDATA[<h2 id="header-update-6-february-2020-security-releases-available"><em>(Update 6-February-2020)</em> Security releases available<a id="update-6-february-2020-security-releases-available" class="anchor" href="#update-6-february-2020-security-releases-available" aria-labelledby="header-update-6-february-2020-security-releases-available"></a></h2><p>Updates are now available for all active Node.js release lines for the following issues.</p>
<h3 id="header-http-request-smuggling-using-malformed-transfer-encoding-header-critical-cve-2019-15605">HTTP request smuggling using malformed Transfer-Encoding header (Critical) (CVE-2019-15605)<a id="http-request-smuggling-using-malformed-transfer-encoding-header-critical-cve-2019-15605" class="anchor" href="#http-request-smuggling-using-malformed-transfer-encoding-header-critical-cve-2019-15605" aria-labelledby="header-http-request-smuggling-using-malformed-transfer-encoding-header-critical-cve-2019-15605"></a></h3><p>Affected Node.js versions can be exploited to perform HTTP desync attacks and deliver malicious payloads to unsuspecting users. The payloads can be crafted by an attacker to hijack user sessions, poison cookies, perform clickjacking, and a multitude of other attacks depending on the architecture of the underlying system.</p>
<p>Reported by Ethan Rubinson, a software engineer at eBay.</p>
<h3 id="header-http-header-values-do-not-have-trailing-ows-trimmed-high-cve-2019-15606">HTTP header values do not have trailing OWS trimmed (High) (CVE-2019-15606)<a id="http-header-values-do-not-have-trailing-ows-trimmed-high-cve-2019-15606" class="anchor" href="#http-header-values-do-not-have-trailing-ows-trimmed-high-cve-2019-15606" aria-labelledby="header-http-header-values-do-not-have-trailing-ows-trimmed-high-cve-2019-15606"></a></h3><p>Optional whitespace should be trimmed from HTTP header values. Its presence may allow attackers to bypass security checks based on HTTP header values.</p>
<p>Reported by Alyssa Wilk from Google.</p>
<h3 id="header-remotely-trigger-an-assertion-on-a-tls-server-with-a-malformed-certificate-string-high-cve-2019-15604">Remotely trigger an assertion on a TLS server with a malformed certificate string (High) (CVE-2019-15604)<a id="remotely-trigger-an-assertion-on-a-tls-server-with-a-malformed-certificate-string-high-cve-2019-15604" class="anchor" href="#remotely-trigger-an-assertion-on-a-tls-server-with-a-malformed-certificate-string-high-cve-2019-15604" aria-labelledby="header-remotely-trigger-an-assertion-on-a-tls-server-with-a-malformed-certificate-string-high-cve-2019-15604"></a></h3><p>Connecting to a NodeJS TLS server with a client certificate that has a type 19 string in its subjectAltName will crash the TLS server if it tries to read the peer certificate.</p>
<p>Reported by Rogier Schouten and Melvin Groenhoff.</p>
<h2 id="header-strict-http-header-parsing-none">Strict HTTP header parsing (None)<a id="strict-http-header-parsing-none" class="anchor" href="#strict-http-header-parsing-none" aria-labelledby="header-strict-http-header-parsing-none"></a></h2><p>Increase the strictness of HTTP header parsing. There are no known vulnerabilities addressed, but lax HTTP parsing has historically been a source of problems. Some commonly used sites are known to generate invalid HTTP headers, a <code>--insecure-http-parser</code> CLI option or <code>insecureHTTPParser</code> http option can be used if necessary for interoperability, but is not recommended.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><ul>
<li><a href="https://nodejs.org/en/blog/release/v10.19.0/">Node.js v10.19.0 (LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v12.15.0/">Node.js v12.15.0 (LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v13.8.0/">Node.js v13.8.0 (Current)</a></li>
</ul>
<hr>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>The Node.js project will release new versions of all supported release lines on or shortly after Tuesday, February 4th, 2020.</p>
<p>One Critical severity and two High severity issues will be fixed. The release also includes stricter HTTP parsing.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>All supported versions (10.x, 12.x, and 13.x) of Node.js are vulnerable.</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, Tuesday, February 4th, 2020.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>. Please follow the process outlined in <a href="https://github.com/nodejs/node/blob/master/SECURITY.md">https://github.com/nodejs/node/blob/master/SECURITY.md</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the nodejs GitHub organization.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/february-2020-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/february-2020-security-releases</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Thu, 06 Feb 2020 12:00:00 GMT</pubDate></item><item><title><![CDATA[December 2019 Security Releases]]></title><description><![CDATA[<h2 id="header-update-18-december-2019-releases-available"><em>(Update 18-December-2019)</em> Releases available<a id="update-18-december-2019-releases-available" class="anchor" href="#update-18-december-2019-releases-available" aria-labelledby="header-update-18-december-2019-releases-available"></a></h2><p>These releases update npm to v6.13.4 to address three vulnerabilities described below.</p>
<p>All current release lines were affected.</p>
<p>At this time, CVEs have been requested by npm, Inc. and are pending review. See <a href="https://twitter.com/ahmadnassri/status/1205132161961123841">https://twitter.com/ahmadnassri/status/1205132161961123841</a> for more information.</p>
<h3 id="header-global-node_modules-binary-overwrite">Global <code>node_modules</code> Binary Overwrite<a id="global-node_modules-binary-overwrite" class="anchor" href="#global-node_modules-binary-overwrite" aria-labelledby="header-global-node_modules-binary-overwrite"></a></h3><p>Versions of the npm CLI prior to 6.13.4 are vulnerable to a Global <code>node_modules</code> Binary Overwrite. It fails to prevent existing globally-installed binaries to be overwritten by other package installations.</p>
<p>For example, if a package was installed globally and created a <code>serve</code> binary, any subsequent installs of packages that also create a <code>serve</code> binary would overwrite the first binary. This will not overwrite system binaries but only binaries put into the global <code>node_modules</code> directory.</p>
<p>This behavior is still allowed in local installations and also through install scripts. This vulnerability bypasses a user using the <code>--ignore-scripts</code> install option.</p>
<ul>
<li><a href="https://www.npmjs.com/advisories/1437">https://www.npmjs.com/advisories/1437</a></li>
</ul>
<h3 id="header-symlink-reference-outside-of-node_modules">Symlink reference outside of <code>node_modules</code><a id="symlink-reference-outside-of-node_modules" class="anchor" href="#symlink-reference-outside-of-node_modules" aria-labelledby="header-symlink-reference-outside-of-node_modules"></a></h3><p>Versions of the npm CLI prior to 6.13.3 are vulnerable to a symlink reference outside of <code>node_modules</code>. It is possible for packages to create symlinks to files outside of the <code>node_modules</code> folder through the <code>bin</code> field upon installation. A properly constructed entry in the package.json <code>bin</code> field would allow a package publisher to create a symlink pointing to arbitrary files on a user’s system when the package is installed. Only files accessible by the user running the <code>npm install</code> are affected.</p>
<p>This behavior is still possible through install scripts. This vulnerability bypasses a user using the <code>--ignore-scripts</code> install option.</p>
<ul>
<li><a href="https://www.npmjs.com/advisories/1436">https://www.npmjs.com/advisories/1436</a></li>
</ul>
<h3 id="header-arbitrary-file-write">Arbitrary File Write<a id="arbitrary-file-write" class="anchor" href="#arbitrary-file-write" aria-labelledby="header-arbitrary-file-write"></a></h3><p>Versions of the npm CLI prior to 6.13.3 are vulnerable to an Arbitrary File Write. It fails to prevent access to folders outside of the intended <code>node_modules</code> folder through the <code>bin</code> field. A properly constructed entry in the <code>package.json</code> bin field would allow a package publisher to create files on a user&#39;s system when the package is installed. It is only possible to affect files that the user running <code>npm install</code> has access to and it is not possible to overwrite files that already exist on disk.</p>
<p>This behavior is still possible through install scripts. This vulnerability bypasses a user using the <code>--ignore-scripts</code> install option.</p>
<ul>
<li><a href="https://www.npmjs.com/advisories/1434">https://www.npmjs.com/advisories/1434</a></li>
</ul>
<h3 id="header-downloads">Downloads<a id="downloads" class="anchor" href="#downloads" aria-labelledby="header-downloads"></a></h3><ul>
<li><a href="https://nodejs.org/en/blog/release/v13.4.0/">Node.js v13.4.0</a></li>
<li><a href="https://nodejs.org/en/blog/release/v12.14.0/">Node.js v12.14.0</a></li>
<li><a href="https://nodejs.org/en/blog/release/v10.18.0/">Node.js v10.18.0</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.17.0/">Node.js v8.17.0</a></li>
</ul>
<p>Please note that this will be the final release of the v8.x line as support ends after December 31st, 2019.</p>
<hr>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>The Node.js project will release new versions of all supported release lines on or shortly after Tuesday December 17, 2019 UTC. For versions 8, 10, and 12 the only update to the runtime in these releases will be an updated version of npm addressing the vulnerability announced in <a href="https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli">https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli</a>. Version 13, while still being a security release, will include all commits that were scheduled to be included in the originally scheduled release.</p>
<p>In the meantime, users should update to npm 6.13.4 by following the instructions provided in the npm advisory. As a general rule, avoid running npm in production environments.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>All versions of Node.js are vulnerable including the LTS and current releases: Node.js 8 (LTS &quot;Carbon&quot;), Node.js 10 (LTS &quot;Dubnium&quot;) , Node.js 12 (LTS &quot;Erbium&quot;), and Node.js 13.</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, Tuesday, December 17, 2019 UTC.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.  Please follow the process outlined in <a href="https://github.com/nodejs/node/blob/master/SECURITY.md">https://github.com/nodejs/node/blob/master/SECURITY.md</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the nodejs GitHub organization.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/december-2019-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/december-2019-security-releases</guid><dc:creator><![CDATA[Michael Dawson, Sam Roberts]]></dc:creator><pubDate>Wed, 18 Dec 2019 00:23:00 GMT</pubDate></item><item><title><![CDATA[OpenSSL security releases do not require Node.js security releases]]></title><description><![CDATA[<h3 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h3><p>The OpenSSL Security releases of September 10th, 2019 do not affect Node.js.</p>
<h3 id="header-analysis">Analysis<a id="analysis" class="anchor" href="#analysis" aria-labelledby="header-analysis"></a></h3><p>Our assessment of the <a href="https://www.openssl.org/news/secadv/20190910.txt">security advisory</a> is:</p>
<ul>
<li><p>ECDSA remote timing attack (CVE-2019-1547)
Not affected. Node supports only named curves for ECDSA signing.</p>
</li>
<li><p>Fork Protection (CVE-2019-1549)
Not affected. Node.js always call <code>exec()</code> after <code>fork()</code> so will not
duplicate the PRNG state in the forked process.</p>
</li>
<li><p>Padding Oracle in <code>PKCS7_dataDecode</code> and <code>CMS_decrypt_set1_pkey</code> (CVE-2019-1563)
Not affected. Node does not support PCKS7 and CMS.</p>
</li>
</ul>
<p>Given this assessment, the OpenSSL updates will be treated as non-security
patch updates, and will come out in the regularly scheduled updates to
supported release lines.</p>
<h3 id="header-acknowledgements">Acknowledgements<a id="acknowledgements" class="anchor" href="#acknowledgements" aria-labelledby="header-acknowledgements"></a></h3><p>Thanks to <a href="https://github.com/shigeki">Shigeki Ohtsu</a> for his rapid analysis
of the OpenSSL security advisory.</p>
<h3 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h3><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>,
including information on how to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only <strong>nodejs-sec</strong> mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on
security vulnerabilities and security-related releases of Node.js and the
projects maintained in the
<a href="https://github.com/nodejs">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/september-2019-openssl-no-updates</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/september-2019-openssl-no-updates</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Thu, 12 Sep 2019 17:00:15 GMT</pubDate></item><item><title><![CDATA[OpenSSL security releases may require Node.js security releases]]></title><description><![CDATA[<h3 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h3><p>The Node.js project may be releasing new versions across all of its supported
release lines early next week to incorporate upstream patches from OpenSSL.
Please read on for full details.</p>
<h3 id="header-openssl">OpenSSL<a id="openssl" class="anchor" href="#openssl" aria-labelledby="header-openssl"></a></h3><p>The OpenSSL project
<a href="https://mta.openssl.org/pipermail/openssl-announce/2019-September/000156.html">announced</a>
this week that they will be releasing versions 1.0.2t and 1.1.1d on the 10th of
September, UTC. The releases will fix two security defects that are labelled
as &quot;LOW&quot; severity under their
<a href="https://www.openssl.org/policies/secpolicy.html">security policy</a>,
meaning they are:</p>
<blockquote>
<p>... issues such as those that only affect the openssl command line utility,
or unlikely configurations.</p>
</blockquote>
<p>Node.js v8.x use OpenSSL v1.0.2 and Node.js v10.x and v12.x both use OpenSSL
v1.1.1, therefore all active release lines are impacted by this update.</p>
<p>At this stage, due to embargo, the exact nature of these defects is uncertain
as well as the impact they will have on Node.js users.</p>
<p>After assessing the impact on Node.js, it will be decided whether the issues
fixed require immediate security releases of Node.js, or whether they can be
included in the normally scheduled updates.</p>
<p>Please monitor the <strong>nodejs-sec</strong> Google Group for updates, including a
decision within 24 hours after the OpenSSL release regarding release timing,
and full details of the defects upon eventual release:
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a></p>
<h3 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h3><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>,
including information on how to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only <strong>nodejs-sec</strong> mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on
security vulnerabilities and security-related releases of Node.js and the
projects maintained in the
<a href="https://github.com/nodejs">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/september-2019-openssl-updates</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/september-2019-openssl-updates</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Thu, 05 Sep 2019 15:34:35 GMT</pubDate></item><item><title><![CDATA[August 2019 Security Releases]]></title><description><![CDATA[<p>Node.js, as well as many other implementations of HTTP/2, have been found
vulnerable to Denial of Service attacks. See
<a href="https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md">https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md</a>
for more information.</p>
<p>Updates are now available for all active Node.js release lines, including Linux
ARMv6 builds for Node.js 8.x (which had been delayed).</p>
<p>We recommend that all Node.js users upgrade to a version listed below as soon
as possible.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><p>Downloads are available for the following versions. Details of code changes can
also be found on each release page.</p>
<ul>
<li>Node.js 8.16.1: <a href="https://nodejs.org/dist/latest-v8.x/">https://nodejs.org/dist/latest-v8.x/</a></li>
<li>Node.js 10.16.3: <a href="https://nodejs.org/dist/latest-v10.x/">https://nodejs.org/dist/latest-v10.x/</a></li>
<li>Node.js 12.8.1: <a href="https://nodejs.org/dist/latest-v12.x/">https://nodejs.org/dist/latest-v12.x/</a></li>
</ul>
<h2 id="header-vulnerabilities-fixed">Vulnerabilities Fixed<a id="vulnerabilities-fixed" class="anchor" href="#vulnerabilities-fixed" aria-labelledby="header-vulnerabilities-fixed"></a></h2><p><strong><em>Impact</em></strong>: All versions of Node.js 8 (LTS &quot;Carbon&quot;), Node.js 10 (LTS &quot;Dubnium&quot;), and Node.js 12 (Current) are vulnerable to the following:</p>
<ul>
<li><strong>CVE-2019-9511 “Data Dribble”</strong>: The attacker requests a large amount of
data from a specified resource over multiple streams. They manipulate window
size and stream priority to force the server to queue the data in 1-byte
chunks. Depending on how efficiently this data is queued, this can consume
excess CPU, memory, or both, potentially leading to a denial of service.</li>
<li><strong>CVE-2019-9512 “Ping Flood”</strong>: The attacker sends continual pings to an
HTTP/2 peer, causing the peer to build an internal queue of responses.
Depending on how efficiently this data is queued, this can consume excess
CPU, memory, or both, potentially leading to a denial of service.</li>
<li><strong>CVE-2019-9513 “Resource Loop”</strong>: The attacker creates multiple request
streams and continually shuffles the priority of the streams in a way that
causes substantial churn to the priority tree. This can consume excess CPU,
potentially leading to a denial of service.</li>
<li><strong>CVE-2019-9514 “Reset Flood”</strong>: The attacker opens a number of streams and
sends an invalid request over each stream that should solicit a stream of
RST_STREAM frames from the peer. Depending on how the peer queues the
RST_STREAM frames, this can consume excess memory, CPU, or both, potentially
leading to a denial of service.</li>
<li><strong>CVE-2019-9515 “Settings Flood”</strong>: The attacker sends a stream of SETTINGS
frames to the peer. Since the RFC requires that the peer reply with one
acknowledgement per SETTINGS frame, an empty SETTINGS frame is almost
equivalent in behavior to a ping. Depending on how efficiently this data is
queued, this can consume excess CPU, memory, or both, potentially leading to
a denial of service.</li>
<li><strong>CVE-2019-9516 “0-Length Headers Leak”</strong>: The attacker sends a stream of
headers with a 0-length header name and 0-length header value, optionally
Huffman encoded into 1-byte or greater headers. Some implementations allocate
memory for these headers and keep the allocation alive until the session
dies. This can consume excess memory, potentially leading to a denial of
service.</li>
<li><strong>CVE-2019-9517 “Internal Data Buffering”</strong>: The attacker opens the HTTP/2
window so the peer can send without constraint; however, they leave the TCP
window closed so the peer cannot actually write (many of) the bytes on the
wire. The attacker then sends a stream of requests for a large response
object. Depending on how the servers queue the responses, this can consume
excess memory, CPU, or both, potentially leading to a denial of service.</li>
<li><strong>CVE-2019-9518 “Empty Frames Flood”</strong>: The attacker sends a stream of frames
with an empty payload and without the end-of-stream flag. These frames can be
DATA, HEADERS, CONTINUATION and/or PUSH_PROMISE. The peer spends time
processing each frame disproportionate to attack bandwidth. This can consume
excess CPU, potentially leading to a denial of service. (Discovered by Piotr
Sikora of Google)</li>
</ul>
<h3 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h3><p>The current Node.js security policy and information about how to report a
vulnerability can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on
security vulnerabilities and security-related releases of Node.js and the
projects maintained in the nodejs GitHub organization.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/aug-2019-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/aug-2019-security-releases</guid><dc:creator><![CDATA[Sam Roberts]]></dc:creator><pubDate>Fri, 16 Aug 2019 14:58:40 GMT</pubDate></item><item><title><![CDATA[February 2019 Security Releases]]></title><description><![CDATA[<p><em>(Update 28-February-2018)</em> <strong>Security releases available</strong></p>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. In addition to fixes for security flaws in Node.js, they also include upgrades of Node.js 6 and 8 to OpenSSL 1.0.2r which contains a fix for a moderate severity security vulnerability. The original announcement is included below.</p>
<p>For these releases, we have decided to withhold the fix for the Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) flaw mentioned in the original announcement. This flaw is very low severity and we are not satisfied that we had a complete and stable fix ready for release. We will be seeking to address this flaw via alternate mechanisms in the near future. In addition, we have introduced an additional CVE for a change in Node.js 6 that we have decided to classify as a Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) flaw.</p>
<p>We recommend that all Node.js users upgrade to a version listed below as soon as possible.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><p>Downloads are available for the following versions. Details of code changes can also be found on each release page.</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v11.10.1">Node.js 11.10.1 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v10.15.2">Node.js 10.15.2 (LTS &quot;Dubnium&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.15.1">Node.js 8.15.1 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.17.0">Node.js 6.17.0 (LTS &quot;Boron&quot;)</a></li>
</ul>
<h2 id="header-node-js-slowloris-http-denial-of-service-with-keep-alive-cve-2019-5737">Node.js: Slowloris HTTP Denial of Service with keep-alive (CVE-2019-5737)<a id="node-js-slowloris-http-denial-of-service-with-keep-alive-cve-2019-5737" class="anchor" href="#node-js-slowloris-http-denial-of-service-with-keep-alive-cve-2019-5737" aria-labelledby="header-node-js-slowloris-http-denial-of-service-with-keep-alive-cve-2019-5737"></a></h2><p><em>Categorization: Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>)</em></p>
<p>All actively supported release lines are vulnerable and the severity is LOW. An attacker can cause a Denial of Service (DoS) by establishing an HTTP or HTTPS connection in keep-alive mode and by sending headers very slowly thereby keeping the connection and associated resources alive for a long period of time. Attack potential is mitigated by the use of a load balancer or other proxy layer.</p>
<p>This vulnerability is an extension of CVE-2018-12122, addressed in <a href="https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/">November, 2018</a>. The 40 second timeout and its adjustment by <code>server.headersTimeout</code> apply to this fix as in CVE-2018-12122.</p>
<p>CVE-2018-12122 originally reported by Jan Maybach (<a href="https://liebdich.com">liebdich.com</a>), keep-alive variant reported by <a href="https://twitter.com/pracucci">Marco Pracucci</a> (<a href="https://voxnest.com">Voxnest</a>), fixed by <a href="https://twitter.com/matteocollina">Matteo Collina</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-node-js-denial-of-service-with-keep-alive-http-connections-cve-2019-5739">Node.js: Denial of Service with keep-alive HTTP connections (CVE-2019-5739)<a id="node-js-denial-of-service-with-keep-alive-http-connections-cve-2019-5739" class="anchor" href="#node-js-denial-of-service-with-keep-alive-http-connections-cve-2019-5739" aria-labelledby="header-node-js-denial-of-service-with-keep-alive-http-connections-cve-2019-5739"></a></h2><p><em>Categorization: Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>)</em></p>
<p>Keep-alive HTTP and HTTPS connections can remain open and inactive for up to 2 minutes in Node.js 6.16.0 and earlier. Node.js 8.0.0 introduced a dedicated <a href="https://nodejs.org/api/http.html#http_server_keepalivetimeout"><code>server.keepAliveTimeout</code></a> which defaults to 5 seconds. The behavior in Node.js 6.16.0 and earlier is a potential Denial of Service (DoS) attack vector. Node.js 6.17.0 introduces <code>server.keepAliveTimeout</code> and the 5-second default.</p>
<p>The original fix was submitted by <a href="https://github.com/tshemsedinov">Timur Shemsedinov</a> (<a href="https://github.com/nodejs/node/pull/2534">nodejs/node#2534</a>) and backported by <a href="https://twitter.com/matteocollina">Matteo Collina</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h2 id="header-openssl-0-byte-record-padding-oracle-cve-2019-1559">OpenSSL: 0-byte record padding oracle (CVE-2019-1559)<a id="openssl-0-byte-record-padding-oracle-cve-2019-1559" class="anchor" href="#openssl-0-byte-record-padding-oracle-cve-2019-1559" aria-labelledby="header-openssl-0-byte-record-padding-oracle-cve-2019-1559"></a></h2><p><em>Severity: MODERATE</em></p>
<p>OpenSSL 1.0.2r contains a fix for <a href="https://www.openssl.org/news/secadv/20190226.txt">CVE-2019-1559</a> and is included in the releases for Node.js versions 6 and 8 only. Node.js 10 and 11 are not impacted by this vulnerability as they use newer versions of OpenSSL which do not contain the flaw.</p>
<p>Under certain circumstances, a TLS server can be forced to respond differently to a client if a zero-byte record is received with an invalid <em>padding</em> compared to a zero-byte record with an invalid <em>MAC</em>. This can be used as the basis of a <a href="https://en.wikipedia.org/wiki/Padding_oracle_attack">padding oracle attack</a> to decrypt data.</p>
<p>Only TLS connections using certain ciphersuites executing under certain conditions are exploitable. We are currently unable to determine whether the use of OpenSSL in Node.js exposes this vulnerability. We are taking a cautionary approach and recommend the same for users. For more information, see the <a href="https://www.openssl.org/news/secadv/20190226.txt">advisory</a> and a <a href="https://github.com/RUB-NDS/TLS-Padding-Oracles">detailed write-up</a> by the reporters of the vulnerability.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h2 id="header-acknowledgements">Acknowledgements<a id="acknowledgements" class="anchor" href="#acknowledgements" aria-labelledby="header-acknowledgements"></a></h2><p>Matteo Collina for vulnerability fixes.</p>
<p>Shigeki Ohtsu and Sam Roberts for the OpenSSL upgrade.</p>
<p>Jan Maybach and Marco Pracucci for reporting vulnerabilities via the appropriate channels (see below).</p>
<p>Other members of the Node.js security team for reviews and discussion.</p>
<p><strong><em>Original post is included below</em></strong></p>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will release new versions of all supported release lines on, or shortly after, Wednesday, February 27th, 2019 UTC. These releases will incorporate at least two security fixes specific to Node.js, the highest severity of which is &#39;low&#39;.</p>
<p>The OpenSSL project has announced <a href="https://mta.openssl.org/pipermail/openssl-announce/2019-February/000145.html">releases</a> for the 26th which may impact some release lines of Node.js and require inclusion in our security releases. The highest severity indicated by OpenSSL is <a href="https://www.openssl.org/policies/secpolicy.html#moderate">&#39;moderate&#39;</a> and impacts OpenSSL 1.0.2 which is used by Node.js 6.x and 8.x. A bug-fix release for OpenSSL 1.1.1 will also be made available and we will assess the impact, if any, on Node.js 11.x which uses this version. Node.js 10.x will not be impacted by the OpenSSL releases.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>Releases for all actively supported release lines will be made available to fix the following vulnerabilities.</p>
<p>All versions of <strong>Node.js 6 (LTS &quot;Boron&quot;)</strong> are vulnerable to:</p>
<ul>
<li>1 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerability</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
<li>Possible update to OpenSSL 1.0.2r depending on assessed impact</li>
</ul>
<p>All versions of <strong>Node.js 8 (LTS &quot;Carbon&quot;)</strong> are vulnerable to:</p>
<ul>
<li>1 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerability</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
<li>Possible update to OpenSSL 1.0.2r depending on assessed impact</li>
</ul>
<p>All versions of <strong>Node.js 10 (LTS &quot;Dubnium&quot;)</strong> are vulnerable to:</p>
<ul>
<li>1 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerability</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
</ul>
<p>All versions of <strong>Node.js 11 (Current)</strong> are vulnerable to:</p>
<ul>
<li>1 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerability</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
<li>Possible update to OpenSSL 1.1.1b depending on assessed impact</li>
</ul>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, Wednesday, February 27th, 2019 UTC, along with disclosure of the details for the flaws addressed in each release in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organization</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/february-2019-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/february-2019-security-releases</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Thu, 28 Feb 2019 12:53:26 GMT</pubDate></item><item><title><![CDATA[November 2018 Security Releases]]></title><description><![CDATA[<p><em>(Update 27-November-2018)</em> <strong>Security releases available</strong></p>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. These include fixes for the vulnerabilities identified in the initial announcement (below). They also include upgrades of Node.js 6 and 8 to OpenSSL 1.0.2q, and upgrades of Node.js 10 and 11 to OpenSSL 1.1.0j.</p>
<p>We recommend that all Node.js users upgrade to a version listed below as soon as possible.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><p>Downloads are available for the following versions. Details of code changes can also be found on each release page.</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v11.3.0">Node.js 11.3.0 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v10.14.0">Node.js 10.14.0 (LTS &quot;Dubnium&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.14.0">Node.js 8.14.0 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.15.0">Node.js 6.15.0 (LTS &quot;Boron&quot;)</a></li>
</ul>
<p><strong><em>Note (3-December-2018):</em></strong> <em>Node.js <a href="/en/blog/release/v6.15.1">6.15.1 (LTS &quot;Boron&quot;)</a> was released to fix a misapplied backport for one of the fixes listed below. See the <a href="/en/blog/release/v6.15.1">release page</a> for more information.</em></p>
<h2 id="header-debugger-port-5858-listens-on-any-interface-by-default-cve-2018-12120">Debugger port 5858 listens on any interface by default (CVE-2018-12120)<a id="debugger-port-5858-listens-on-any-interface-by-default-cve-2018-12120" class="anchor" href="#debugger-port-5858-listens-on-any-interface-by-default-cve-2018-12120" aria-labelledby="header-debugger-port-5858-listens-on-any-interface-by-default-cve-2018-12120"></a></h2><p><em>Categorization: Unprotected Primary Channel (<a href="https://cwe.mitre.org/data/definitions/419.html">CWE-419</a>)</em></p>
<p>All versions of Node.js 6 are vulnerable and the severity is HIGH. When the debugger is enabled with <code>node --debug</code> or <code>node debug</code>, it listens to port 5858 on all interfaces by default. This may allow remote computers to attach to the debug port and evaluate arbitrary JavaScript. The default interface is now localhost. It has always been possible to start the debugger on a specific interface, such as <code>node --debug=localhost</code>. The debugger was removed in Node.js 8 and replaced with the inspector, so no versions from 8 and later are vulnerable.</p>
<p>Reported and fixed by <a href="https://github.com/bnoordhuis">Ben Noordhuis</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h2 id="header-denial-of-service-with-large-http-headers-cve-2018-12121">Denial of Service with large HTTP headers (CVE-2018-12121)<a id="denial-of-service-with-large-http-headers-cve-2018-12121" class="anchor" href="#denial-of-service-with-large-http-headers-cve-2018-12121" aria-labelledby="header-denial-of-service-with-large-http-headers-cve-2018-12121"></a></h2><p><em>Categorization: Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>)</em></p>
<p>All versions of 6 and later are vulnerable and the severity is HIGH. By using a combination of many requests with maximum sized headers (almost 80 KB per connection), and carefully timed completion of the headers, it is possible to cause the HTTP server to abort from heap allocation failure. Attack potential is mitigated by the use of a load balancer or other proxy layer.</p>
<p>The total size of HTTP headers received by Node.js now must not exceed 8192 bytes.</p>
<p>Reported by <a href="https://github.com/trevnorris">Trevor Norris</a>, fixed by <a href="https://twitter.com/matteocollina">Matteo Collina</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-slowloris-http-denial-of-service-cve-2018-12122">&quot;Slowloris&quot; HTTP Denial of Service (CVE-2018-12122)<a id="slowloris-http-denial-of-service-cve-2018-12122" class="anchor" href="#slowloris-http-denial-of-service-cve-2018-12122" aria-labelledby="header-slowloris-http-denial-of-service-cve-2018-12122"></a></h2><p><em>Categorization: Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>)</em></p>
<p>All versions of Node.js 6 and later are vulnerable and the severity is LOW. An attacker can cause a Denial of Service (DoS) by sending headers very slowly keeping HTTP or HTTPS connections and associated resources alive for a long period of time. Attack potential is mitigated by the use of a load balancer or other proxy layer.</p>
<p>A timeout of 40 seconds now applies to servers receiving HTTP headers. This value can be adjusted with <code>server.headersTimeout</code>. Where headers are not completely received within this period, the socket is destroyed on the next received chunk. In conjunction with <code>server.setTimeout()</code>, this aids in protecting against excessive resource retention and possible Denial of Service.</p>
<p>Reported by Jan Maybach (<a href="https://liebdich.com">liebdich.com</a>), fixed by <a href="https://twitter.com/matteocollina">Matteo Collina</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-hostname-spoofing-in-url-parser-for-javascript-protocol-cve-2018-12123">Hostname spoofing in URL parser for javascript protocol (CVE-2018-12123)<a id="hostname-spoofing-in-url-parser-for-javascript-protocol-cve-2018-12123" class="anchor" href="#hostname-spoofing-in-url-parser-for-javascript-protocol-cve-2018-12123" aria-labelledby="header-hostname-spoofing-in-url-parser-for-javascript-protocol-cve-2018-12123"></a></h2><p><em>Categorization: Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>)</em></p>
<p>All versions of Node.js 6 and later are vulnerable and the severity is LOW. If a Node.js application is using <code>url.parse()</code> to determine the URL hostname, that hostname can be spoofed by using a mixed case &quot;javascript:&quot; (e.g. &quot;javAscript:&quot;) protocol (other protocols are not affected). If security decisions are made about the URL based on the hostname, they may be incorrect.</p>
<p>Reported by <a href="https://twitter.com/_bayotop">Martin Bajanik</a> (<a href="https://kenticocloud.com/">Kentico</a>), fixed by <a href="https://twitter.com/matteocollina">Matteo Collina</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-http-request-splitting-cve-2018-12116">HTTP request splitting (CVE-2018-12116)<a id="http-request-splitting-cve-2018-12116" class="anchor" href="#http-request-splitting-cve-2018-12116" aria-labelledby="header-http-request-splitting-cve-2018-12116"></a></h2><p><em>Categorization: Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>)</em></p>
<p>Node.js 6 and 8 are vulnerable and the severity is MEDIUM. If Node.js can be convinced to use unsanitized user-provided Unicode data for the <code>path</code> option of an HTTP request, then data can be provided which will trigger a second, unexpected, and user-defined HTTP request to made to the same server.</p>
<p>Reported as security concern for Node.js 6 and 8 by <a href="https://twitter.com/arkadiyt">Arkadiy Tetelman</a> (<a href="https://lob.com">Lob</a>), fixed by backporting a change by <a href="https://github.com/bennofs">Benno Fünfstück</a> applied to Node.js 10 and later.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h2 id="header-openssl-timing-vulnerability-in-ecdsa-signature-generation-cve-2018-0735">OpenSSL Timing vulnerability in ECDSA signature generation (CVE-2018-0735)<a id="openssl-timing-vulnerability-in-ecdsa-signature-generation-cve-2018-0735" class="anchor" href="#openssl-timing-vulnerability-in-ecdsa-signature-generation-cve-2018-0735" aria-labelledby="header-openssl-timing-vulnerability-in-ecdsa-signature-generation-cve-2018-0735"></a></h2><p><em>Severity: LOW</em></p>
<p>The OpenSSL ECDSA signature algorithm has been shown to be vulnerable to a timing side-channel attack. An attacker could use variations in the signing algorithm to recover the private key.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-openssl-timing-vulnerability-in-dsa-signature-generation-cve-2018-0734">OpenSSL Timing vulnerability in DSA signature generation (CVE-2018-0734)<a id="openssl-timing-vulnerability-in-dsa-signature-generation-cve-2018-0734" class="anchor" href="#openssl-timing-vulnerability-in-dsa-signature-generation-cve-2018-0734" aria-labelledby="header-openssl-timing-vulnerability-in-dsa-signature-generation-cve-2018-0734"></a></h2><p><em>Severity: LOW</em></p>
<p>The OpenSSL DSA signature algorithm has been shown to be vulnerable to a timing side-channel attack. An attacker could use variations in the signing algorithm to recover the private key.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-openssl-microarchitecture-timing-vulnerability-in-ecc-scalar-multiplication-cve-2018-5407">OpenSSL Microarchitecture timing vulnerability in ECC scalar multiplication (CVE-2018-5407)<a id="openssl-microarchitecture-timing-vulnerability-in-ecc-scalar-multiplication-cve-2018-5407" class="anchor" href="#openssl-microarchitecture-timing-vulnerability-in-ecc-scalar-multiplication-cve-2018-5407" aria-labelledby="header-openssl-microarchitecture-timing-vulnerability-in-ecc-scalar-multiplication-cve-2018-5407"></a></h2><p><em>Severity: LOW</em></p>
<p>OpenSSL ECC scalar multiplication, used in e.g. ECDSA and ECDH, has been shown to be vulnerable to a microarchitecture timing side-channel attack. An attacker with sufficient access to mount local timing attacks during ECDSA signature generation could recover the private key.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6 (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8 (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) up to 10.8.0 <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10 (LTS &quot;Dubnium&quot;) from 10.9.0 <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 11 (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h2 id="header-acknowledgements">Acknowledgements<a id="acknowledgements" class="anchor" href="#acknowledgements" aria-labelledby="header-acknowledgements"></a></h2><p>Matteo Collina for a significant amount of work fixing vulnerabilities.</p>
<p>Sam Roberts for the OpenSSL upgrades, other code contributions and assisting in the preparion of these releases.</p>
<p>Ben Noordhuis, Fedor Indutny and Benno Fünfstück for code contributions.</p>
<p>Trevor Norris, Jan Maybach, Martin Bajanik, Arkadiy Tetelman for reporting vulnerabilities via the appropriate channels (see below).</p>
<p><strong><em>Original post is included below</em></strong></p>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>Node.js will release new versions of all supported release lines on, or shortly after, November 27th, 2018 UTC. These releases will incorporate a number of security fixes specific to Node.js, as well as the updates to OpenSSL that were released today, November 20th, 2018.</p>
<p>OpenSSL <a href="https://www.openssl.org/news/openssl-1.0.2-notes.html">1.0.2q</a> and <a href="https://www.openssl.org/news/openssl-1.1.0-notes.html">1.1.0j</a> include fixes for previously disclosed low-severity timing vulnerabilities. See the <a href="https://mta.openssl.org/pipermail/openssl-announce/2018-November/000138.html">OpenSSL release announcement</a>.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>Releases for all actively supported release lines will be made available to fix the following vulnerabilities.</p>
<p>All versions of <strong>Node.js 6 (LTS &quot;Boron&quot;)</strong> are vulnerable to:</p>
<ul>
<li>2 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerabilities</li>
<li>2 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerabilities</li>
<li>1 Unprotected Primary Channel (<a href="https://cwe.mitre.org/data/definitions/419.html">CWE-419</a>) vulnerability</li>
</ul>
<p>All versions of <strong>Node.js 8 (LTS &quot;Carbon&quot;)</strong> are vulnerable to:</p>
<ul>
<li>2 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerabilities</li>
<li>2 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerabilities</li>
</ul>
<p>All versions of <strong>Node.js 10 (LTS &quot;Dubnium&quot;)</strong> are vulnerable to:</p>
<ul>
<li>2 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerabilities</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
</ul>
<p>All versions of <strong>Node.js 11 (Current)</strong> are vulnerable to:</p>
<ul>
<li>2 Uncontrolled Resource Consumption / Denial of Service (<a href="https://cwe.mitre.org/data/definitions/400.html">CWE-400</a>) vulnerabilities</li>
<li>1 Misinterpretation of Input (<a href="https://cwe.mitre.org/data/definitions/115.html">CWE-115</a>) vulnerability</li>
</ul>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, the 27th of November, 2018 UTC, along with disclosure of the details for the flaws addressed in each release in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organization</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/november-2018-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/november-2018-security-releases</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Wed, 28 Nov 2018 00:55:46 GMT</pubDate></item><item><title><![CDATA[August 2018 Security Releases]]></title><description><![CDATA[<p><em>(Update 16-August-2018)</em> Security releases available</p>
<h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. These include upgrades for OpenSSL and fixes for the vulnerabilities identified in the initial announcement (below).</p>
<p>We recommend that all users upgrade as soon as practical.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><p>Downloads are available for the following versions. Details of code changes can also be found on each release page.</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v10.9.0">Node.js 10.9.0 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.11.4">Node.js 8.11.4 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.14.4">Node.js 6.14.4 (LTS &quot;Boron&quot;)</a></li>
</ul>
<h2 id="header-openssl-client-dos-due-to-large-dh-parameter-cve-2018-0732">OpenSSL: Client DoS due to large DH parameter (<a href="https://www.openssl.org/news/secadv/20180612.txt">CVE-2018-0732</a>)<a id="openssl-client-dos-due-to-large-dh-parameter-cve-2018-0732" class="anchor" href="#openssl-client-dos-due-to-large-dh-parameter-cve-2018-0732" aria-labelledby="header-openssl-client-dos-due-to-large-dh-parameter-cve-2018-0732"></a></h2><p>All actively supported release lines of Node.js are impacted by this flaw. Patches are included in both OpenSSL 1.1.0i (Node.js 10) and 1.0.2p (Node.js 6 LTS &quot;Boron&quot; and Node.js 8 LTS &quot;Carbon&quot;).</p>
<p>This fixes a potential denial of service (DoS) attack against <em>client</em> connections by a malicious server. During a TLS communication handshake, where both client and server agree to use a cipher-suite using DH or DHE (Diffie–Hellman, in both ephemeral and non-ephemeral modes), a malicious server can send a very large prime value to the client. Because this has been unbounded in OpenSSL, the client can be forced to spend an unreasonably long period of time to generate a key, potentially causing a denial of service.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All previous versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-cache-timing-vulnerability-in-rsa-key-generation-cve-2018-0737">Cache timing vulnerability in RSA Key Generation (<a href="https://www.openssl.org/news/secadv/20180416.txt">CVE-2018-0737</a>)<a id="cache-timing-vulnerability-in-rsa-key-generation-cve-2018-0737" class="anchor" href="#cache-timing-vulnerability-in-rsa-key-generation-cve-2018-0737" aria-labelledby="header-cache-timing-vulnerability-in-rsa-key-generation-cve-2018-0737"></a></h2><p>Node.js does not expose RSA key generation functionality. Therefore, <strong>Node.js is not impacted by this vulnerability</strong>.</p>
<h2 id="header-openssl-ecdsa-key-extraction-via-local-side-channel-cve-not-assigned">OpenSSL: ECDSA key extraction via local side-channel (CVE not assigned)<a id="openssl-ecdsa-key-extraction-via-local-side-channel-cve-not-assigned" class="anchor" href="#openssl-ecdsa-key-extraction-via-local-side-channel-cve-not-assigned" aria-labelledby="header-openssl-ecdsa-key-extraction-via-local-side-channel-cve-not-assigned"></a></h2><p>All actively supported release lines of Node.js are impacted by this flaw. Patches are included in both OpenSSL 1.1.0i (Node.js 10) and 1.0.2p (Node.js 6 LTS &quot;Boron&quot; and Node.js 8 LTS &quot;Carbon&quot;).</p>
<p>Attackers with access to observe cache-timing may be able to extract DSA or ECDSA private keys by causing the victim to create several signatures and watching responses. This flaw does not have a CVE due to OpenSSL policy to not assign itself CVEs for local-only vulnerabilities that are more academic than practical. This vulnerability was discovered by <a href="https://www.nccgroup.trust/us/our-research/technical-advisory-return-of-the-hidden-number-problem/">Keegan Ryan at NCC Group</a> and impacts many cryptographic libraries including OpenSSL.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All previous versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-unintentional-exposure-of-uninitialized-memory-cve-2018-7166">Unintentional exposure of uninitialized memory (CVE-2018-7166)<a id="unintentional-exposure-of-uninitialized-memory-cve-2018-7166" class="anchor" href="#unintentional-exposure-of-uninitialized-memory-cve-2018-7166" aria-labelledby="header-unintentional-exposure-of-uninitialized-memory-cve-2018-7166"></a></h2><p><strong>Only Node.js 10 is impacted by this flaw. Our previous announcement wrongly stated that all release lines were vulnerable.</strong></p>
<p>Node.js TSC member Сковорода Никита Андреевич (Nikita Skovoroda / <a href="https://github.com/chalker">@ChALkeR</a>) discovered an argument processing flaw that causes <code>Buffer.alloc()</code> to return uninitialized memory. This method is intended to be safe and only return initialized, or cleared, memory. The third argument specifying <code>encoding</code> can be passed as a number, this is misinterpreted by <code>Buffer</code>&#39;s internal &quot;fill&quot; method as the <code>start</code> to a fill operation. This flaw may be abused where <code>Buffer.alloc()</code> arguments are derived from user input to return uncleared memory blocks that may contain sensitive information.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All previous versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-out-of-bounds-oob-write-cve-2018-12115">Out of bounds (OOB) write (CVE-2018-12115)<a id="out-of-bounds-oob-write-cve-2018-12115" class="anchor" href="#out-of-bounds-oob-write-cve-2018-12115" aria-labelledby="header-out-of-bounds-oob-write-cve-2018-12115"></a></h2><p>All actively supported release lines of Node.js are impacted by this flaw.</p>
<p>Node.js TSC member Сковорода Никита Андреевич (Nikita Skovoroda / <a href="https://github.com/chalker">@ChALkeR</a>) discovered an OOB write in <code>Buffer</code> that can be used to write to memory outside of a <code>Buffer</code>&#39;s memory space. This can corrupt unrelated <code>Buffer</code> objects or cause the Node.js process to crash.</p>
<p>When used with UCS-2 encoding (recognized by Node.js under the names <code>&#39;ucs2&#39;</code>, <code>&#39;ucs-2&#39;</code>, <code>&#39;utf16le&#39;</code> and <code>&#39;utf-16le&#39;</code>), <code>Buffer#write()</code> can be abused to write outside of the bounds of a single <code>Buffer</code>. Writes that start from the second-to-last position of a buffer cause a miscalculation of the maximum length of the input bytes to be written.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All previous versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All previous versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<p><strong><em>Original post is included below</em></strong></p>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will be releasing new versions for each of its supported release lines on, or shortly after, the 15th of August, 2018 (UTC). These releases will incorporate a number of security fixes and an upgraded version of OpenSSL.</p>
<p>We consider all of the flaws being addressed in these releases to be <em>low severity</em>. However, users should assess the severity of the impact on their own applications using the information disclosed here and the additional disclosure that will come with the releases.</p>
<h2 id="header-openssl-1-1-0i-and-1-0-2p">OpenSSL 1.1.0i and 1.0.2p<a id="openssl-1-1-0i-and-1-0-2p" class="anchor" href="#openssl-1-1-0i-and-1-0-2p" aria-labelledby="header-openssl-1-1-0i-and-1-0-2p"></a></h2><p>The OpenSSL team <a href="https://mta.openssl.org/pipermail/openssl-announce/2018-August/000129.html">have announced</a> that OpenSSL 1.1.0i and 1.0.2p will be made available on the 14th of August, 2018. There will be three &quot;LOW severity&quot; security fixes in this release that have already been disclosed, and the fixes made available on the OpenSSL git repository. Two of these items are relevant to Node.js users:</p>
<ul>
<li>OpenSSL: Client DoS due to large DH parameter (<a href="https://www.openssl.org/news/secadv/20180612.txt">CVE-2018-0732</a>)</li>
<li>OpenSSL: ECDSA key extraction via local side-channel (CVE not assigned)</li>
</ul>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> impacted via OpenSSL 1.0.2</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> impacted via OpenSSL 1.0.2</li>
<li>All versions of Node.js 10.x (Current) <strong>are</strong> impacted via OpenSSL 1.1.0</li>
</ul>
<h2 id="header-node-js-security-inclusions">Node.js security inclusions<a id="node-js-security-inclusions" class="anchor" href="#node-js-security-inclusions" aria-labelledby="header-node-js-security-inclusions"></a></h2><ul>
<li>Unintentional exposure of uninitialized memory (CVE-2018-7166)</li>
<li>Out of bounds (OOB) write (CVE-2018-12115)</li>
</ul>
<p><strong>All actively supported release lines of Node.js are impacted by these flaws.</strong></p>
<h2 id="header-additional-inclusions">Additional inclusions<a id="additional-inclusions" class="anchor" href="#additional-inclusions" aria-labelledby="header-additional-inclusions"></a></h2><p>We will also be including the following items in these releases for LTS release lines:</p>
<ul>
<li><a href="https://github.com/nodejs/node/pull/21376">inspector: don&#39;t bind to 0.0.0.0 by default (v6.x) #21376</a>: impacts Node.js 6.x (LTS &quot;Boron&quot;) only</li>
<li><a href="https://github.com/nodejs/node/pull/19975">test: update keys/Makefile to clean and build all #19975</a>: impacts the test suite for all actively supported release lines of Node.js</li>
</ul>
<p>The Node.js 10 &quot;Current&quot; release will <em>not</em> be limited to only security-related updates, as per policy for non-LTS release lines.</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, the 15th of August, 2018 (UTC), along with disclosure of details of the flaws addressed in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organization</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/august-2018-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/august-2018-security-releases</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Sat, 11 Aug 2018 11:07:51 GMT</pubDate></item><item><title><![CDATA[June 2018 Security Releases]]></title><description><![CDATA[<p><em>(Update 12-June-2018)</em> Security releases available</p>
<h1 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h1><p>Updates are now available for all active Node.js release lines. These include the fix for the vulnerabilities identified in the initial announcement (below).</p>
<p>We recommend that all users upgrade as soon as possible.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><ul>
<li><a href="https://nodejs.org/en/blog/release/v10.4.1">Node.js 10.4.1 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v9.11.2">Node.js 9.11.2</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.11.3">Node.js 8.11.3 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.14.3">Node.js 6.14.3 (LTS &quot;Boron&quot;)</a></li>
</ul>
<h2 id="header-denial-of-service-vulnerability-in-http-2-cve-2018-7161">Denial of Service Vulnerability in HTTP/2 (CVE-2018-7161)<a id="denial-of-service-vulnerability-in-http-2-cve-2018-7161" class="anchor" href="#denial-of-service-vulnerability-in-http-2-cve-2018-7161" aria-labelledby="header-denial-of-service-vulnerability-in-http-2-cve-2018-7161"></a></h2><p>All versions of 8.x and later are vulnerable and the severity is HIGH. An attacker can cause a denial of service (DoS) by causing a node server providing an http2 server to crash. This can be accomplished by interacting with the http2 server in a manner that triggers a cleanup bug where objects are used in native code after they are no longer available. This has been addressed by updating the http2 implementation. Thanks to Jordan Zebor at F5 Networks for reporting this issue.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> NOT vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 9.x <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-denial-of-service-nghttp2-dependency-cve-2018-1000168">Denial of Service, nghttp2 dependency (CVE-2018-1000168)<a id="denial-of-service-nghttp2-dependency-cve-2018-1000168" class="anchor" href="#denial-of-service-nghttp2-dependency-cve-2018-1000168" aria-labelledby="header-denial-of-service-nghttp2-dependency-cve-2018-1000168"></a></h2><p>All versions of 9.x and later are vulnerable and the severity is HIGH. Under certain conditions, a malicious client can trigger an uninitialized read (and a subsequent segfault) by sending a malformed ALTSVC frame. This has been addressed through an by updating nghttp2. For further detail: <a href="https://nghttp2.org/blog/2018/04/12/nghttp2-v1-31-1/">https://nghttp2.org/blog/2018/04/12/nghttp2-v1-31-1/</a>.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>Versions of Node.js 8.4.x and higher (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 9.x <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-denial-of-service-vulnerability-in-tls-cve-2018-7162">Denial of Service Vulnerability in TLS (CVE-2018-7162)<a id="denial-of-service-vulnerability-in-tls-cve-2018-7162" class="anchor" href="#denial-of-service-vulnerability-in-tls-cve-2018-7162" aria-labelledby="header-denial-of-service-vulnerability-in-tls-cve-2018-7162"></a></h2><p>All versions of 9.x and later are vulnerable and the severity is HIGH. An attacker can cause a denial of service (DoS) by causing a node process which provides an http server supporting TLS server to crash. This can be accomplished by sending duplicate/unexpected messages during the handshake. This vulnerability has been addressed by updating the TLS implementation. Thanks to Jordan Zebor at F5 Networks all of his help investigating this issue with the Node.js team.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 9.x <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-memory-exhaustion-dos-on-v9-x-cve-2018-7164">Memory exhaustion DoS on v9.x (CVE-2018-7164)<a id="memory-exhaustion-dos-on-v9-x-cve-2018-7164" class="anchor" href="#memory-exhaustion-dos-on-v9-x-cve-2018-7164" aria-labelledby="header-memory-exhaustion-dos-on-v9-x-cve-2018-7164"></a></h2><p>Versions 9.7.0 and later are vulnerable and the severity is MEDIUM. A bug introduced in 9.7.0 increases the memory consumed when reading from the network into JavaScript using the net.Socket object directly as a stream. An attacker could use this cause a denial of service by sending tiny chunks of data in short succession. This vulnerability was restored by reverting to the prior behaviour.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>Versions of Node.js 9.7.0 and higher <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 10.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h2 id="header-calls-to-buffer-fill-and-or-buffer-alloc-may-hang-cve-2018-7167">Calls to Buffer.fill() and/or Buffer.alloc() may hang (CVE-2018-7167)<a id="calls-to-buffer-fill-and-or-buffer-alloc-may-hang-cve-2018-7167" class="anchor" href="#calls-to-buffer-fill-and-or-buffer-alloc-may-hang-cve-2018-7167" aria-labelledby="header-calls-to-buffer-fill-and-or-buffer-alloc-may-hang-cve-2018-7167"></a></h2><p>Calling Buffer.fill() or Buffer.alloc() with some parameters can lead to a hang which could result in a Denial of Service. The following examples show the cases which hang:</p>
<ul>
<li><code>Buffer.alloc(100).fill(Buffer.alloc(0))</code></li>
<li><code>Buffer.alloc(100).fill(Buffer.from(&#39;&#39;))</code></li>
<li><code>Buffer.alloc(100).fill(new Uint8Array([]))</code></li>
<li><code>Buffer.alloc(100, Buffer.alloc(0))</code></li>
<li><code>Buffer.alloc(100, new Uint8Array([]))</code></li>
<li><code>new Buffer(10).fill(new Buffer(&#39;&#39;))</code></li>
</ul>
<p>In order to address this vulnerability, the implementations of Buffer.alloc() and Buffer.fill() were updated so that they zero fill instead of hanging in these cases.</p>
<ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) are vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) are vulnerable</li>
<li>All versions of Node.js 9.x are vulnerable</li>
<li>All versions of Node.js 10.x (Current) are NOT vulnerable</li>
</ul>
<p><strong><em>Original post is included below</em></strong></p>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>Node.js will release new versions of all supported release lines on or around June 12th, 2018 (UTC). These releases will incorporate a number of security fixes.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><ul>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) are vulnerable to 1 denial-of-service (DoS) vulnerability with a severity of LOW.</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) are vulnerable to 2 denial-of-service (DoS) vulnerabilities, the highest severity being HIGH (<strong>Note</strong> This should have said 3).</li>
<li>Versions of Node.js 9.x are vulnerable to 5 denial-of-service (DoS) vulnerabilities, the highest severity being HIGH.</li>
<li>All versions of Node.js 10.x (Current) are vulnerable to 4 denial-of-service (DoS) vulnerabilities, the highest severity being HIGH.</li>
</ul>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available on or around June 12th, 2018 (UTC), along with disclosure of the details for the flaws addressed in each release in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organization</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/june-2018-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/june-2018-security-releases</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Tue, 12 Jun 2018 23:00:59 GMT</pubDate></item><item><title><![CDATA[March 2018 Security Releases]]></title><description><![CDATA[<h1 id="header-update-28-march-2018-security-releases-available"><em>(Update 28-March-2018)</em> Security releases available<a id="update-28-march-2018-security-releases-available" class="anchor" href="#update-28-march-2018-security-releases-available" aria-labelledby="header-update-28-march-2018-security-releases-available"></a></h1><h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. These include the fix for the vulnerabilities identified in the initial announcement (below).</p>
<p>In addition to the vulnerabilities in the initial announcement, we have also included a fix for a vulnerability in the Node.js inspector functionality. This is described in detail below.</p>
<p>We recommend that all users upgrade as soon as possible.</p>
<h2 id="header-downloads-release-details">Downloads &amp; release details<a id="downloads-release-details" class="anchor" href="#downloads-release-details" aria-labelledby="header-downloads-release-details"></a></h2><ul>
<li><a href="https://nodejs.org/en/blog/release/v9.10.0">Node.js 9.10.0 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.11.0">Node.js 8.11.0 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.14.0">Node.js 6.14.0 (LTS &quot;Boron&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.9.0">Node.js 4.9.0 (LTS &quot;Argon&quot;)</a></li>
</ul>
<h2 id="header-openssl-1-0-2o">OpenSSL 1.0.2o<a id="openssl-1-0-2o" class="anchor" href="#openssl-1-0-2o" aria-labelledby="header-openssl-1-0-2o"></a></h2><p>OpenSSL version 1.0.2o was released this week. It fixed a <a href="https://www.openssl.org/news/vulnerabilities.html#CVE-2018-0739">flaw that primarily relates to PKCS#7</a> that may be used to cause a denial of service (DoS) attack (CVE-2018-0739). As PKCS#7 is not currently supported by Node.js and this flaw does not impact SSL/TLS functionality, our crypto team do not believe this has any impact on Node.js users.</p>
<p>OpenSSL 1.0.2o also contains a small number of code changes that are part of the OpenSSL project&#39;s continued code cleanup efforts. It is included in the releases for all Node.js release lines regardless of security impact.</p>
<h2 id="header-node-js-inspector-dns-rebinding-vulnerability-cve-2018-7160">Node.js Inspector DNS rebinding vulnerability (CVE-2018-7160)<a id="node-js-inspector-dns-rebinding-vulnerability-cve-2018-7160" class="anchor" href="#node-js-inspector-dns-rebinding-vulnerability-cve-2018-7160" aria-labelledby="header-node-js-inspector-dns-rebinding-vulnerability-cve-2018-7160"></a></h2><p>Node.js 6.x and later include a <a href="https://nodejs.org/en/docs/inspector/">debugger protocol</a> (also known as &quot;inspector&quot;) that can be activated by the <code>--inspect</code> and related command line flags. This debugger service was vulnerable to a <a href="https://en.wikipedia.org/wiki/DNS_rebinding">DNS rebinding attack</a> which could be exploited to perform remote code execution.</p>
<p>The attack was possible from malicious websites open in a web browser on the same computer, or another computer with network access to the computer running the Node.js process. A malicious website could use a DNS rebinding attack to trick the web browser to bypass <a href="https://en.wikipedia.org/wiki/Same-origin_policy">same-origin-policy</a> checks and to allow HTTP connections to localhost or to hosts on the local network. If a Node.js process with the debug port active is running on localhost or on a host on the local network, the malicious website could connect to it as a debugger, and get full code execution access.</p>
<p>We updated the inspector implementation with an additional check for the browser provided <code>Host</code> header. If the connection is via a hostname, i.e. subject to DNS resolution, we ensure that the connection is to either <code>localhost</code> or <code>localhost6</code> precisely.</p>
<p>Note that this mitigation may affect some remote debugging scenarios. For example it may no longer be possible to debug a remote computer by using a hostname. Either connect using the IP address or use an ssh-tunnel to work around this additional security check. This change is therefore a <em>&quot;breaking change&quot;</em>, however, as per the <a href="https://github.com/nodejs/release#release-plan">Node.js release plan</a>, we are including this as a security fix on all impacted release lines as a <strong>semver-minor</strong> rather than semver-major increment.</p>
<p>Node.js versions 4.x were <em>not</em> vulnerable as the inspector debug protocol is not available in that release line.</p>
<p>The severity of this vulnerability is HIGH due to remote code execution risk. However, the impact should be limited to environments (e.g. development) where debuggers are typically used.</p>
<p>This vulnerability was reported by Timo Schmid.</p>
<h2 id="header-path-module-regular-expression-denial-of-service-cve-2018-7158"><code>&#39;path&#39;</code> module regular expression denial of service (CVE-2018-7158)<a id="path-module-regular-expression-denial-of-service-cve-2018-7158" class="anchor" href="#path-module-regular-expression-denial-of-service-cve-2018-7158" aria-labelledby="header-path-module-regular-expression-denial-of-service-cve-2018-7158"></a></h2><p>The <code>&#39;path&#39;</code> module in the <strong>Node.js 4.x</strong> release line contains a potential regular expression denial of service (<a href="https://en.wikipedia.org/wiki/ReDoS">ReDoS</a>) vector. The code in question was replaced in Node.js 6.x and later so this vulnerability only impacts all versions of Node.js 4.x.</p>
<p>The regular expression, <code>splitPathRe</code>, used within the <code>&#39;path&#39;</code> module for the various path parsing functions, including <code>path.dirname()</code>, <code>path.extname()</code> and <code>path.parse()</code> was structured in such a way as to allow an attacker to craft a string, that when passed through one of these functions, could take a significant amount of time to evaluate, potentially leading to a full denial of service.</p>
<p>We have determined the security risk of this vulnerability to Node.js users to be HIGH and recommend upgrading your Node.js 4.x installations as soon as possible.</p>
<p>This vulnerability was reported by James Davis of Virginia Tech.</p>
<h2 id="header-spaces-in-http-content-length-header-values-are-ignored-cve-2018-7159">Spaces in HTTP <code>Content-Length</code> header values are ignored (CVE-2018-7159)<a id="spaces-in-http-content-length-header-values-are-ignored-cve-2018-7159" class="anchor" href="#spaces-in-http-content-length-header-values-are-ignored-cve-2018-7159" aria-labelledby="header-spaces-in-http-content-length-header-values-are-ignored-cve-2018-7159"></a></h2><p>The HTTP parser in all current versions of Node.js ignores spaces in the <code>Content-Length</code> header, allowing input such as <code>Content-Length: 1 2</code> to be interpreted as having a value of <code>12</code>. The HTTP specification does not allow for spaces in the <code>Content-Length</code> value and the Node.js HTTP parser has been brought into line on this particular difference.</p>
<p>We have determined the security risk of this flaw to Node.js users to be VERY LOW as it is difficult, and may be impossible, to craft an attack that makes use of this flaw in a way that could not already be achieved by supplying an incorrect value for <code>Content-Length</code>. Vulnerabilities may exist in user-code that make incorrect assumptions about the potential accuracy of this value compared to the actual length of the data supplied. Node.js users crafting lower-level HTTP utilities are advised to re-check the length of any input supplied after parsing is complete.</p>
<p>This change is a <em>&quot;breaking change&quot;</em> as <code>Content-Length</code> values containing internal spaces are now rejected in the same way that non-numeric values are rejected. However, as per the <a href="https://github.com/nodejs/release#release-plan">Node.js release plan</a>, we are including this as a security fix on all release lines as a <strong>semver-minor</strong> rather than semver-major increment.</p>
<p>This flaw was reported by Сковорода Никита Андреевич (Nikita Skovoroda / <a href="https://github.com/chalker">@ChALkeR</a>)</p>
<h2 id="header-update-root-certificates">Update root certificates<a id="update-root-certificates" class="anchor" href="#update-root-certificates" aria-labelledby="header-update-root-certificates"></a></h2><p>All releases also include an update to the root certificates that are bundled in the Node.js binary. This includes 8 new additional certificates and the removal of 30 certificates. Details are available in on the public Node.js repository at <a href="https://github.com/nodejs/node/pull/19322">https://github.com/nodejs/node/pull/19322</a>.</p>
<p>Node.js uses Mozilla&#39;s <a href="https://wiki.mozilla.org/NSS">NSS</a> root certificate database. Certificates are regularly added to and removed from this database. Occasionally, certificates are revoked due to compliance or trust concerns, as is the case for the <a href="https://wiki.mozilla.org/CA:WoSign_Issues">WoSign / StartCom</a> certificates that are being removed in this update.</p>
<p>Please note that the <a href="https://nodejs.org/docs/latest-v4.x/api/cli.html#cli_node_extra_ca_certs_file"><code>NODE_EXTRA_CA_CERTS</code></a> environment variable may be used to add back in certificates that have been removed if required (although this is not advised). In addition the <code>ca</code> option may be used when creating TLS or HTTPS servers to provide a custom list of trusted certificates.</p>
<p>This update was submitted by Ben Noordhuis.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will be releasing new versions for each of its supported release lines on, or shortly after, the 27th of March, 2018 (UTC). These releases will incorporate a number of security fixes and will also likely include an upgraded version of OpenSSL.</p>
<h2 id="header-inclusions">Inclusions<a id="inclusions" class="anchor" href="#inclusions" aria-labelledby="header-inclusions"></a></h2><h3 id="header-openssl-1-0-2o-1">OpenSSL 1.0.2o<a id="openssl-1-0-2o-1" class="anchor" href="#openssl-1-0-2o-1" aria-labelledby="header-openssl-1-0-2o-1"></a></h3><p>The OpenSSL team <a href="https://mta.openssl.org/pipermail/openssl-announce/2018-March/000116.html">have announced</a> that OpenSSL 1.0.2o will be made available on the 27th of March, 2018. The highest severity issue fixed in these releases is MODERATE. According to the <a href="https://www.openssl.org/policies/secpolicy.html">OpenSSL Security Policy</a>, this classification is defined as follows:</p>
<blockquote>
<p>MODERATE Severity. This includes issues like crashes in client applications, flaws in protocols that are less commonly used (such as DTLS), and local flaws. These will in general be kept private until the next release, and that release will be scheduled so that it can roll up several such flaws at one time.</p>
</blockquote>
<p>This post will be updated with a Node.js impact assessment for the flaws addressed in this OpenSSL release. However, regardless of severity, all actively supported Node.js release lines will likely receive an upgrade from OpenSSL 1.0.2n to 1.0.2o.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 4.x (LTS &quot;Argon&quot;) <strong>are</strong> impacted</li>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> impacted</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> impacted</li>
<li>All versions of Node.js 9.x (Current) <strong>are</strong> impacted</li>
</ul>
<h3 id="header-denial-of-service-dos-vulnerability">Denial of service (DoS) vulnerability<a id="denial-of-service-dos-vulnerability" class="anchor" href="#denial-of-service-dos-vulnerability" aria-labelledby="header-denial-of-service-dos-vulnerability"></a></h3><p>All versions of 4.x are vulnerable to a flaw that can be used by an external attacker to cause a denial of service (DoS). The severity of this vulnerability is HIGH, users of the impacted versions should plan to upgrade when a fix is made available.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 4.x (LTS &quot;Argon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are NOT</strong> vulnerable</li>
<li>All versions of Node.js 9.x (Current) <strong>are NOT</strong> vulnerable</li>
</ul>
<h3 id="header-http-parsing-flaw">HTTP parsing flaw<a id="http-parsing-flaw" class="anchor" href="#http-parsing-flaw" aria-labelledby="header-http-parsing-flaw"></a></h3><p>All versions of Node.js contain a flaw in their HTTP parser whereby a malformed HTTP request may be misinterpreted. The security impact of this flaw is minimal and therefore the severity is VERY LOW. The impact relates to usability concerns but we are currently not aware of practical uses of this flaw to attack well-constructed HTTP servers.</p>
<p><strong>Impact:</strong></p>
<ul>
<li>All versions of Node.js 4.x (LTS &quot;Argon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 6.x (LTS &quot;Boron&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 8.x (LTS &quot;Carbon&quot;) <strong>are</strong> vulnerable</li>
<li>All versions of Node.js 9.x (Current) <strong>are</strong> vulnerable</li>
</ul>
<h3 id="header-update-root-certificates-1">Update root certificates<a id="update-root-certificates-1" class="anchor" href="#update-root-certificates-1" aria-labelledby="header-update-root-certificates-1"></a></h3><p>All releases will also include an update to the root certificates that are bundled in the Node.js binary. This includes 5 new additional certificates and the removal of 30 certificates. Details are available in on the public Node.js repository at <a href="https://github.com/nodejs/node/pull/19322">https://github.com/nodejs/node/pull/19322</a>.</p>
<p>Please note that the <a href="https://nodejs.org/docs/latest-v4.x/api/cli.html#cli_node_extra_ca_certs_file"><code>NODE_EXTRA_CA_CERTS</code></a> environment variable may be used to add back in certificates that have been removed if required (although this is not advised). In addition, the <code>ca</code> option may be used when creating TLS or HTTPS servers to provide a custom list of trusted certificates.</p>
<h2 id="header-regarding-node-js-4-x-lts-argon">Regarding Node.js 4.x (LTS &quot;Argon&quot;)<a id="regarding-node-js-4-x-lts-argon" class="anchor" href="#regarding-node-js-4-x-lts-argon" aria-labelledby="header-regarding-node-js-4-x-lts-argon"></a></h2><p>Please be aware that according to the Node.js <a href="https://github.com/nodejs/release#release-schedule">release schedule</a>, support for Node.js 4.x (LTS &quot;Argon&quot;) will cease on the 30th of April. As this release line is in &quot;Maintenance&quot; and therefore receives minimal updates, this upcoming release of Node.js 4.x may be the final version for that release line.</p>
<p>If you have not already migrated from Node.js 4.x to a later release line, please do so at your earliest convenience. The Node.js team recommends adopting either Node.js 6.x (LTS &quot;Boron&quot;) or Node.js 8.x (LTS &quot;Carbon&quot;).</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, the 27th of March, 2018 (UTC), along with disclosure of the details for the flaws addressed in each release in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organization</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/march-2018-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/march-2018-security-releases</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Wed, 21 Mar 2018 23:49:59 GMT</pubDate></item><item><title><![CDATA[Meltdown and Spectre - Impact On Node.js]]></title><description><![CDATA[<h1 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h1><p>Project zero has recently announced some new attacks that have received a
lot of attention:
<a href="https://googleprojectzero.blogspot.ca/2018/01/reading-privileged-memory-with-side.html">https://googleprojectzero.blogspot.ca/2018/01/reading-privileged-memory-with-side.html</a>.</p>
<p>The risk from these attacks to systems running Node.js resides in the
systems in which your Node.js applications run, as opposed to the
Node.js runtime itself. The trust model for Node.js assumes you are
running trusted code and does not provide any separation between code
running within the runtime itself. Therefore, untrusted code that
would be necessary to execute these attacks in Node.js could already
affect the execution of your Node.js applications in ways that
are more severe than possible through these new attacks.</p>
<p>This does not mean that you don&#39;t need to protect yourself from
these new attacks when running Node.js applications. If an attacker
manages to run malicious code on an unpatched OS (whether using
JavaScript or something else) they may be able to access memory and or
data that they should not have access to. In order to protect yourself
from these cases, apply the security patches for your operating
system. You do not need to update the Node.js runtime.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date
on security vulnerabilities and security-related releases of Node.js and
the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/jan-2018-spectre-meltdown</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/jan-2018-spectre-meltdown</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Mon, 08 Jan 2018 17:30:00 GMT</pubDate></item><item><title><![CDATA[Data Confidentiality/Integrity Vulnerability, December 2017]]></title><description><![CDATA[<h1 id="header-update-7-december-2017-security-releases-available"><em>(Update 7-December-2017)</em> Security releases available<a id="update-7-december-2017-security-releases-available" class="anchor" href="#update-7-december-2017-security-releases-available" aria-labelledby="header-update-7-december-2017-security-releases-available"></a></h1><h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. These include the fix for the vulnerability identified in the initial announcement.</p>
<p>In addition the updates for 8.X and 9.X include a fix for a low severity buffer vulnerability as describe below.</p>
<p>We recommend that all users upgrade as soon as possible.</p>
<h2 id="header-downloads">Downloads<a id="downloads" class="anchor" href="#downloads" aria-labelledby="header-downloads"></a></h2><ul>
<li><a href="https://nodejs.org/en/blog/release/v9.2.1">Node.js 9 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.9.3">Node.js 8 (LTS &quot;Carbon&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.12.2">Node.js 6 (LTS &quot;Boron&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.8.7">Node.js 4 (LTS &quot;Argon&quot;)</a></li>
</ul>
<h2 id="header-data-confidentiality-integrity-vulnerability-cve-2017-15896">Data Confidentiality/Integrity Vulnerability - CVE-2017-15896<a id="data-confidentiality-integrity-vulnerability-cve-2017-15896" class="anchor" href="#data-confidentiality-integrity-vulnerability-cve-2017-15896" aria-labelledby="header-data-confidentiality-integrity-vulnerability-cve-2017-15896"></a></h2><p>Node.js was affected by OpenSSL vulnerability CVE-2017-3737 in regards to the use of SSL_read() due to TLS handshake failure. The result was that an active network attacker could send application data to Node.js using the TLS or HTTP2 modules in a way that bypassed TLS authentication and encryption.</p>
<ul>
<li><p>The original HTTP module was not affected.</p>
</li>
<li><p>The vulnerability in the HTTP2 module (which only existing in the 8.X and 9.X lines) was fixed through <a href="https://github.com/nodejs/node/commit/f3686f2a4dc017d998a057f7fa6107e36a721641">nodejs/node@f3686f2</a>. HTTP2 was previously exploitable through the submission of malicious data by an attacker.</p>
</li>
<li><p>The vulnerability in the TLS module was fixed by incorporating OpenSSL-1.0.2n into Node.js. We are not currently aware of any exploits but it was previously at a severe security risk of accepting unauthenticated data. See this advisory from OpenSSL for more details on the fixes in OpenSSL-1.0.2n <a href="https://www.openssl.org/news/secadv/20171207.txt">secadv-20171207.txt</a>.</p>
</li>
<li><p>The HTTPS module was not affected.</p>
</li>
</ul>
<p>This vulnerability has been assigned CVE-2017-15896.</p>
<p>We would like to thank Matt Caswell (OpenSSL) and David Benjamin (Google) for reporting this.</p>
<h2 id="header-uninitialized-buffer-vulnerability-cve-2017-15897">Uninitialized buffer vulnerability - CVE-2017-15897<a id="uninitialized-buffer-vulnerability-cve-2017-15897" class="anchor" href="#uninitialized-buffer-vulnerability-cve-2017-15897" aria-labelledby="header-uninitialized-buffer-vulnerability-cve-2017-15897"></a></h2><p>Node.js had a bug in versions 8.X and 9.X which caused buffers to not be initialized when the encoding for the fill value did not match the encoding specified. For example, &#39;Buffer.alloc(0x100, &quot;This is not correctly encoded&quot;, &quot;hex&quot;);&#39; The buffer implementation was updated such that the buffer will be initialized to all zeros in these cases.</p>
<p>Versions 4.X and 6.X were <strong>not</strong> vulnerable.</p>
<p>The severity of this information disclosure vulnerability was low (due to the combination of coding errors that need to have been made in order to make it exploitable) and it has been assigned CVE-2017-15897.</p>
<h2 id="header-also-included-in-openssl-update-cve-2017-3738">Also included in OpenSSL update - CVE 2017-3738<a id="also-included-in-openssl-update-cve-2017-3738" class="anchor" href="#also-included-in-openssl-update-cve-2017-3738" aria-labelledby="header-also-included-in-openssl-update-cve-2017-3738"></a></h2><p>Note that CVE 2017-3738 of OpenSSL-1.0.2 affected Node but it was low severity as described in <a href="https://www.openssl.org/news/secadv/20171207.txt">secadv-20171207.txt</a>.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will be releasing new versions of 4.x, 6.x, 8.x and 9.x as soon as possible after the OpenSSL release, on or soon after December 8th UTC, to incorporate a security fix.</p>
<h2 id="header-data-confidentiality-integrity-vulnerability">Data Confidentiality/Integrity Vulnerability<a id="data-confidentiality-integrity-vulnerability" class="anchor" href="#data-confidentiality-integrity-vulnerability" aria-labelledby="header-data-confidentiality-integrity-vulnerability"></a></h2><p>All versions of 4.x, 6.x, 8.x and 9.x are vulnerable to an issue to be fixed in the forthcoming OpenSSL-1.0.2n released on Dec 7, see <a href="https://mta.openssl.org/pipermail/openssl-announce/2017-December/000108.html">https://mta.openssl.org/pipermail/openssl-announce/2017-December/000108.html</a> for more details. The severity of this vulnerability of Node.js is HIGH (due to the way Node.js uses the OpenSSL APIs) and users of the affected versions should plan to upgrade when a fix is made available.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><ul>
<li>Versions 4.0 and later of Node.js are vulnerable</li>
<li>Versions 6.0 and later of Node.js are vulnerable</li>
<li>Versions 8.0 and later of Node.js are vulnerable</li>
<li>Versions 9.0 and later of Node.js are vulnerable</li>
</ul>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available as soon as possible after the OpenSSL release, along with disclosure of the details for the vulnerability in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/december-2017-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/december-2017-security-releases</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Fri, 08 Dec 2017 16:30:00 GMT</pubDate></item><item><title><![CDATA[OpenSSL update, 1.0.2m]]></title><description><![CDATA[<h2 id="header-update-8-nov-2017-node-js-releases"><em>(Update 8-Nov-2017)</em> Node.js Releases<a id="update-8-nov-2017-node-js-releases" class="anchor" href="#update-8-nov-2017-node-js-releases" aria-labelledby="header-update-8-nov-2017-node-js-releases"></a></h2><p>Releases were made available for active lines yesterday, each including the OpenSSL 1.0.2m update. As we have not categorized these strictly as <em>security</em> releases they also contain other minor fixes and additions as per our regular release procedures.</p>
<p>While we don&#39;t consider OpenSSL 1.0.2m a <em>critical</em> update, you should make plans to upgrade your deployments as soon as practical.</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v4.8.6/">Node v4.8.6 &quot;Argon&quot; (Maintenance LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.12.0/">Node v6.12.0 &quot;Boron&quot; (Active LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v8.9.1/">Node v8.9.1 &quot;Carbon&quot; (Active LTS)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v9.1.0/">Node v9.1.0 (Current)</a></li>
</ul>
<h2 id="header-update-2-nov-2017-node-js-impact-assessment-release-plan"><em>(Update 2-Nov-2017)</em> Node.js Impact Assessment &amp; Release Plan<a id="update-2-nov-2017-node-js-impact-assessment-release-plan" class="anchor" href="#update-2-nov-2017-node-js-impact-assessment-release-plan" aria-labelledby="header-update-2-nov-2017-node-js-impact-assessment-release-plan"></a></h2><p>The following impact assessment for Node.js of the flaws fixed in OpenSSL 1.0.2m has been provided by Shigeki Ohtsu from our crypto team. Original details about the announcement from the OpenSSL team can be found <a href="#original_post">below</a>.</p>
<h3 id="header-cve-2017-3735-oob-read-parsing-ipadressfamily-in-an-x-509-certificate"><a href="https://www.openssl.org/news/vulnerabilities.html#2017-3735">CVE-2017-3735</a>: OOB read parsing IPAdressFamily in an X.509 certificate<a id="cve-2017-3735-oob-read-parsing-ipadressfamily-in-an-x-509-certificate" class="anchor" href="#cve-2017-3735-oob-read-parsing-ipadressfamily-in-an-x-509-certificate" aria-labelledby="header-cve-2017-3735-oob-read-parsing-ipadressfamily-in-an-x-509-certificate"></a></h3><p>CVE-2017-3735 fixes buffer over-read in parsing X.509 certificates using extensions defined in RFC3779.</p>
<p>Node.js disables RFC3779 support by defining <code>OPENSSL_NO_RFC3779</code> during compile. It is therefore <strong>unlikely that Node.js is impacted in any way by this vulnerability</strong>.</p>
<h3 id="header-cve-2017-3736-carry-propagating-bug-in-the-x86_64-montgomery-squaring-procedure"><a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3736">CVE-2017-3736</a>: Carry propagating bug in the x86_64 Montgomery squaring procedure<a id="cve-2017-3736-carry-propagating-bug-in-the-x86_64-montgomery-squaring-procedure" class="anchor" href="#cve-2017-3736-carry-propagating-bug-in-the-x86_64-montgomery-squaring-procedure" aria-labelledby="header-cve-2017-3736-carry-propagating-bug-in-the-x86_64-montgomery-squaring-procedure"></a></h3><p>CVE-2017-3736 fixes a carry propagating bug in the x86_64 <a href="https://en.wikipedia.org/wiki/Exponentiation_by_squaring#Montgomery.27s_ladder_technique"><em>Montgomery squaring</em></a> procedure.</p>
<blockquote>
<p>Analysis suggests that attacks against RSA and DSA as a result of this defect would be very difficult to perform and are not believed likely. Attacks against Diffie-Hellman are considered just feasible (although very difficult) because most of the work necessary to deduce information about a private key may be performed offline. The amount of resources required for such an attack would be very significant and likely only accessible to a limited number of attackers. An attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent Diffie-Hellman parameters and a private key that is shared between multiple clients.
This only affects processors that support the BMI1, BMI2 and ADX extensions like Intel Broadwell (5th generation) and later or AMD Ryzen.</p>
</blockquote>
<p>CVE-2017-3736 impacts Node.js users but the likelihood of successful attack using the flaw is <strong>very low and we therefore deem it to be non-critical</strong>.</p>
<h3 id="header-additional-fixes">Additional fixes<a id="additional-fixes" class="anchor" href="#additional-fixes" aria-labelledby="header-additional-fixes"></a></h3><p>OpenSSL 1.0.2m also includes two additional fixes that do not have a CVE assigned to them.</p>
<ol>
<li>A <a href="https://github.com/openssl/openssl/commit/23f7e974d59a576ad7d8cfd9f7ac957a883e361f">side channel attack of ECDSA</a> which appears too difficult to execute and can only obtain limited information about a private key.</li>
<li>A fix for <a href="https://github.com/openssl/openssl/commit/a92ca561bc91f4ebd2f53578e82058efcde61aed">TLS servers with SNI enabled</a>. Node.js does not use <code>SSL_set_SSL_CTX</code> in this context so is not impacted.</li>
</ol>
<h3 id="header-release-plan">Release plan<a id="release-plan" class="anchor" href="#release-plan" aria-labelledby="header-release-plan"></a></h3><p>Due to the low impact and low severity of these fixes, we have decided <strong><em>not</em></strong> to push urgent releases of Node.js this week. Releases of all active release lines are scheduled for next Tuesday, the 7th of November and these releases will all include OpenSSL 1.0.2m along with other regular Node.js patches and additions.</p>
<p>Our active release lines are:</p>
<ul>
<li>Node.js 4 LTS &quot;Argon&quot; (Maintenance LTS)</li>
<li>Node.js 6 LTS &quot;Boron&quot; (Active LTS)</li>
<li>Node.js 8 LTS &quot;Carbon&quot; (Active LTS)</li>
<li>Node.js 9 (Current)</li>
</ul>
<p>We will include an update here once all releases are made available.</p>
<p><a id="original_post"></a></p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<p>The OpenSSL project has <a href="https://mta.openssl.org/pipermail/openssl-announce/2017-October/000103.html">announced</a> <em>(also see their <a href="https://mta.openssl.org/pipermail/openssl-announce/2017-October/000104.html">correction</a>)</em> that they will be releasing versions 1.1.0g and 1.0.2m this week, on <strong>Thursday the 2nd of November 2017, UTC</strong>. The releases will fix one <em>&quot;low severity security issue&quot;</em> and one <em>&quot;moderate level security issue&quot;</em>. &quot;Moderate&quot; level security issues for OpenSSL:</p>
<blockquote>
<p>... includes issues like crashes in client applications, flaws in protocols that are less commonly used (such as DTLS), and local flaws.</p>
</blockquote>
<p>Note that Node.js currently does not support or bundle OpenSSL 1.1.0, so we will focus entirely on 1.0.2m in this release.</p>
<p>Information about the &quot;low&quot; severity security issue is already <a href="https://www.openssl.org/news/secadv/20170828.txt">public</a>:</p>
<blockquote>
<p><strong>Malformed X.509 IPAddressFamily could cause OOB read (CVE-2017-3735)</strong></p>
<p>If an X.509 certificate has a malformed IPAddressFamily extension, OpenSSL could do a one-byte buffer overread. The most likely result would be an erroneous display of the certificate in text format.</p>
<p>As this is a low severity fix, no release is being made. The fix can be found in the source repository (1.0.2, 1.1.0, and master branches); see <a href="https://github.com/openssl/openssl/pull/4276">https://github.com/openssl/openssl/pull/4276</a>. This bug has been present since 2006.</p>
</blockquote>
<p>At this stage, due to embargo, it is uncertain what the nature of the &quot;moderate&quot; severity fix is, nor what impact it will have on Node.js users, if any. We will proceed as follows:</p>
<p>Within approximately 24 hours of the OpenSSL 1.0.2m release, our crypto team will make an impact assessment for Node.js users. This information <em>may</em> vary depending for the different active release lines and will be posted here.</p>
<p>As part of that impact assessment we will announce our release plans for each of the active release lines to take into account any impact. <strong>Please be prepared for the possibility of important updates to Node.js 4 &quot;Argon&quot;, Node.js 6 &quot;Boron&quot;, Node.js 8 &quot;Carbon&quot; and Node.js 9 (Current) as soon as Friday, the 3rd of November, 2017</strong>.</p>
<p>If our assessment concludes that the OpenSSL &quot;moderate&quot; security issue has very low impact for Node.js users, the Node.js release team may decide to bundle this OpenSSL upgrade with the regular, planned Node.js releases for both LTS and Current release lines and not proceed with special security releases.</p>
<p>Please monitor the <strong>nodejs-sec</strong> Google Group for updates, including an impact assessment and updated details on release timing within approximately 24 hours after the OpenSSL release: <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a></p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/openssl-november-2017</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/openssl-november-2017</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Mon, 30 Oct 2017 23:30:01 GMT</pubDate></item><item><title><![CDATA[DOS security vulnerability, October 2017]]></title><description><![CDATA[<h1 id="header-update-24-october-2017-releases-available"><em>(Update 24-October-2017)</em> Releases available<a id="update-24-october-2017-releases-available" class="anchor" href="#update-24-october-2017-releases-available" aria-labelledby="header-update-24-october-2017-releases-available"></a></h1><h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines. These include the fix for the vulnerability identified in the initial announcement.</p>
<p>We recommend that all users upgrade as soon as possible.</p>
<p><strong>Downloads</strong></p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v8.8.0">Node.js v8 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.11.5">Node.js v6 (LTS &quot;Boron&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.8.5">Node.js v4 (LTS &quot;Argon&quot;)</a></li>
</ul>
<h2 id="header-node-js-specific-security-flaws">Node.js-specific security flaws<a id="node-js-specific-security-flaws" class="anchor" href="#node-js-specific-security-flaws" aria-labelledby="header-node-js-specific-security-flaws"></a></h2><p>Node.js was susceptible to a remote DoS attack due to a change that came in as part of
zlib v1.2.9. In zlib v1.2.9 <code>8</code> became an invalid value for the <code>windowBits</code> parameter
and Node&#39;s zlib module will crash or throw an exception (depending on the version) if you call:</p>
<pre><code>zlib.createDeflateRaw({windowBits: 8})</code></pre>
<p>The <code>windowBits</code> parameter controls how much of a message zlib keeps in memory
while compressing it. A larger &quot;window&quot;, as it&#39;s called, means more
opportunities to spot and compress repeated bits of text, but results in higher
memory usage. windowBits is the base-2 logarithm of the size of this window in
bytes, and previously could take any integer value from 8 to 15.</p>
<p>This problem (Node.js crashing or throwing an exception) could be remotely exploited using some of the existing WebSocket clients that may request a value of <code>8</code> for <code>windowBits</code> in certain cases or with a custom built WebSocket client. There may also exist other vectors through which a zLib operation would be initiated by a remote request with a window size that results in a value of <code>windowBits</code> of 8.</p>
<p>This problem was resolved within Node.js by changing any request for a <code>windowBits</code> size of 8 to use a <code>windowsBits</code> size of 9 instead. This is consistent with previous zLib behavior and we believe minimizes the impact of the change on existing applications.</p>
<p>This vulnerability has been assigned CVE-2017-14919.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will be releasing new versions of 4.x, 6.x, and 8.x the week of the 24th of October to incorporate a security fix.</p>
<h2 id="header-denial-of-service-vulnerability">Denial of Service Vulnerability<a id="denial-of-service-vulnerability" class="anchor" href="#denial-of-service-vulnerability" aria-labelledby="header-denial-of-service-vulnerability"></a></h2><p>Versions 4.8.2 and later, 6.10.2 and later, as well as all versions of 8.x are vulnerable to an issue that can be used by an external attacker to cause a denial of service. The severity of this vulnerability is HIGH and users of the affected version should plan to upgrade when a fix is made available.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>Versions 4.8.2 and later of Node.js are vulnerable.<br>
Versions 6.10.2 and later of Node.js are vulnerable.<br>
Versions 8.x of Node.js are vulnerable.</p>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, the 24th of October along with disclosure of the details for the vulnerability in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the nodejs GitHub organisation.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/oct-2017-dos</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/oct-2017-dos</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Tue, 24 Oct 2017 22:00:00 GMT</pubDate></item><item><title><![CDATA[Path validation vulnerability, September 2017]]></title><description><![CDATA[<h1 id="header-path-validation-vulnerability-updated-29-september-2017-cve-assigned">Path Validation Vulnerability <em>(Updated 29-September-2017 - CVE assigned)</em><a id="path-validation-vulnerability-updated-29-september-2017-cve-assigned" class="anchor" href="#path-validation-vulnerability-updated-29-september-2017-cve-assigned" aria-labelledby="header-path-validation-vulnerability-updated-29-september-2017-cve-assigned"></a></h1><p>The Node.js project released a new version of 8.x this week which incorporates
a security fix.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><p>Version 8.5.0 of Node.js is vulnerable.
4.x and 6.x versions are <strong>NOT</strong> vulnerable.</p>
<h2 id="header-downloads">Downloads<a id="downloads" class="anchor" href="#downloads" aria-labelledby="header-downloads"></a></h2><p><a href="https://nodejs.org/en/blog/release/v8.6.0/">Node.js 8 (Current)</a></p>
<h2 id="header-node-js-specific-security-flaws">Node.js-specific security flaws<a id="node-js-specific-security-flaws" class="anchor" href="#node-js-specific-security-flaws" aria-labelledby="header-node-js-specific-security-flaws"></a></h2><p>Node.js version 8.5.0 included a change which caused a security vulnerability
in the checks on paths made by some community modules. As a result, an
attacker may be able to access file system paths other than those intended.</p>
<p>This problem was resolved within Node.js by partially reverting
<a href="https://github.com/nodejs/node/commit/b98e8d995efb426bbdee56ce503017bdcbbc6332">https://github.com/nodejs/node/commit/b98e8d995efb426bbdee56ce503017bdcbbc6332</a>.</p>
<p>A CVE has been assigned as <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14849">CVE-2017-14849</a></p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at
<a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date
on security vulnerabilities and security-related releases of Node.js
and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/september-2017-path-validation</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/september-2017-path-validation</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Fri, 29 Sep 2017 20:09:00 GMT</pubDate></item><item><title><![CDATA[Security updates for all active release lines, July 2017]]></title><description><![CDATA[<h1 id="header-update-10-august-2017-snapshots-re-enabled-on-8-3-0"><em>(Update 10-August-2017)</em> Snapshots Re-enabled on 8.3.0<a id="update-10-august-2017-snapshots-re-enabled-on-8-3-0" class="anchor" href="#update-10-august-2017-snapshots-re-enabled-on-8-3-0" aria-labelledby="header-update-10-august-2017-snapshots-re-enabled-on-8-3-0"></a></h1><p>The vulnerability has been patched upstream and snapshots have been re-enabled in 8.3.0</p>
<p>Expect a backport and update with the next release of 6.x</p>
<p><strong>Download</strong></p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v8.3.0">Node.js v8 (Current)</a></li>
</ul>
<h2 id="header-update-11-july-2017-security-releases-available"><em>(Update 11-July-2017)</em> Security releases available<a id="update-11-july-2017-security-releases-available" class="anchor" href="#update-11-july-2017-security-releases-available" aria-labelledby="header-update-11-july-2017-security-releases-available"></a></h2><h2 id="header-summary">Summary<a id="summary" class="anchor" href="#summary" aria-labelledby="header-summary"></a></h2><p>Updates are now available for all active Node.js release lines as well as the 7.x line. These include the fix for the high severity vulnerability identified in the initial announcement, one additional lower priority Node.js vulnerability in the 4.x release line, as well as some lower priority fixes for Node.js dependencies across the current release lines.</p>
<p>We recommend that users of all these release lines upgrade as soon as possible.</p>
<p><strong>Downloads</strong></p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v8.1.4">Node.js v8 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v7.10.1">Node.js v7</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.11.1">Node.js v6 (LTS &quot;Boron&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.8.4">Node.js v4 (LTS &quot;Argon&quot;)</a></li>
</ul>
<p><strong>Note:</strong> The 0.10.x and 0.12.x release lines are also vulnerable to the <strong>Constant Hashtable Seeds</strong> vulnerability. We recommend that users of these release lines upgrade to one of the supported LTS release lines.</p>
<h2 id="header-node-js-specific-security-flaws">Node.js-specific security flaws<a id="node-js-specific-security-flaws" class="anchor" href="#node-js-specific-security-flaws" aria-labelledby="header-node-js-specific-security-flaws"></a></h2><p><strong>Constant Hashtable Seeds (CVE-2017-11499)</strong></p>
<p>Node.js was susceptible to hash flooding remote DoS attacks as the HashTable seed was constant across a given released version of Node.js. This was a result of building with V8 snapshots enabled by default which caused the initially randomized seed to be overwritten on startup. Thanks to Jann Horn of Google Project Zero for reporting this vulnerability.</p>
<p>You can read about the general category of hash flooding vulnerabilities here: <a href="https://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf">https://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf</a>.</p>
<p>Snapshots have been disabled by default in these updates. Code that relies heavily on <code>vm.runInNewContext</code> will most likely see a performance regression until a better solution is implemented.</p>
<p>This is a high severity vulnerability and applies to all active release lines (4.x, 6.x, 8.x) as well as the 7.x line.</p>
<p><strong>http.get with numeric authorization options creates uninitialized buffers</strong></p>
<p>Application code that allows the auth field of the options object used with http.get() to be set to a number can result in an uninitialized buffer being created/used as the authentication string. For example:</p>
<pre><code>const opts = require(&#39;url&#39;).parse(&#39;http://127.0.0.1:8180&#39;);
opts.auth = 1e3; // A number here triggers the bug
require(&#39;http&#39;).get(opts, res =&gt; res.pipe(process.stdout));</code></pre>
<p>Parsing of the auth field has been updated in the 4.x release so that a TypeError will be thrown if the auth field is a number when http.get() is called.</p>
<p>This is a low severity defect and only applies to the 4.x release line.</p>
<h2 id="header-vulnerabilities-in-dependencies">Vulnerabilities in dependencies<a id="vulnerabilities-in-dependencies" class="anchor" href="#vulnerabilities-in-dependencies" aria-labelledby="header-vulnerabilities-in-dependencies"></a></h2><p>The releases for the affected Node.js release lines have been updated to include the patches need to address the following issues in Node.js dependencies. These are all considered to be low severity for Node.js due to the limited impact or likelihood of exploit in the Node.js environment.</p>
<p><strong>CVE-2017-1000381 - c-ares NAPTR parser out of bounds access</strong></p>
<p>A security vulnerability has been discovered in the c-ares library that is bundled with all versions of Node.js. Parsing of NAPTR responses could be triggered to read memory outside of the given input buffer through carefully crafted DNS response packets. The patch recommended in <a href="https://c-ares.haxx.se/adv_20170620.html">CVE-2017-1000381</a> has been added to the version of c-ares in Node.js in these releases.</p>
<p>This is a low severity defect and affects all active release lines (4.x, 6.x and 8.x) as well as the 7.x line.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<h2 id="header-summary-1">Summary<a id="summary-1" class="anchor" href="#summary-1" aria-labelledby="header-summary-1"></a></h2><p>The Node.js project will be releasing new versions across all of its active release lines (4.x, 6.x, 8.x) as well as 7.x the week of July 10th 2017 to incorporate a security fix.</p>
<h2 id="header-denial-of-service-vulnerability">Denial of Service Vulnerability<a id="denial-of-service-vulnerability" class="anchor" href="#denial-of-service-vulnerability" aria-labelledby="header-denial-of-service-vulnerability"></a></h2><p>All current versions of v4.x through to v8.x inclusive are vulnerable to an issue that can be used by an external attacker to cause a denial of service. The severity of this vulnerability is high and users of the affected versions should plan to upgrade when a fix is made available.</p>
<h2 id="header-impact">Impact<a id="impact" class="anchor" href="#impact" aria-labelledby="header-impact"></a></h2><ul>
<li>Versions 4.x of Node.js <strong>are vulnerable</strong></li>
<li>Versions 6.x of Node.js <strong>are vulnerable</strong></li>
<li>Versions 7.x of Node.js <strong>are vulnerable</strong></li>
<li>Versions 8.x of Node.js <strong>are vulnerable</strong></li>
</ul>
<h2 id="header-release-timing">Release timing<a id="release-timing" class="anchor" href="#release-timing" aria-labelledby="header-release-timing"></a></h2><p>Releases will be available at, or shortly after, Tuesday the 11th of July along with disclosure of the details for the vulnerability in order to allow for complete impact assessment by users.</p>
<h2 id="header-contact-and-future-updates">Contact and future updates<a id="contact-and-future-updates" class="anchor" href="#contact-and-future-updates" aria-labelledby="header-contact-and-future-updates"></a></h2><p>The current Node.js security policy can be found at <a href="https://nodejs.org/en/security/">https://nodejs.org/en/security/</a>.</p>
<p>Please contact <a href="mailto:security@nodejs.org">security@nodejs.org</a> if you wish to report a vulnerability in Node.js.</p>
<p>Subscribe to the low-volume announcement-only nodejs-sec mailing list at <a href="https://groups.google.com/forum/#!forum/nodejs-sec">https://groups.google.com/forum/#!forum/nodejs-sec</a> to stay up to date on security vulnerabilities and security-related releases of Node.js and the projects maintained in the <a href="https://github.com/nodejs/">nodejs GitHub organisation</a>.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/july-2017-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/july-2017-security-releases</guid><dc:creator><![CDATA[Michael Dawson]]></dc:creator><pubDate>Tue, 11 Jul 2017 17:00:00 GMT</pubDate></item><item><title><![CDATA[OpenSSL update, 1.0.2k]]></title><description><![CDATA[<h2 id="header-update-1-february-2017-releases-available"><em>(Update 1-February-2017)</em> Releases available<a id="update-1-february-2017-releases-available" class="anchor" href="#update-1-february-2017-releases-available" aria-labelledby="header-update-1-february-2017-releases-available"></a></h2><p>Updates are now available for all active Node.js release lines.</p>
<p>The following releases are bundled with OpenSSL 1.0.2k:</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v7.5.0/">Node.js 7.5.0 (Current)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v6.9.5/">Node.js 6.9.5 (LTS &quot;Boron&quot;)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.7.3/">Node.js 4.7.3 (LTS &quot;Argon&quot;)</a></li>
</ul>
<p>While this is not a critical update, all users of these release lines should upgrade at their earliest convenience.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<p>The OpenSSL project has <a href="https://mta.openssl.org/pipermail/openssl-announce/2017-January/000092.html">announced</a> the immediate availability of OpenSSL version 1.0.2k.</p>
<p>Although the OpenSSL team have determined a maximum severity rating of &quot;moderate&quot;, the Node.js crypto team (Ben Noordhuis, Shigeki Ohtsu and Fedor Indutny) have determined the impact to Node users is &quot;low&quot;. Details on this determination can be found below.</p>
<p>We will therefore be scheduling releases of all active release lines (7 &quot;Current&quot;, 6 &quot;LTS Boron&quot;, 4 &quot;LTS Argon&quot;) on Tuesday the 31st of January. As releases are made, they will appear on the <a href="https://nodejs.org/en/blog/">nodejs.org news feed</a> and this post will also be updated with details.</p>
<h2 id="header-node-js-impact-assessment">Node.js Impact Assessment<a id="node-js-impact-assessment" class="anchor" href="#node-js-impact-assessment" aria-labelledby="header-node-js-impact-assessment"></a></h2><h3 id="header-cve-2017-3731-truncated-packet-could-crash-via-oob-read"><a href="https://www.openssl.org/news/vulnerabilities.html#2017-3731">CVE-2017-3731</a>: Truncated packet could crash via OOB read<a id="cve-2017-3731-truncated-packet-could-crash-via-oob-read" class="anchor" href="#cve-2017-3731-truncated-packet-could-crash-via-oob-read" aria-labelledby="header-cve-2017-3731-truncated-packet-could-crash-via-oob-read"></a></h3><p>This is a moderate severity flaw in OpenSSL. By default, Node.js disables RC4 so most users are not affected. As RC4 can be enabled programmatically, it is possible for a Node.js developer to craft code that may be vulnerable to this flaw. Any user activating RC4 in their codebase should prioritise this update.</p>
<p>All active versions of Node.js <strong>are affected</strong>, but the severity is very low for most users.</p>
<h3 id="header-cve-2017-3730-bad-dhe-and-ecdhe-parameters-cause-a-client-crash"><a href="https://www.openssl.org/news/vulnerabilities.html#2017-3730">CVE-2017-3730</a>: Bad DHE and ECDHE parameters cause a client crash<a id="cve-2017-3730-bad-dhe-and-ecdhe-parameters-cause-a-client-crash" class="anchor" href="#cve-2017-3730-bad-dhe-and-ecdhe-parameters-cause-a-client-crash" aria-labelledby="header-cve-2017-3730-bad-dhe-and-ecdhe-parameters-cause-a-client-crash"></a></h3><p>Because this flaw only impacts OpenSSL 1.1.0 and no active Node.js release line currently bundles this version, Node.js is <strong>not affected</strong>.</p>
<h3 id="header-cve-2017-3732-bn_mod_exp-may-produce-incorrect-results-on-x86_64"><a href="https://www.openssl.org/news/vulnerabilities.html#2017-3732">CVE-2017-3732</a>: BN_mod_exp may produce incorrect results on x86_64<a id="cve-2017-3732-bn_mod_exp-may-produce-incorrect-results-on-x86_64" class="anchor" href="#cve-2017-3732-bn_mod_exp-may-produce-incorrect-results-on-x86_64" aria-labelledby="header-cve-2017-3732-bn_mod_exp-may-produce-incorrect-results-on-x86_64"></a></h3><p>As noted by the OpenSSL team, the likelihood of being able to craft a practical attack that uses this flaw is very low. In addition, Node.js enables <code>SSL_OP_SINGLE_DH_USE</code>, further decreasing the chance of a successful exploit of this vulnerability in a Node.js service.</p>
<p>All active versions of Node.js <strong>are affected</strong>, but the severity is very low for Node.js users.</p>
<h3 id="header-cve-2016-7055-montgomery-multiplication-may-produce-incorrect-results"><a href="https://www.openssl.org/news/vulnerabilities.html#2016-7055">CVE-2016-7055</a>: Montgomery multiplication may produce incorrect results<a id="cve-2016-7055-montgomery-multiplication-may-produce-incorrect-results" class="anchor" href="#cve-2016-7055-montgomery-multiplication-may-produce-incorrect-results" aria-labelledby="header-cve-2016-7055-montgomery-multiplication-may-produce-incorrect-results"></a></h3><p>Some calculations, when run on an Intel Broadwell or later CPU, can produce in erroneous results. This flaw has been previously discussed by the Node.js team <a href="https://github.com/nodejs/node/issues/9594">on GitHub</a>. It is not believed that practical attacks can be crafted to exploit this vulnerability except in very specific circumstances. Therefore this is a low severity flaw.</p>
<p>All active versions of Node.js <strong>are affected</strong>, but the severity is very low for Node.js users.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/openssl-january-2017</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/openssl-january-2017</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Fri, 27 Jan 2017 11:49:06 GMT</pubDate></item><item><title><![CDATA[October security releases and v6 LTS "Boron" security inclusions]]></title><description><![CDATA[<h2 id="header-update-18-october-2016-releases-available"><em>(Update 18-October-2016)</em> Releases available<a id="update-18-october-2016-releases-available" class="anchor" href="#update-18-october-2016-releases-available" aria-labelledby="header-update-18-october-2016-releases-available"></a></h2><p>Updates are now available for all active Node.js release lines.</p>
<p>The following releases all contain fixes for CVE-2016-5180 &quot;ares_create_query single byte out of buffer write&quot;:</p>
<ul>
<li><a href="https://nodejs.org/en/blog/release/v0.10.48/">Node.js v0.10.48 (Maintenance)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v0.12.17/">Node.js v0.12.17 (Maintenance)</a></li>
<li><a href="https://nodejs.org/en/blog/release/v4.6.1/">Node.js v4.6.1 (LTS &quot;Argon&quot;)</a></li>
</ul>
<p>While this is not a critical update, all users of these release lines should upgrade at their earliest convenience.</p>
<p>In addition, our new Node.js v6 LTS &quot;Boron&quot; release line is available beginning with <strong><a href="https://nodejs.org/en/blog/release/v6.9.0/">Node.js v6.9.0 (LTS &quot;Boron&quot;)</a></strong>. Along with the transition to Long Term Support, this release also contains the following security fixes, specific to v6.x:</p>
<ul>
<li><strong>Disable auto-loading of openssl.cnf</strong>: Don&#39;t automatically attempt to load an OpenSSL configuration file, from the <code>OPENSSL_CONF</code> environment variable or from the default location for the current platform. Always triggering a configuration file load attempt may allow an attacker to load compromised OpenSSL configuration into a Node.js process if they are able to place a file in a default location.</li>
<li><strong>Patched V8 arbitrary memory read</strong> (<a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5172">CVE-2016-5172</a>): The V8 parser mishandled scopes, potentially allowing an attacker to obtain sensitive information from arbitrary memory locations via crafted JavaScript code. This vulnerability would require an attacker to be able to execute arbitrary JavaScript code in a Node.js process.</li>
<li><strong>Create a unique v8_inspector WebSocket address</strong>: Generate a UUID for each execution of the inspector. This provides additional security to prevent unauthorized clients from connecting to the Node.js process via the v8_inspector port when running with <code>--inspect</code>. Since the debugging protocol allows extensive access to the internals of a running process, and the execution of arbitrary code, it is important to limit connections to authorized tools only. Note that the v8_inspector protocol in Node.js is still considered an experimental feature. Vulnerability originally reported by Jann Horn.</li>
</ul>
<p>All of these vulnerabilities are considered low-severity for Node.js users, however, users of Node.js v6.x should upgrade at their earliest convenience.</p>
<p><strong><em>Original post is included below</em></strong></p>
<hr>
<h3 id="header-node-js-v6-lts-security-inclusions">Node.js v6 LTS security inclusions<a id="node-js-v6-lts-security-inclusions" class="anchor" href="#node-js-v6-lts-security-inclusions" aria-labelledby="header-node-js-v6-lts-security-inclusions"></a></h3><p>Next week, on Tuesday the 18th (late evening UTC), the Node.js Foundation will be launching its second new LTS release line, a continuation of the v6.x series of releases. This line will be codenamed &quot;Boron&quot; and the first version will be v6.9.0.</p>
<p>In addition to a change to introduce the <code>process.release.lts</code> property, set to <code>&#39;Boron&#39;</code>, we will also be including 3 low-severity security patches that only apply to the v6.x release series.</p>
<p>The security vulnerabilities being addressed are all low-severity and arise from Node.js dependencies:</p>
<ul>
<li>V8</li>
<li>OpenSSL when Node.js is built in <a href="https://github.com/nodejs/node/blob/master/BUILDING.md#building-nodejs-with-fips-compliant-openssl">FIPS-compliant mode</a> (not official builds)</li>
<li>v8_inspector, a new experimental debugging protocol</li>
</ul>
<p>These patches will also be included in the new v7.x <em>Current</em> (non-LTS) release series which is due to be launched later this month.</p>
<ul>
<li>Node.js v6 <strong><em>is affected</em></strong></li>
<li>Node.js v4 (LTS &quot;Argon&quot;) <strong><em>is not affected</em></strong></li>
<li>Node.js v0.12 (Maintenance) <strong><em>is not affected</em></strong></li>
<li>Node.js v0.10 (Maintenance) <strong><em>is not affected</em></strong></li>
</ul>
<h3 id="header-cve-2016-5180-ares_create_query-single-byte-out-of-buffer-write">CVE-2016-5180 &quot;ares_create_query single byte out of buffer write&quot;<a id="cve-2016-5180-ares_create_query-single-byte-out-of-buffer-write" class="anchor" href="#cve-2016-5180-ares_create_query-single-byte-out-of-buffer-write" aria-labelledby="header-cve-2016-5180-ares_create_query-single-byte-out-of-buffer-write"></a></h3><p>A security vulnerability has been <a href="https://c-ares.haxx.se/adv_20160929.html">discovered in the c-ares library</a> that is bundled with all versions of Node.js. Due to the difficulty of triggering and making use of this vulnerability we currently consider this a low-severity security flaw for Node.js users.</p>
<p>The patch has already been included in Node.js v6 and we will ensure that patched versions of the remaining affected versions are made available by Tuesday the 18th.</p>
<ul>
<li>Node.js v6 <strong><em>is not affected</em></strong></li>
<li>Node.js v4 (LTS &quot;Argon&quot;) <strong><em>is affected</em></strong></li>
<li>Node.js v0.12 (Maintenance) <strong><em>is affected</em></strong></li>
<li>Node.js v0.10 (Maintenance) <strong><em>is affected</em></strong></li>
</ul>
<p>We apologise for the short notice of these releases.</p>
]]></description><link>https://nodejs.org/en/blog/vulnerability/october-2016-security-releases</link><guid isPermaLink="true">https://nodejs.org/en/blog/vulnerability/october-2016-security-releases</guid><dc:creator><![CDATA[Rod Vagg]]></dc:creator><pubDate>Sat, 15 Oct 2016 10:36:44 GMT</pubDate></item></channel></rss>