Node v6.9.0(LTS)

보안 릴리스입니다. 모든 Node.js 사용자는 https://nodejs.github.io/nodejs-ko/articles/2016/10/15/vulnerability-october-2016-security-releases/에 올라온 보안 릴리스 요약에서 수정된 취약점의 자세한 내용을 참고해야 합니다.

새로운 LTS 릴리스

v6.9.0부터 Node.js v6가 장기 지원(LTS)으로 전환되었고 코드 네임은 “Boron”입니다. v6 릴리스는 “활성 LTS”로 바뀌었고 2018년 4월까지 유지될 것입니다. 2018년 4월 이후 에는 “유지보수 버전”으로 바뀌고 2019년 4월에 지원이 종료됩니다.

LTS 마이그레이션

Node.js v4 LTS “Argon”에서 Node.js v6 LTS “Boron”으로 바꿀 때 알아두어야 할 내용입니다.

  • 보안 문제와 안전 때문에 Buffer() 생성자를 문서에서 폐기예정으로 표시하였고 새로운 Buffer.from(), Buffer.alloc(), Buffer.allocUnsafe()를 사용하면 됩니다. 자세한 내용은 Buffer 문서를 참고하세요. 문서에서만 폐기 예정으로 표시한 것이므로 표준 오류에 어떠한 경고도 출력하지 않습니다. 이는 긴 폐기 주기의 첫 단계입니다.
  • Windows Vista와 그 이전 버전 macOS 10.7과 그 이전 버전은 지원하지 않습니다.
  • 많은 경고 메시지와 오류 메시지를 정리해서 더 일관성 있게 만들었습니다.
  • V8 --prof 커맨드 라인 인자를 사용해서 생성한 출력 파일을 처리할 때 --prof-process 커맨드 라인 인자를 사용할 수 있습니다.
  • EventEmitter에서 현재 리스닝하고 있는 모든 이벤트의 목록을 볼 때 새로운 EventEmitter#eventNames() 메서드를 사용할 수 있습니다.
  • fs.mkdtemp()로 운영체제의 기능을 사용해서 유일한 임시 디렉터리를 빠르고 안전하게 만들 수 있습니다.
  • process.cpuUsage()로 현재 프로세스가 사용하고 있는 CPU 리소스에 대한 정보를 볼 수 있습니다.
  • 이제 아주 큰 배열을 util.inspect()에 인자로 전달할 때 일부를 제거합니다. 이는 console.log() 계열에도 적용됩니다.
  • 네이티브 Promise가 reject 상태에 빠졌는데 이를 받는 핸들러가 없을 때 표준 에러로 경고를 출력할 것입니다.
  • --inspector 커맨드 라인 인자로 새로운 실험적인 디버깅 프로토콜을 활성화할 수 있습니다. 이는 “v8_inspector” 프로토콜을사용해서 Chrome DevTools, Visual Studio Code 등에서 직접 사용할 수 있습니다.

v5.0.0v6.0.0에서 API 호환성이 깨지는 변화가 있었지만 비교적 사소한 변경이고 대부분에 사용자에게는 큰 영향을 주지 않습니다.

Node.js 변경사항과 더불어 Node.js v4 LTS와 이번 v6 LTS 릴리스 사이에 여러 번의 V8 업그레이드가 있었으므로 다음과 같은 JavaScript 언어 향상도 있었습니다.

이제 Node.js v4 LTS “Argon”에서 Node.js v6 “Boron”로 마이그레이션을 계획해야 할 때입니다. Argon은 2017년 4월까지 활성 LTS로 관리되고 2018년 4월까지 유지보수단계로 바뀐 뒤 지원이 중단될 것입니다. 자세한 내용은 https://github.com/nodejs/LTS에 올라온 Node.js LTS 계획에서 볼 수 있습니다.

Node.js v6.9.0 LTS “Boron”

