CVE Vulnerabilities

CVE-2017-15897

Improper Initialization

Published: Dec 11, 2017 | Modified: Sep 01, 2022
CVSS 3.x
3.1
LOW
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
CVSS 2.x
4.3 MEDIUM
AV:N/AC:M/Au:N/C:P/I:N/A:N
RedHat/V2
RedHat/V3
3.7 LOW
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Ubuntu
MEDIUM

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, Buffer.alloc(0x100, This is not correctly encoded, hex); The buffer implementation was updated such that the buffer will be initialized to all zeros in these cases.

Weakness

The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.

Affected Software

Name Vendor Start Version End Version
Node.js Nodejs 8.0.0 (including) 8.8.1 (including)
Node.js Nodejs 8.9.0 (including) 8.9.3 (excluding)
Node.js Nodejs 9.0.0 (including) 9.2.1 (excluding)
Nodejs Ubuntu artful *
Nodejs Ubuntu zesty *

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, in Java, if the programmer does not explicitly initialize a variable, then the code could produce a compile-time error (if the variable is local) or automatically initialize the variable to the default value for the variable’s type. In Perl, if explicit initialization is not performed, then a default value of undef is assigned, which is interpreted as 0, false, or an equivalent value depending on the context in which the variable is accessed.

References