-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

===========================================================================
             AUSCERT External Security Bulletin Redistribution

                               ESB-2018.3834
                  Node.js November 2018 Security Releases
                             11 December 2018

===========================================================================

        AusCERT Security Bulletin Summary
        ---------------------------------

Product:           Node.js
Publisher:         Node.js
Operating System:  Windows
                   UNIX variants (UNIX, Linux, OSX)
                   BSD variants
Impact/Access:     Execute Arbitrary Code/Commands -- Remote/Unauthenticated
                   Access Privileged Data          -- Existing Account      
                   Denial of Service               -- Remote/Unauthenticated
                   Provide Misleading Information  -- Remote/Unauthenticated
Resolution:        Patch/Upgrade
CVE Names:         CVE-2018-12123 CVE-2018-12122 CVE-2018-12121
                   CVE-2018-12120 CVE-2018-12116 CVE-2018-5407
                   CVE-2018-0735 CVE-2018-0734 

Reference:         ESB-2018.3545

Original Bulletin: 
   https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/

- --------------------------BEGIN INCLUDED TEXT--------------------

November 2018 Security Releases

(Update 27-November-2018) Security releases available

Summary 

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.

We recommend that all Node.js users upgrade to a version listed below as soon
as possible.

Downloads & release details 

Downloads are available for the following versions. Details of code changes can
also be found on each release page.

  * Node.js 11.3.0 (Current)
  * Node.js 10.14.0 (LTS "Dubnium")
  * Node.js 8.14.0 (LTS "Carbon")
  * Node.js 6.15.0 (LTS "Boron")

Note (3-December-2018): Node.js 6.15.1 (LTS "Boron") was released to fix a
misapplied backport for one of the fixes listed below. See the release page for
more information.

Debugger port 5858 listens on any interface by default (CVE-2018-12120) 

Categorization: Unprotected Primary Channel (CWE-419)

All versions of Node.js 6 are vulnerable and the severity is HIGH. When the
debugger is enabled with node --debug or node debug, 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 node --debug=localhost. The debugger was removed in Node.js
8 and replaced with the inspector, so no versions from 8 and later are
vulnerable.

Reported and fixed by Ben Noordhuis.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are NOT vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are NOT vulnerable
  * All versions of Node.js 11 (Current) are NOT vulnerable

Denial of Service with large HTTP headers (CVE-2018-12121) 

Categorization: Uncontrolled Resource Consumption / Denial of Service (CWE-400)

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.

The total size of HTTP headers received by Node.js now must not exceed 8192
bytes.

Reported by Trevor Norris, fixed by Matteo Collina.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are vulnerable
  * All versions of Node.js 11 (Current) are vulnerable

"Slowloris" HTTP Denial of Service (CVE-2018-12122) 

Categorization: Uncontrolled Resource Consumption / Denial of Service (CWE-400)

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.

A timeout of 40 seconds now applies to servers receiving HTTP headers. This
value can be adjusted with server.headersTimeout. Where headers are not
completely received within this period, the socket is destroyed on the next
received chunk. In conjunction with server.setTimeout(), this aids in
protecting against excessive resource retention and possible Denial of Service.

Reported by Jan Maybach (liebdich.com), fixed by Matteo Collina.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are vulnerable
  * All versions of Node.js 11 (Current) are vulnerable

Hostname spoofing in URL parser for javascript protocol (CVE-2018-12123) 

Categorization: Misinterpretation of Input (CWE-115)

All versions of Node.js 6 and later are vulnerable and the severity is LOW. If
a Node.js application is using url.parse() to determine the URL hostname, that
hostname can be spoofed by using a mixed case "javascript:" (e.g.
"javAscript:") protocol (other protocols are not affected). If security
decisions are made about the URL based on the hostname, they may be incorrect.

Reported by Martin Bajanik (Kentico), fixed by Matteo Collina.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are vulnerable
  * All versions of Node.js 11 (Current) are vulnerable

HTTP request splitting (CVE-2018-12116) 

Categorization: Misinterpretation of Input (CWE-115)

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 path 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.

Reported as security concern for Node.js 6 and 8 by Arkadiy Tetelman (Lob),
fixed by backporting a change by Benno F?nfst?ck applied to Node.js 10 and
later.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are NOT vulnerable
  * All versions of Node.js 11 (Current) are NOT vulnerable

OpenSSL Timing vulnerability in ECDSA signature generation (CVE-2018-0735) 

Severity: LOW

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.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are NOT vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are NOT vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are vulnerable
  * All versions of Node.js 11 (Current) are vulnerable

OpenSSL Timing vulnerability in DSA signature generation (CVE-2018-0734) 

Severity: LOW

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.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") are vulnerable
  * All versions of Node.js 11 (Current) are vulnerable

OpenSSL Microarchitecture timing vulnerability in ECC scalar multiplication
(CVE-2018-5407) 

Severity: LOW

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.

Impact:

  * All versions of Node.js 6 (LTS "Boron") are vulnerable
  * All versions of Node.js 8 (LTS "Carbon") are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") up to 10.8.0 are vulnerable
  * All versions of Node.js 10 (LTS "Dubnium") from 10.9.0 are NOT vulnerable
  * All versions of Node.js 11 (Current) are NOT vulnerable

Acknowledgements 

Matteo Collina for a significant amount of work fixing vulnerabilities.

Sam Roberts for the OpenSSL upgrades, other code contributions and assisting in
the preparion of these releases.