주요 변경사항

  • crypto: OPENSSL_CONF 환경변수나 플랫폼의 기본 경로에서 OpenSSL 설정 파일을 자동으로 로드하려고 하지 마세요. 설정 파일을 로드하는 것은 항상 공격자가 기본 경로에 파일을 둘 수 있다면 Node.js 프로세스에 조작된 OpenSSL 설정을 로드하게 할 수 있습니다. (Fedor Indutny, Rod Vagg)
  • node: process.release.lts 프로퍼티가 'Boron'로 설정했습니다. 이 값은 v4 LTS 릴리스에서는 "Argon"이고 그 외 릴리스에서는 undefined입니다. (Rod Vagg)
  • V8: Backport fix for CVE-2016-5172, 임의 메모리 읽기에 대한 수정사항을 백포트했습니다. 범위를 잘못 다룬 V8 파서가 잠재적으로 공격자가 잘 만든 JavaScript 코드로 임의의 메모리 위치에서 민감한 정보를 가져갈 수도 있습니다. 이 취약점은 공격자가 Node.js 프로세스에서 임의의 JavaScript 코드를 실행할 수 있어야 합니다. (Rod Vagg)
  • v8_inspector: 인스펙터 실행마다 UUID를 생성합니다. 이는 --inspect로 실행했을 때 인증되지 않은 클라이언트가 v8_inspector 포트로 Node.js 프로세스에 연결하는 것을 차단해서 추가로 보안을 강화합니다. 디버깅 프로토콜에서는 실행 중인 프로세스 내부에 더 많은 접근을 허용하고 임의의 코드를 실행할 수 있으므로 인증된 도구로만 접근을 제한하는 것이 중요합니다. Node.js에서 v8_inspector 프로토콜은 아직 실험적인 기능입니다. 이 취약점은 Jann Horn가 최초로 보고했습니다. (Eugene Ostroukhov)

Commits

Windows 32-bit Installer: https://nodejs.org/dist/v6.9.0/node-v6.9.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v6.9.0/node-v6.9.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v6.9.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v6.9.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v6.9.0/node-v6.9.0.pkg
macOS 64-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-darwin-x64.tar.gz
Linux 32-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-x86.tar.xz
Linux 64-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-ppc64le.tar.xz
SunOS 32-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-sunos-x86.tar.xz
SunOS 64-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-sunos-x64.tar.xz
ARMv6 32-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-armv6l.tar.xz
ARMv7 32-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v6.9.0/node-v6.9.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v6.9.0/node-v6.9.0.tar.gz
Other release files: https://nodejs.org/dist/v6.9.0/
Documentation: https://nodejs.org/docs/v6.9.0/api/

SHASUMS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

a5738a8061e5964d9851047355bab10c02046997adad0592d3e0c834c19c9599 node-v6.9.0-aix-ppc64.tar.gz
fd0f58487cd72d78e857bfc24061cfe77353e1571a17182b4e38273782648edf node-v6.9.0-darwin-x64.tar.gz
fb512f229ea2b9d55a67ec3244a37b001a4f81c0ef449df2bf4fd823c06b8571 node-v6.9.0-darwin-x64.tar.xz
c2848e6ef6de3d771d3523ca8da2de6c949729476b3723cabf82836af4b723b8 node-v6.9.0-headers.tar.gz
1f8ebe4f1bc35b4e0399c05c208e79b497f84a18de5b46b10348948e9d3241d3 node-v6.9.0-headers.tar.xz
e9ff08e622436007594dcbff1b528023aaa2397c38fdc961d130730b90fdc814 node-v6.9.0-linux-arm64.tar.gz
b118ce433fa64868a46b5bf482e5c5c698df435ea40b1ec8429b7aae828b583e node-v6.9.0-linux-arm64.tar.xz
ce870c8839ce5d46a36d11ae882e59cff6e361c46714428da3464504a3f0769a node-v6.9.0-linux-armv6l.tar.gz
b1db436ec7ab97b2c3cf7b495b1ac57191afd1a71dc3d939a535c7cbbbf329d0 node-v6.9.0-linux-armv6l.tar.xz
97aaf1dba42c7544f8a2ad1e34e0f032d7645227e60928b9b522e257bd219256 node-v6.9.0-linux-armv7l.tar.gz
5fedf1319d4946fda7a20f8452f5ded4fb9707ce1661710e69616884e830f96c node-v6.9.0-linux-armv7l.tar.xz
325b89f57374627d19de246dd1148699ea88b02139cecbdbe218b519fc8a328c node-v6.9.0-linux-ppc64le.tar.gz
5fe38d010a3bfb179c2e3394937e7eb64b0a3076aff26d776fa1c5d67d9672b9 node-v6.9.0-linux-ppc64le.tar.xz
bf21e314c2bcf0ea379d2a6b2c017b0446ad8fb822dbc3c2fc04d594b727b23a node-v6.9.0-linux-ppc64.tar.gz
44c3c0f3cb84216ef73d47acf886ca2aed2765640b76bbabf9a4fd8dba4961c1 node-v6.9.0-linux-ppc64.tar.xz
4aa6e76334e3bba1919c65a2a0dcabd28c48a282402b2f523807f31a588896e8 node-v6.9.0-linux-s390x.tar.gz
a2069e6d13c8ed1ffd80eaf039689abf82b300463125f1753e5467ecdef1ab6d node-v6.9.0-linux-s390x.tar.xz
a9aafa2499097b315e1554b882923a6e2f9c446d24eaea53630f0fdbe075b226 node-v6.9.0-linux-x64.tar.gz
1fec8901f9158061eeeba407103c73f627d03c856cdaeb995c274d200c004a6f node-v6.9.0-linux-x64.tar.xz
5520dc47e11b377064ce99a60e640dfdf9abc29916bcd110307474463af9efb1 node-v6.9.0-linux-x86.tar.gz
b15ed03aa7d113b6803e7e7ec7adebd310d08e6c6c807d9a2776da7421d502e6 node-v6.9.0-linux-x86.tar.xz
c91da719ec4db0f4397f93dbf604d4d77f3424e7ac5778ca120f61d5dd0bac9e node-v6.9.0.pkg
e623e9bd2dd3554fdb9ec53ca3fe6e0d1a3715c05766bfc9a002d3289adbbe39 node-v6.9.0-sunos-x64.tar.gz
b748b5c427acbe1e8ac0a7a2a0af88d11120fe9019509841664ce7af2111a46b node-v6.9.0-sunos-x64.tar.xz
2e48eb1506f54549df5e7c5727cd5c171aaf838f22caa848aeb2a3011db7f171 node-v6.9.0-sunos-x86.tar.gz
148f45f8e6ccf13e477d4ad0fee91fd41fe10af1d32ff6fc48ed3271bff26e1f node-v6.9.0-sunos-x86.tar.xz
2e2657d2ece89782ca9e2cc0300f9119998e73382caa7ad2995ab81cc26ad923 node-v6.9.0.tar.gz
656342ed8a84c95a36af902f309aeeca7103b16d61c02925bd37bd47d2194915 node-v6.9.0.tar.xz
cbf07f7e472a3e7a574aac2350b7cac42e53e71b80fe4f910b32de452ce36572 node-v6.9.0-win-x64.7z
7c1c970d957c855c37ad16843ee5eb0f5369fbc42b24a5cd3dce18597dda087d node-v6.9.0-win-x64.zip
8547a1a8ec2cc73194f7c670fa250a1357b20d97e1d76f256964dc95d9af9008 node-v6.9.0-win-x86.7z
ce35aeea6832fec2c5237e8958953acad59fafe89424335d1d882fc23199203f node-v6.9.0-win-x86.zip
c20bce1c2dd7b0b30ff86e6ac32b4a79357165f1a3613ef111a26a0f5c621895 node-v6.9.0-x64.msi
e73dba32de3166b5de6f15f8677b1a8f8d67fa0983e660408518a8b259a3151b node-v6.9.0-x86.msi
9ac737d4329515114d000766bd1e7ab8803a62ad9cddcf3629b1fc65b785cc7c win-x64/node.exe
24fed33afb5c91284aea7d1c446687bae152ab915d4394af0752c32d75649ed2 win-x64/node.lib
892723c55b31b75e87356db0915e8bb09e449d7f8c062b64ea7d21c7f9283c26 win-x64/node_pdb.7z
740bb0435e8f6ca410ea3cad0f7e52e3dc788b870d3e05580159c81b600b0cd9 win-x64/node_pdb.zip
70dfa76f7e8b59e401002cae7d23565e9fde20ede65d47a900077608d5f3b347 win-x86/node.exe
1e2b080e083684e4d1ddf2a0bdf7415006e0c5bf1bae82cc35383c8642196735 win-x86/node.lib
c1da9b46e96bfacb267cb70932069eaf1c8ed4f1a6de7920bef2ccd7a73d7b3b win-x86/node_pdb.7z
1b22b2f42b00af17ceacc0463120dec16a9d1582a537d0865e252a51dd8bef3e win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBCAAGBQJYBlkOAAoJEMJzeS99g1RdBq8IAME4kDcDjbbGbw2iviVXiEm1
IzBfYYHuxc3AUzxB9kEOkoYO++lR9Uo6pbhQTzYr2cTCQ46IhrAL+xSVX+Awhv2T
BSDwGTXCDAi5jTIQFNjJXfunSIdt9qGQKI/eLQ48Q00Cz9xvrFWgyZO97wwfUXCw
S3+y5fVDDgvUcrTybr3FWbIu6cjL6UQ8rW9E/clpa3KJehPjWBLkXoFmOrhL8e5/
yKvSJLID+z8PnDceFvwK8IdEQ/cZhh6XkbE2hZfM45QPyELrAhlHompv1yDFItqm
LOnBqVa0ZyoArPeQolTy/Gt8K0K44aC7fWzGnFWc0xcuso9c5RWgWR5iNNlzUpI=
=biwr
-----END PGP SIGNATURE-----