Ben Noordhuis, Fedor Indutny and Benno F?nfst?ck for code contributions.

Trevor Norris, Jan Maybach, Martin Bajanik, Arkadiy Tetelman for reporting
vulnerabilities via the appropriate channels (see below).

Original post is included below

Summary 

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.

OpenSSL 1.0.2q and 1.1.0j include fixes for previously disclosed low-severity
timing vulnerabilities. See the OpenSSL release announcement.

Impact 

Releases for all actively supported release lines will be made available to fix
the following vulnerabilities.

All versions of Node.js 6 (LTS "Boron") are vulnerable to:

  * 2 Uncontrolled Resource Consumption / Denial of Service (CWE-400)
    vulnerabilities
  * 2 Misinterpretation of Input (CWE-115) vulnerabilities
  * 1 Unprotected Primary Channel (CWE-419) vulnerability

All versions of Node.js 8 (LTS "Carbon") are vulnerable to:

  * 2 Uncontrolled Resource Consumption / Denial of Service (CWE-400)
    vulnerabilities
  * 2 Misinterpretation of Input (CWE-115) vulnerabilities

All versions of Node.js 10 (LTS "Dubnium") are vulnerable to:

  * 2 Uncontrolled Resource Consumption / Denial of Service (CWE-400)
    vulnerabilities
  * 1 Misinterpretation of Input (CWE-115) vulnerability

All versions of Node.js 11 (Current) are vulnerable to:

  * 2 Uncontrolled Resource Consumption / Denial of Service (CWE-400)
    vulnerabilities
  * 1 Misinterpretation of Input (CWE-115) vulnerability

Release timing 

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.

Contact and future updates 

The current Node.js security policy can be found at https://nodejs.org/en/
security/.

Please contact [email protected] if you wish to report a vulnerability in
Node.js.

- --------------------------END INCLUDED TEXT--------------------

You have received this e-mail bulletin as a result of your organisation's
registration with AusCERT. The mailing list you are subscribed to is
maintained within your organisation, so if you do not wish to continue
receiving these bulletins you should contact your local IT manager. If
you do not know who that is, please send an email to auscert@auscert.org.au
and we will forward your request to the appropriate person.

NOTE: Third Party Rights
This security bulletin is provided as a service to AusCERT's members.  As
AusCERT did not write the document quoted above, AusCERT has had no control
over its content. The decision to follow or act on information or advice
contained in this security bulletin is the responsibility of each user or
organisation, and should be considered in accordance with your organisation's
site policies and procedures. AusCERT takes no responsibility for consequences
which may arise from following or acting on information or advice contained in
this security bulletin.

NOTE: This is only the original release of the security bulletin.  It may
not be updated when updates to the original are made.  If downloading at
a later date, it is recommended that the bulletin is retrieved directly
from the author's website to ensure that the information is still current.

Contact information for the authors of the original document is included
in the Security Bulletin above.  If you have any questions or need further
information, please contact them directly.

Previous advisories and external security bulletins can be retrieved from:

        https://www.auscert.org.au/bulletins/

===========================================================================
Australian Computer Emergency Response Team
The University of Queensland
Brisbane
Qld 4072

Internet Email: auscert@auscert.org.au
Facsimile:      (07) 3365 7031
Telephone:      (07) 3365 4417 (International: +61 7 3365 4417)
                AusCERT personnel answer during Queensland business hours
                which are GMT+10:00 (AEST).
                On call after hours for member emergencies only.
===========================================================================
-----BEGIN PGP SIGNATURE-----
Comment: http://www.auscert.org.au/render.html?it=1967

iQIVAwUBXA8SrGaOgq3Tt24GAQjQlg/9FPE6dGKFT0L2xyuv8z2CrZGPobJmvRSL
AVY4W4o7gSsv6S3MKcsR57DpJGnTZzkrDaRvhszlpRSqwUdWwZMEdTzeednLZeEH
fCoiO/ewmW9FFyWpXlXob0E7SsQCWxf5yh2on+jWlJb6XiLqULcRyKYx9ZZKxgZ2
r0rBAw5I4fFVb1e8egGA09GfKEYhbDi5+my4/OE3KgVQdgojqjAWDX6krRVfU1Ss
N4Duh9F57JQ7p1/rc2d6SLA3CdpZxnCTJXrS+i8y2Dy/gB0ZxtFqJDIdny/eugms
gzZAxNMWKFTwYYNdrksaD2lIV2PW409mfQ5PCtHSA+pNfS4NjuTTfuGXlEay4RgE
x/3dw7+mt1bu2dwSfgm0Q0E4HPhVw95RIZJMm0U73xmYaRr+VArxQP4wfYHXHcIV
MMq3i0iWzoVUKObtFJUqfMb3k3agmO41AbHBLzvBFhXZXeVnMdU6nyibjx8Q9pW/
eI7e+rO5x6jacK4ypIJEYBKexHaAwtdd2Dn02Mjpo6m47WDaIUJi6jrFRe8VL8m/
8Y/1ocmPqGAFoF6DkdnS92hnMh+ynfpiXsVpGPzUgRRR3MeoegEldMxv2Rij5Dpo
Fa46qQLzMBz+eERaQ3BJTIVjsmCmnVS9urGpsFghqTgmTMdm7WEMT9/Hh4Ss+nB2
YqTDfoJhf0Y=
=Wumd
-----END PGP SIGNATURE-----