OpenSSL 보안 릴리스로 Node.js 보안 릴리스가 필요할 수 있습니다

요약

Node.js 프로젝트는 OpenSSL의 변경사항을 받아서 다음 주 초에 지원하는
릴리스 라인의 새 버전을 릴리스 할 수도 있습니다.
자세한 내용은 아래를 참고하세요.

OpenSSL

이전 주에 OpenSSL 프로젝트는 UTC 기준 9월 10일에 1.0.2t와 1.1.1d 버전을 릴리스할 계획이라고
발표했습니다.
이번 릴리스는 OpenSSL의 보안 정책
따라 “낮음” 심각도로 구분된 두 가지 보안 결함을 수정할 것입니다. “낮음” 심각도는 다음을 의미합니다.

… 이러한 이슈는 openssl 명령행 유틸리티에만 영향을 주거나 설정에는 영향을 줄 가능성이 거의 없습니다.

Node.js v8.x은 OpenSSL v1.0.2를 사용하고 Node.js v10.x와 v12.x는 모두 OpenSSL
v1.1.1을 사용하므로 모든 활성 릴리스 라인은 이번 업데이트의 영향을 받습니다.

엠바고 때문에 지금은 이 결함의 정확한 내용은 아직 나오지 않았고 Node.js 사용자에게 영향을
줄 것인지도 알지 못합니다.

Node.js의 영향도를 평가한 후 수정된 이슈로 Node.js 보안 릴리스가 바로 필요한지 일반적인
정기 업데이트에 포함해도 되는지 결정할 것입니다.

업데이트되는 내용은 nodejs-sec 구글 그룹을 참고하시기 바랍니다. OpenSSL 릴리스 후
24시간 이내에 릴리스 타이밍에 대한 결정사항을 올릴 예정이고 릴리스의 결함 상세 내용도 포함될 것입니다.
https://groups.google.com/forum/#!forum/nodejs-sec

연락처 및 향후 업데이트

현재 Node.js의 보안 정책과 Node.js의 취약점 보고를 위한 방법에 대한 정보는
https://nodejs.org/en/security/에서 볼 수 있습니다.

Node.js의 보안 취약점과 보안과 관련된 릴리스의 최신 정보를 얻으려면
https://groups.google.com/forum/#!forum/nodejs-sec에서 소수의 공지만 하는
nodejs-sec 메일링 리스트를 구독해 주세요. 이 프로젝트는
nodejs GitHub 조직에서 관리하고 있습니다.

Node v12.10.0(현재 버전)

주요 변경사항

  • deps:
    • npm을 6.10.3으로 업데이트했습니다. (isaacs) #29023
  • fs:
    • rmdir()에 recursive 옵션을 추가했습니다. (cjihrig) #29168
    • emitClose 옵션에 true를 전달할 수 있습니다. (Giorgos Ntemiris) #29212
    • BigInt Stats 객체에 *timeNs 속성을 추가했습니다. (Joyee Cheung) #21387
  • net:
    • 정적 버퍼로 데이터를 읽을 수 있게 되었습니다. (Brian White) #25436

Commits

  • [293c9f0d75] - bootstrap: run preload prior to frozen-intrinsics (Bradley Farias) #28940
  • [71aaf590c1] - buffer: correct indexOf() error message (Brian White) #29217
  • [c900762fe4] - buffer: consolidate encoding parsing (Brian White) #29217
  • [054407511e] - buffer: correct concat() error message (Brian White) #29198
  • [35bca312ed] - buffer: improve equals() performance (Brian White) #29199
  • [449f1fd578] - Revertbuild: add full Python 3 tests to Travis CI” (Ben Noordhuis) #29406
  • [256da1fdb3] - build: add full Python 3 tests to Travis CI (cclauss) #29360
  • [0c4df35db0] - build: hard code doctool in test-doc target (Daniel Bevenius) #29375
  • [d6b6a0578b] - build: integrate DragonFlyBSD into gyp build (David Carlier) #29313
  • [6a914ed36e] - build: make --without-snapshot imply --without-node-snapshot (Joyee Cheung) #29294
  • [def5c3e5d8] - build: test Python 3.6 and 3.7 on Travis CI (cclauss) #29291
  • [feafc019b1] - build: move tooltest to before jstest target (Daniel Bevenius) #29220
  • [aeafb91e2c] - build: add Python 3 tests to Travis CI (cclauss) #29196
  • [bb6e3b5404] - build,win: accept Python 3 if 2 is not available (João Reis) #29236
  • [dce5649d9c] - build,win: find Python in paths with spaces (João Reis) #29236
  • [2489682eb5] - console: use getStringWidth() for character width calculation (Anna Henningsen) #29300
  • [5c3e49d84e] - crypto: don’t expose openssl internals (Shelley Vohr) #29325
  • [e0537e6978] - crypto: simplify DSA validation in FIPS mode (Tobias Nießen) #29195
  • [28ffc9f599] - deps: V8: cherry-pick 597f885 (Benjamin Coe) #29367
  • [219c19530e] - (SEMVER-MINOR) deps: update npm to 6.10.3 (isaacs) #29023
  • [4a7c4b7366] - doc: escape elements swallowed as HTML in markdown (Nick Schonning) #29374
  • [5a16449edf] - doc: add extends for derived classes (Kamat, Trivikram) #29290
  • [3fc29b8f9a] - doc: add blanks around code fences (Nick Schonning) #29366
  • [187d08be65] - doc: format http2 anchor link and reference (Nick Schonning) #29362
  • [6734782f25] - doc: remove multiple consecutive blank lines (Nick Schonning) #29352
  • [a94afedc9b] - doc: add devnexen to collaborators (David Carlier) #29370
  • [43797d9427] - doc: inconsistent indentation for list items (Nick Schonning) #29330
  • [bb72217faf] - doc: heading levels should only increment by one (Nick Schonning) #29331
  • [ef76c7d997] - doc: add dco to github pr template (Myles Borins) #24023
  • [8599052283] - doc: add https.Server extends tls.Server (Trivikram Kamat) #29256
  • [2fafd635d7] - doc: fix nits in esm.md (Vse Mozhet Byt) #29242
  • [6a4f156ba4] - doc: add missing extends Http2Session (Trivikram Kamat) #29252
  • [1d649e3444] - doc: indicate that Http2ServerRequest extends Readable (Trivikram Kamat) #29253
  • [b2f169e628] - doc: indicate that Http2ServerResponse extends Stream (Trivikram Kamat) #29254
  • [65de900052] - (SEMVER-MINOR) doc: add emitClose option for fs streams (Rich Trott) #29212
  • [ae810cc8d5] - doc,crypto: add extends for derived classes (Kamat, Trivikram) #29302
  • [a2c704773a] - doc,errors: add extends to derived classes (Kamat, Trivikram) #29303
  • [395245f1eb] - doc,fs: add extends for derived classes (Kamat, Trivikram) #29304
  • [8a93b63a6b] - doc,http: add extends for derived classes (Trivikram Kamat) #29255
  • [ba29be60ae] - doc,tls: add extends for derived classes (Trivikram Kamat) #29257
  • [30b80e5d7c] - errors: provide defaults for unmapped uv errors (cjihrig) #29288
  • [a7c8322a54] - esm: support loading data URLs (Bradley Farias) #28614
  • [3bc16f917d] - events: improve once() performance (Brian White) #29307
  • [ed2293e3d7] - (SEMVER-MINOR) fs: add recursive option to rmdir() (cjihrig) #29168
  • [8f47ff16d4] - (SEMVER-MINOR) fs: allow passing true to emitClose option (Giorgos Ntemiris) #29212
  • [6ff803d97c] - fs: fix (temporary) for esm package (Robert Nagy) #28957
  • [e6353bda1a] - fs: document the Date conversion in Stats objects (Joyee Cheung) #28224
  • [365e062e14] - (SEMVER-MINOR) fs: add *timeNs properties to BigInt Stats objects (Joyee Cheung) #21387
  • [12cbb3f12f] - gyp: remove semicolons (Python != JavaScript) (MattIPv4) #29228
  • [10bae2ec91] - gyp: futurize imput.py to prepare for Python 3 (cclauss) #29140
  • [e5a9a8522d] - http: simplify timeout handling (Robert Nagy) #29200
  • [87b8f02daa] - lib: add ASCII fast path to getStringWidth() (Anna Henningsen) #29301
  • [6e585fb063] - lib: consolidate lazyErrmapGet() (cjihrig) #29285
  • [eb2d96fecf] - module: avoid passing unnecessary loop reference (Saúl Ibarra Corretgé) #29275
  • [dfc0ef5d88] - (SEMVER-MINOR) net: allow reading data into a static buffer (Brian White) #25436
  • [f4f88270e7] - process: improve nextTick performance (Brian White) #25461
  • [0e1ccca81d] - querystring: improve performance (Brian White) #29306
  • [f8f3af099a] - src: do not crash when accessing empty WeakRefs (Anna Henningsen) #29289
  • [b964bdd162] - src: turn GET_OFFSET() into an inline function (Anna Henningsen) #29357
  • [2666e006e1] - src: inline SLICE_START_END() in node_buffer.cc (Anna Henningsen) #29357
  • [8c6896e5d3] - src: allow --interpreted-frames-native-stack in NODE_OPTIONS (Matheus Marchini) #27744
  • [db6e4ce239] - src: expose MaybeInitializeContext to allow existing contexts (Samuel Attard) #28544
  • [4d4583e0a2] - src: add large page support for macOS (David Carlier) #28977
  • [7809adfb1f] - stream: don’t deadlock on aborted stream (Robert Nagy) #29376
  • [2efd72f28d] - stream: improve read() performance (Brian White) #29337
  • [e939a8747f] - stream: async iterator destroy compat (Robert Nagy) #29176
  • [b36a6e9ed5] - stream: do not emit drain if stream ended (Robert Nagy) #29086
  • [0ccf90b415] - test: remove Windows skipping of http keepalive request GC test (Rich Trott) #29354
  • [83fb133267] - test: fix test-benchmark-net (Rich Trott) #29359
  • [bd1e8eacf3] - test: fix flaky test-http-server-keepalive-req-gc (Rich Trott) #29347
  • [9a150027da] - test: use print() function in both Python 2 and 3 (Christian Clauss) #29298
  • [1f88ca3424] - (SEMVER-MINOR) test: add emitClose: true tests for fs streams (Rich Trott) #29212
  • [cd70fd2bc0] - tools: update ESLint to 6.3.0 (cjihrig) #29382
  • [350975e312] - tools: use ‘from io import StringIO’ in ninja.py (cclauss) #29371
  • [3f68be1098] - tools: fix mksnapshot blob wrong freeing operator (David Carlier) #29384
  • [3802da790b] - tools: update ESLint to 6.2.2 (cjihrig) #29320
  • [2df84752c6] - tools: update babel-eslint to 10.0.3 (cjihrig) #29320
  • [783c8eeb0b] - tools: fix Python 3 issues in inspector_protocol (cclauss) #29296
  • [925141f946] - tools: fix mixup with bytes.decode() and str.encode() (Christian Clauss) #29208
  • [a123a20134] - tools: fix Python 3 issues in tools/icu/icutrim.py (cclauss) #29213
  • [eceebd3ef1] - tools: fix Python 3 issues in gyp/generator/make.py (cclauss) #29214
  • [5abbd51c60] - util: do not throw when inspecting detached ArrayBuffer (Anna Henningsen) #29318

Windows 32-bit Installer: https://nodejs.org/dist/v12.10.0/node-v12.10.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.10.0/node-v12.10.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.10.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.10.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.10.0/node-v12.10.0.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.10.0/node-v12.10.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.10.0/node-v12.10.0.tar.gz

Other release files: https://nodejs.org/dist/v12.10.0/

Documentation: https://nodejs.org/docs/v12.10.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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

c5058a0fcbd0c9f8d49b64aa573ef151460f9de142a94479b2eda7d077d9de37 node-v12.10.0-aix-ppc64.tar.gz
4c16d1f6454f5dc3977ad00cea123792b8d4e1d6d1bf42bbc82a4202039a5971 node-v12.10.0-darwin-x64.tar.gz
3edc050787453e20000047d892467065671f4a2ecf3acf6363bdd50f64009826 node-v12.10.0-darwin-x64.tar.xz
992bd91f5fadacb47a530b19b86c9dfd7fb0952e383595f971fc44047952d8e4 node-v12.10.0-headers.tar.gz
3a066f2341d7b6a80a0fbf46842765b51ba817ee26c3f3ba9d035c77afd12fd7 node-v12.10.0-headers.tar.xz
fd117a6ed22f493900fabdc7881fee50c7661c0eed88ae10c1139fa0d6c72535 node-v12.10.0-linux-arm64.tar.gz
fa1afb9e8cfd964867351b6dac6cd918784ff309291612251c4745aeb0b10e02 node-v12.10.0-linux-arm64.tar.xz
79b2f3d4eeffdf67e175143e032a1e38d6757dce0f361c064a2034ba9bbd69af node-v12.10.0-linux-armv7l.tar.gz
6bb777eaa0373c48059911272ea1b2d5cb567330e0474cedc8da42abc52fc346 node-v12.10.0-linux-armv7l.tar.xz
5c4ca2b8b3150f6c56c6b2fc3cb7d316f1f0c3cb5650ff87922580f4c5230bd7 node-v12.10.0-linux-ppc64le.tar.gz
44892427765d8eb33cead16b81ebb13c75352868e2fa55f67324809e420882b1 node-v12.10.0-linux-ppc64le.tar.xz
dd0462f45231b0032c2cd6f26350e31cd1e26bba3a629d61cece6ff17c6ef32d node-v12.10.0-linux-s390x.tar.gz
ecfb6fdd6ea8de7381261a2769bcb9539fb69a799d0fddccc0a0793b63d557e4 node-v12.10.0-linux-s390x.tar.xz
3de23fd9f2145ff76d0583e7f57aa4ccead58b3fb991e215f862e779c9cdf151 node-v12.10.0-linux-x64.tar.gz
e8d2e6b62dd8183dc59a139a9ca3edc7c419a0d3d92e90fea9cb0ad52489843a node-v12.10.0-linux-x64.tar.xz
460db7890a8aa4171361d5e9e3fb57c4e8b2fb65cdb7c0c1d165fe06e228f4cb node-v12.10.0-sunos-x64.tar.gz
3383dd4fc93d41b2294212904da4d9c6566de890e4f2513438bbf7cd575dfc10 node-v12.10.0-sunos-x64.tar.xz
c1be70e47884fab24eb69fc0406f8206b135ae2f3e57f9acbb2f0b204c918f89 node-v12.10.0-win-x64.7z
de341476711c71f82d06fabcc9874c1ff9e865fd7274334d64a67b1e31a53fd0 node-v12.10.0-win-x64.zip
a60fc412a608894b264f2dadcd33ba6588287c04fc348f91a4223b59a6fbfa68 node-v12.10.0-win-x86.7z
16028bf616dfb49bcc42c1955f2d1eede0f0420df8289cbb34ee332f144f7a4b node-v12.10.0-win-x86.zip
ac6b582ac63a6c761b7acf423817dd8d7d36060c04b7359a5e2361071ff970b5 node-v12.10.0-x64.msi
79463a43412e16cb0ef83f183705ac2f93bec84c11020b47f42d5391a2c1be51 node-v12.10.0-x86.msi
4fb0592a5e7987ae9443cdbc42398edc30db108f065e8152a9ab3079ba5c9cac node-v12.10.0.pkg
371a3e39f1a14adbd7b37dee57641075ccfa240bd990630ff213298f16ad49b4 node-v12.10.0.tar.gz
2515b87c60921f22514a58830e86e54831daa2453d0e82f2ed7ab02134ee30cd node-v12.10.0.tar.xz
d2910dc57eb167a01714fd81ab039bad6cf99d39f7c84d16fdfa87af86b5de8d win-x64/node.exe
f9aafbd5373fa9bab5291193afaa67facfb45d6c9ef3fd193b03130d3f3ee5eb win-x64/node.lib
4c1281c598ed4426e2661fc881bf6778ac8938ac87ec66dc83f8f10e128c5a32 win-x64/node_pdb.7z
e43e5e73a401bd6b6547bab26f3b55ea03fee33c19204896bd5112697ddb3ebb win-x64/node_pdb.zip
25ead049aa7b9ef0b4323dda6ef1994d52dfc2253c80247948f7dfc0299b5436 win-x86/node.exe
4dc68735e4262a426fd20535df6ca695f2928d4e92e5fe39468c7892dd44aeef win-x86/node.lib
60e5664f8db09439054d54f8de419aeade5e7f5a1e7e9abb46e3ab663a40891c win-x86/node_pdb.7z
7f77626abc1647d74769f7479d57d5d8816d688653d6c7aa241971a19fa1daad win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEpIwr7mgOhBYyzU5E8HSWs+s8F2IFAl1v/xkACgkQ8HSWs+s8
F2JbJRAAwbNLjKZPXQLqVULGtHuzhJutzzAFDgrlDSDlQy18QqSAYj1YmzI8RCMQ
kJl0UXML6xhjbnkCI2GF63MdNeSfJluq8Qo6E+kmVsJy/EBl25/iJsA6rJWrVkiK
7I+v1qVjqQvwNOPrKYRZZkNNK1uaJh2bEvW8ahBbPcyJd7g1b7L+VYu0OAQR/AZ9
+tkkKOxyCXJbXhJGaW+1QyhvVp+Jy+EslmBgl+jkEBsCVJ25vVpdYhD5pyvOpUmQ
0d0DDamBUQGcAZtpMpKS4aJw/sNAjl4iqrTSWxlH9IyPuU8Xf6bnadptPEsT9qF3
AfjyKade3aNhyzUKlmzV1AFYZ38Ef7S1CMzBh7IF9tOI7d2CGUzyAptHrxmUbPSJ
fwxlHvy9Rv1fRDiRl5ob7bVmlmveRMiYd9fQ5MhcopShWlCsEZKRBoHxq029XNhW
sXvhA7u/rM2hiVdSsbp/E5qrKFA7FdBo9AU0c0lmVA5RR0DCRoYEdduQcYpKiGKG
lO8wLUZ6jkVcccjzGp2cjt6hUU3vKzbeOyxH+1HN4OpAOyhWiCgtwfIbIzTC4drQ
wJuVptqozrl7pptKiHxC+LcQsm1XyJe9UzlUusbv6In1bXRpHcSwYAOrMZoOn3hf
jgw+At7Jn1aaPKmNWyfgwQGBZzbO0KP6X3JrFzcRNQsESHMFIL0=
=aH60
-----END PGP SIGNATURE-----

Node v12.9.1(현재 버전)

주요 변경사항

이번 릴리스는 http 모듈의 두 가지 회귀 문제를 수정합니다.

  • HTTP 클라이언트에서 이벤트 리스너의 누수 문제를 수정했습니다. 이로 인해 npm/yarn으로 설치할 때 많은
    경고가 나왔습니다. (Robert Nagy) #29245.
  • keepalive 요청에서 바디 전체가 파싱되지 않은 경우 'end' 이벤트가 발생하는 회귀 문제를
    수정했습니다. (Matteo Collina) #29263.

Commits

  • [3cc8fca299] - crypto: handle i2d_SSL_SESSION() error return (Ben Noordhuis) #29225
  • [ae0a0e97ba] - http: reset parser.incoming when server request is finished (Anna Henningsen) #29297
  • [dedbd119c5] - http: fix event listener leak (Robert Nagy) #29245
  • [f8f8754d43] - Reverthttp: reset parser.incoming when server response is finished” (Matteo Collina) #29263
  • [a6abfcb423] - src: remove unused using declarations (Daniel Bevenius) #29222
  • [ff6330a6ac] - test: fix ‘timeout’ typos (cjihrig) #29234
  • [3c7a1a9090] - test, http: add regression test for keepalive ‘end’ event (Matteo Collina) #29263

Windows 32-bit Installer: https://nodejs.org/dist/v12.9.1/node-v12.9.1-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.9.1/node-v12.9.1-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.9.1/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.9.1/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.9.1/node-v12.9.1.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.9.1/node-v12.9.1-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.9.1/node-v12.9.1.tar.gz

Other release files: https://nodejs.org/dist/v12.9.1/

Documentation: https://nodejs.org/docs/v12.9.1/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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

76c66b55bd2a923579333c2d24429e10d50f4e259170cdd6e413214febb9df55 node-v12.9.1-aix-ppc64.tar.gz
9aaf29d30056e2233fd15dfac56eec12e8342d91bb6c13d54fb5e599383dddb9 node-v12.9.1-darwin-x64.tar.gz
84b8e3684ff8e30c0735cddc94b3820e0dca4a683aa46834fd711098a0f6a8f3 node-v12.9.1-darwin-x64.tar.xz
8f68a9a53a5c3351c90d295258599737de8afca66e3fe41991576efb6a35b4c5 node-v12.9.1-headers.tar.gz
9fe1461acef13aa3c02afaae05984ca77e1de9be7348a1fc7a2d550072b81816 node-v12.9.1-headers.tar.xz
a09e7c54f05036ddf260f9a6762d72669e428810f814ad189519fe5adad0bd2d node-v12.9.1-linux-arm64.tar.gz
b6d986faf3a77b6c353c344645c93f2a0e0436c43865e6c215a24301a076a11f node-v12.9.1-linux-arm64.tar.xz
b81af82e2c0cfd0ec20d1ca4622d7ce602435458459b056527d46f1a35ba9050 node-v12.9.1-linux-armv7l.tar.gz
11a10a59e1099296d28e24e5b200774d5196932369e5be09ee3d0cc1c7d276c2 node-v12.9.1-linux-armv7l.tar.xz
1febb5758d96f6b05c6e86d2520d9d658065fae98da9273248caca0ddde27878 node-v12.9.1-linux-ppc64le.tar.gz
ad6d9058f25cbe5edf1a12e6eeb527cb17ba2eadcbb406996ad82d1c27fe29e2 node-v12.9.1-linux-ppc64le.tar.xz
df3d69a65bc9efbfb36187522061c6fb67c59362e46693c719b88f1b882b0b00 node-v12.9.1-linux-s390x.tar.gz
77bb8e58ed7d196f934159e952d1598984b900094f5948e0a5a4a67489a9e711 node-v12.9.1-linux-s390x.tar.xz
5488e9d9e860eb344726aabdc8f90d09e36602da38da3d16a7ee852fd9fbd91f node-v12.9.1-linux-x64.tar.gz
680a1263c9f5f91adadcada549f0a9c29f1b26d09658d2b501c334c3f63719e5 node-v12.9.1-linux-x64.tar.xz
06eeede83ff403f1af18acf16b007e652d14ff1c12ef19f6866722f091cacccf node-v12.9.1.pkg
51bfbfc7755cf7901de9acc4b3f3baf38900af5a4f38e25a61427d6c3772ebbe node-v12.9.1-sunos-x64.tar.gz
0277eaf191b8887983957d8fff3292512c5a057329384a9aa39b5c00070b66a7 node-v12.9.1-sunos-x64.tar.xz
9150b2b3c728e022c596ab86188c685facc9f30f4c8e60c1a0f9d5a3e8e3653f node-v12.9.1.tar.gz
c245822a9d5204e821646508244c835e386e11c3eda4cb5261cde83517ff545e node-v12.9.1.tar.xz
631af2dc0e0a5966dbd736e27ea01b186f6d3f22fa2e569e7e3407ef3d96b689 node-v12.9.1-win-x64.7z
6a4e54bda091bd02dbd8ff1b9f6671e036297da012a53891e3834d4bf4bed297 node-v12.9.1-win-x64.zip
8ffd55204b9d00d58456c4ae22e8ea9db440a9755a02f40ea1ee8321c50dd5cd node-v12.9.1-win-x86.7z
346dc4ac0ad07783dafd8f9a0f55538cf7e9cdf62e14df1a960a6acb5f39d795 node-v12.9.1-win-x86.zip
e1c25dd10b9e1d68768842ba8892ba18ca6e1e14d5be7ade86c035c7f02a02fa node-v12.9.1-x64.msi
9a1d1fa6e71f5f9860b1c09275c7d38255029864b489aded09dfaa4fbe9bd8b5 node-v12.9.1-x86.msi
a3219cdb26c895d8b396ec438f7dadfbb909f8b6e4069bcbcfc41192af8e3682 win-x64/node.exe
654cb8682984cbed2ca698e5b3ebd05edaa60174d964432143bdfc0c38254aa7 win-x64/node.lib
f54cfea1bc2b3872275ffe6f517ff08c17ee3f62d756ed45f909bddc4fc32cc3 win-x64/node_pdb.7z
3896c478a8c6d0091c859a0afa234ce39d2d54e0734dfd4a05e3d111cda4e9ac win-x64/node_pdb.zip
4b8e1f7d1ca6ce6669674a32a3274042867d24a795779b7c32d9c27f967aee82 win-x86/node.exe
df075eff064bd3e081d848484b4b7c99b3a022a8a8e5988b2d17dbf4d0489a56 win-x86/node.lib
05c2fc8c19770f98b7da8ede070e7b247dcb671db6207e030b8a8d962249679d win-x86/node_pdb.7z
c4c7c649ba6a88361c94d087581e2ed2f097eabfee3a737d33e3d57337274eea win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl1kJuIACgkQdw96mlrh
VgDvchAAhy+O22DXHUgiADuiKb3/yWx2oCb52MzLBc7Gi2lCm9IIe6Xx2aJCq2XQ
SDoE6apEIsBGe0hPzkRLQb5PUaAkXwyE7L2OUqmxZNqf3aIlMOqY7RKTyIRCmA3M
PyVPwIMChbiiODTfG7jA1Rop2Y2NAAUC8IfxGGQNGTm5SAMdiZ1KLYl+YRIKDnv5
nnf27gmpA6DEIbL1D/8CSEcTXMVrporpCkuoRQ6eK6s96Jy+3ps4x0TbkbVUVSOn
Fnp8IgUMtQBHh4vc4vYhWOG8G7ZGjksbIW6q+IjBEs8XeKXXEtAVNHUTXnwflo+m
u4dZl8JrLoG8qKe8S7Be5ps1OmZnjbDCxraGtpCnQP9OADUHEC9DRDYTvM/a5teX
wH9sUjh/10nfJfNeWiaTCXr6P9GyuYPTYKXkNOihvVIlGI+vV27L16qawGvpdwwW
4QeX5lVLHj8MQE1ZzQEzs/F1ThlhoEaixXb7D9fEbpesENeaoSEF2/ZOQ1w1VwFr
9Ecl+/uC/KPlaEcQOm5xVy9dSrRyTPAI3vpNyGzpKZrlFcfn6oUOTLa4gvGTozB6
kMvTGobNtQzypUeNSZvY9AamJZL2ZgmIO2rGNK10eyMqjmjGZXkVrNkasuc5Ew6O
ErlBVaythMxuJ+sVohlNf033rGS7U8Fu812VZo0Q2kg/g3IzcNE=
=5MCI
-----END PGP SIGNATURE-----

Node v12.9.0(현재 버전)

주요 변경사항

  • crypto:
    • OAEP 패딩을 사용할 때 사용자가 해시 함수를 지정할 수 있도록 비대칭 암호화에 oaepHash 옵션을 추가했습니다. (Tobias Nießen) #28335.
  • deps:
    • V8을 7.6.303.29로 업데이트했습니다. (Michaël Zasso) #28955.
      • JSON.parse와 동결 배열(frozen arrays)에서 호출되는 메서드 등 다양한 API의 성능을 개선했습니다.
      • Promise.allSettled 메서드를 추가했습니다.
      • Intl 메서드의 BigInt 지원을 개선했습니다.
      • 자세한 내용은 https://v8.dev/blog/v8-release-76를 참고하세요.
    • libuv를 1.31.0으로 업데이트했습니다. (cjihrig) #29070.
      • Windows의 메모리 맵 파일에 더 빨리 접근할 수 있도록 UV_FS_O_FILEMAP을 추가했습니다.
      • Windows에서 uv_fs_mkdir()가 유효하지 않은 파일명일 때 UV_EINVAL을 반환합니다. 이전에는 UV_ENOENT를 반환했습니다.
      • uv_fs_statfs() API를 추가했습니다.
      • uv_os_environ()uv_os_free_environ() API를 추가했습니다.
  • fs:
    • fs.writev, fs.writevSync, filehandle.writev (프로미스 버전) 메서드를 추가했습니다. 이 메서드로 파일 디스크립터에 ArrayBufferView의 배열을 작성할 수 있습니다. (Anas Aboureada) #25925, (cjihrig) #29186.
  • http:
    • OutgoingMessage.prototype에 세 가지 속성 writableObjectMode, writableLength, writableHighWaterMark를 추가했습니다. #29018.
  • stream:
    • 읽을 수 있는 스트림에 readableEnded 속성을 새로 추가했습니다. 'end' 이벤트가 발생했을 때 이 값이 true로 설정됩니다. (Robert Nagy) #28814.
    • 쓸 수 있는 스트림에 writableEnded 속성을 새로 추가했습니다. writable.end()가 호출된 후 이 값이 true로 설정됩니다. (Robert Nagy) #28934.

Commits

  • [5008b46159] - benchmark: allow easy passing of process flags (Brian White) #28986
  • [9057814206] - buffer: improve copy() performance (Brian White) #29066
  • [c7a4525bbe] - buffer: improve ERR_BUFFER_OUT_OF_BOUNDS default (cjihrig) #29098
  • [f42eb01d1d] - build: enable linux large pages LLVM lld linkage support (David Carlier) #28938
  • [5c5ef4e858] - build: remove unused option (Rich Trott) #29173
  • [fbe25c7fb7] - build: remove unnecessary Python semicolon (MattIPv4) #29170
  • [e51f924964] - build: add a testclean target (Daniel Bevenius) #29094
  • [0a63e2d9ff] - build: support py3 for configure.py (cclauss) #29106
  • [b04f9e1f57] - build: reset embedder string to “-node.0” (Michaël Zasso) #28955
  • [b085b94fce] - console: minor timeLogImpl() refactor (cjihrig) #29100
  • [54197eac4d] - (SEMVER-MINOR) crypto: extend RSA-OAEP support with oaepHash (Tobias Nießen) #28335
  • [a17d398989] - deps: V8: cherry-pick e3d7f8a (cclauss) #29105
  • [2c91c65961] - deps: upgrade to libuv 1.31.0 (cjihrig) #29070
  • [53c7fac310] - deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6) (Michaël Zasso) #28955
  • [7b8eb83895] - (SEMVER-MINOR) deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) (Michaël Zasso) #28005
  • [7d411f47b2] - deps: V8: backport b33af60 (Gus Caplan) #28671
  • [492b7cb8c3] - (SEMVER-MINOR) deps: V8: cherry-pick d2ccc59 (Michaël Zasso) #28016
  • [945955ff86] - deps: cherry-pick 13a04aba from V8 upstream (Jon Kunkee) #28602
  • [9b3c115efb] - (SEMVER-MINOR) deps: V8: cherry-pick 3b8c624 (Michaël Zasso) #28016
  • [533b2d4a08] - (SEMVER-MINOR) deps: V8: fix linking issue for MSVS (Refael Ackermann) #28016
  • [c9f8d28f71] - (SEMVER-MINOR) deps: V8: fix BUILDING_V8_SHARED issues (Refael Ackermann) #27375
  • [f24caeff2f] - (SEMVER-MINOR) deps: V8: add workaround for MSVC optimizer bug (Refael Ackermann) #28016
  • [94c8d068f8] - (SEMVER-MINOR) deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init (Refael Ackermann) #27375
  • [d940403c20] - (SEMVER-MINOR) deps: V8: forward declaration of Rtl*FunctionTable (Refael Ackermann) #27375
  • [ac0c075cad] - (SEMVER-MINOR) deps: V8: patch register-arm64.h (Refael Ackermann) #27375
  • [eefbc0773f] - (SEMVER-MINOR) deps: V8: update postmortem metadata generation script (cjihrig) #28016
  • [33f3e383da] - (SEMVER-MINOR) deps: V8: silence irrelevant warning (Michaël Zasso) #26685
  • [434c127651] - (SEMVER-MINOR) deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #26685
  • [040e7dabe4] - (SEMVER-MINOR) deps: V8: fix filename manipulation for Windows (Refael Ackermann) #28016
  • [cfe2484e04] - deps: update V8 to 7.6.303.29 (Michaël Zasso) #28955
  • [6f7b561295] - dns: update lookupService() first arg name (cjihrig) #29040
  • [ad28f555a1] - doc: improve example single-test command (David Guttman) #29171
  • [edbe38d52d] - doc: mention N-API as recommended approach (Michael Dawson) #28922
  • [ebfe6367f0] - doc: fix introduced_in note in querystring.md (Ben Noordhuis) #29014
  • [9ead4eceeb] - doc: note that stream error can close stream (Robert Nagy) #29082
  • [5ea9237d2b] - doc: clarify async iterator leak (Robert Nagy) #28997
  • [1b6d7c0d00] - doc: fix nits in child_process.md (Vse Mozhet Byt) #29024
  • [375d1ee58b] - doc: improve UV_THREADPOOL_SIZE description (Tobias Nießen) #29033
  • [7b7b8f21cb] - doc: documented default statusCode (Natalie Fearnley) #28982
  • [17d9495afa] - doc: make unshift doc compliant with push doc (EduardoRFS) #28953
  • [3bfca0b7e4] - doc, lib, src, test, tools: fix assorted typos (XhmikosR) #29075
  • [b7696b41e5] - events: give subclass name in unhandled ‘error’ message (Anna Henningsen) #28952
  • [d79d142e0c] - fs: use fs.writev() internally (Robert Nagy) #29189
  • [82eeadb216] - fs: use consistent buffer array validation (cjihrig) #29186
  • [81f3eb5bb1] - fs: add writev() promises version (cjihrig) #29186
  • [435683610b] - fs: validate writev fds consistently (cjihrig) #29185
  • [bb19d8212a] - (SEMVER-MINOR) fs: add fs.writev() which exposes syscall writev() (Anas Aboureada) #25925
  • [178caa56ae] - fs: add default options for *stat() (Tony Brix) #29114
  • [f194626ffb] - fs: validate fds as int32s (cjihrig) #28984
  • [c5edeb9776] - http: simplify drain() (Robert Nagy) #29081
  • [6b9e372198] - http: follow symbol naming convention (Robert Nagy) #29091
  • [2e5008848e] - http: remove redundant condition (Luigi Pinca) #29078
  • [13a497912d] - http: remove duplicate check (Robert Nagy) #29022
  • [16e001112c] - (SEMVER-MINOR) http: add missing stream-like properties to OutgoingMessage (Robert Nagy) #29018
  • [c396b2a5b2] - http: buffer writes even while no socket assigned (Robert Nagy) #29019
  • [f9b61d2bc7] - (SEMVER-MINOR) http,stream: add writableEnded (Robert Nagy) #28934
  • [964dff8a9e] - http2: remove unused FlushData() function (Anna Henningsen) #29145
  • [66249bbcad] - inspector: use const for contextGroupId (gengjiawen) #29076
  • [cb162298eb] - module: pkg exports validations and fallbacks (Guy Bedford) #28949
  • [491b46d605] - module: refine package name validation (Guy Bedford) #28965
  • [925e40cfa7] - module: add warning when import,export is detected in CJS context (Giorgos Ntemiris) #28950
  • [17319e7f44] - net: use callback to properly propagate error (Robert Nagy) #29178
  • [7f11c72cc5] - readline: close dumb terminals on Control+D (cjihrig) #29149
  • [3c346b8bad] - readline: close dumb terminals on Control+C (cjihrig) #29149
  • [e474c6776c] - (SEMVER-MINOR) readline: establish y in cursorTo as optional (Gerhard Stoebich) #29128
  • [2528dee674] - report: list envvars using uv_os_environ() (cjihrig) #28963
  • [a6b9299039] - src: rename --security-reverts to …-revert (Sam Roberts) #29153
  • [62a0e91d8c] - src: simplify UnionBytes (Ben Noordhuis) #29116
  • [b2936cff5d] - src: organize imports in inspector_profiler.cc (pi1024e) #29073
  • [a9f8b62b47] - (SEMVER-MINOR) stream: add readableEnded (Robert Nagy) #28814
  • [1e3e6da9b9] - stream: simplify howMuchToRead() (Robert Nagy) #29155
  • [e2a2a3f4dd] - stream: use lazy registration for drain for fast destinations (Robert Nagy) #29095
  • [2a844599db] - stream: improve read() performance further (Brian White) #29077
  • [e543d35f35] - stream: inline and simplify onwritedrain (Robert Nagy) #29037
  • [6bc4620d8b] - stream: improve read() performance more (Brian White) #28989
  • [647f3a8d01] - stream: encapsulate buffer-list (Robert Nagy) #28974
  • [000999c06c] - stream: improve read() performance (Brian White) #28961
  • [6bafd35369] - test: deflake test-tls-passphrase (Luigi Pinca) #29134
  • [aff1ef9d27] - test: add required settings to test-benchmark-buffer (Rich Trott) #29163
  • [18b711366a] - test: make exported method static (Rainer Poisel) #29102
  • [0aa339e5e1] - test: skip test-fs-access if root (Daniel Bevenius) #29092
  • [e3b1243ea2] - test: unskip tests that now pass on AIX (Sam Roberts) #29054
  • [f9ed5f351b] - test: assert: add failing deepEqual test for faked boxed primitives (Jordan Harband) #29029
  • [43e444b07a] - test: refactor test-sync-io-option (Anna Henningsen) #29020
  • [82edebfebf] - (SEMVER-MINOR) test: add test for OAEP hash mismatch (Tobias Nießen) #28335
  • [f08f154fd6] - (SEMVER-MINOR) test: update postmortem metadata test for V8 7.6 (cjihrig) #28016
  • [5b892c44d6] - tls: allow client-side sockets to be half-opened (Luigi Pinca) #27836
  • [c4f6077994] - tools: make code cache and snapshot deterministic (Ben Noordhuis) #29142
  • [acdc21b832] - tools: make pty_helper.py python3-compatible (Ben Noordhuis) #29167
  • [31c50e5c17] - tools: make nodedownload.py Python 3 compatible (cclauss) #29104
  • [1011a1792c] - tools: allow single JS file for --link-module (Daniel Bevenius) #28443
  • [4d7a7957fc] - (SEMVER-MINOR) tools: sync gypfiles with V8 7.6 (Michaël Zasso) #28016
  • [a4e2549b87] - util: improve debuglog performance (Brian White) #28956
  • [112ec73c95] - util: isEqualBoxedPrimitive: ensure both values are actual boxed Symbols (Jordan Harband) #29029
  • [8426077898] - util: assert: fix deepEqual comparing fake-boxed to real boxed primitive (Jordan Harband) #29029
  • [d4e397a900] - worker: fix crash when SharedArrayBuffer outlives creating thread (Anna Henningsen) #29190

Windows 32-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.9.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.9.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.9.0/node-v12.9.0.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.9.0/node-v12.9.0.tar.gz

Other release files: https://nodejs.org/dist/v12.9.0/

Documentation: https://nodejs.org/docs/v12.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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

c690810b11e286778c0eacb8f1f56af1973d71b1788c54040f25380fc3ff6bcd node-v12.9.0-aix-ppc64.tar.gz
24c1f0c93e485961446814662db942f1b309d843fb4ecbe50466d9857a51b343 node-v12.9.0-darwin-x64.tar.gz
3e3dcfbfb78c55e582bb16ad6d995edfa93fdb3c4fe2020981e4f0adae255821 node-v12.9.0-darwin-x64.tar.xz
4dfb4147c8e41bacf7ac2bfcc844ec5ff4721cd47ace4b8a7e8ef07548d44773 node-v12.9.0-headers.tar.gz
4baa0822d0321522cdcedfc2025e9395c3a34ea6ef4af53a3147a66f23778219 node-v12.9.0-headers.tar.xz
703134352854e3501023cda8eba68f1f992a426f1cda649dc6b38e248b07fcf1 node-v12.9.0-linux-arm64.tar.gz
f7f6f102d097d64eba26f84f2760597f9831886ef7d0db3cba88459847f2743d node-v12.9.0-linux-arm64.tar.xz
05e3f81f17528d24409028bc66cb03fa18892af4d63e7cddaeb1189fe28ed005 node-v12.9.0-linux-armv7l.tar.gz
689d9e0e180bceb268876d95c86c3d8e64eb0440a90cd2e57c61899209d05acb node-v12.9.0-linux-armv7l.tar.xz
a5b0ac5557df1588d2b74a4ec33a6cf4feb0586d899b048d1eb9befd5de8a738 node-v12.9.0-linux-ppc64le.tar.gz
d5b1f14753eb8c084a22e709f38d024cf7d974cee67ed095a78665d0b62a6b69 node-v12.9.0-linux-ppc64le.tar.xz
149243fed728766eb31eb51534dba53a8eb25a58d08d6b1a354dea8deeade987 node-v12.9.0-linux-s390x.tar.gz
0c4b933cbce5f7153effed002e7aa58abde650256aae05ae951b1e6cfde1c4e6 node-v12.9.0-linux-s390x.tar.xz
3991e5b65fbaab8d70cda813b9bc73dd3b4201aeef42bcb1c000a03869aa0610 node-v12.9.0-linux-x64.tar.gz
7110bdd16e397870142ff0e8d92d4a4502d43ec047d970c843a9a4e5f9e79283 node-v12.9.0-linux-x64.tar.xz
7a18632a187137f21f88dbc0ae85c8a34d20fccb4b7c26be665fdc56a929c3fc node-v12.9.0.pkg
b0260415bf006330ca282a370dc56fcd018981a0024512785ea545fc49fd1d0f node-v12.9.0-sunos-x64.tar.gz
d8ad03d2c9f09d605607fc211749f53c708f8ff51a254f6731d9544c95d9112d node-v12.9.0-sunos-x64.tar.xz
88cb425086a87323288c8389e974e8c1001b81fe11c529e64592e8feb2d12f93 node-v12.9.0.tar.gz
e05fe8ba1bdf58e51cdb5d946ebb7a2dec567b3680da2752e120a763293a41c5 node-v12.9.0.tar.xz
2c25b307d7acbeeb1fb618587ceb6769391a5cfd8ee9be805e1ac5344b9f3a2f node-v12.9.0-win-x64.7z
b5f05deb31ac04b9c3a487542daf151e01c05017403a56ba443da623f36b153b node-v12.9.0-win-x64.zip
87adc248df2b1be102e5025b571849638ac337f595ce6c5dbec3d8cea9d374ce node-v12.9.0-win-x86.7z
a0d680846dff00222b886164e1428d257aa8031a63b52cc21de6540386a4e2d0 node-v12.9.0-win-x86.zip
7e6c6855fc4eb44b95a033f4ad8d73d7823388dd01ceb98a91eb68a7625323f3 node-v12.9.0-x64.msi
cdf09fc5223c4c47e5182803164d641365ef54eaa6dc3fd4c580fe1255faa433 node-v12.9.0-x86.msi
d5e9555256523c188af94ad9736c3a4492578842ccdfe8318ccf9caec2977bfd win-x64/node.exe
654cb8682984cbed2ca698e5b3ebd05edaa60174d964432143bdfc0c38254aa7 win-x64/node.lib
7fb28adbb18c03ecd8a8fc4e5da6a715d7adf3b79a8c626638d0c07faad6e47b win-x64/node_pdb.7z
417b7393c519c70ed96377a50323150714c0c931a571a97789c0f0ba352d2d73 win-x64/node_pdb.zip
cc2f13a4028a5c72aef8d03cb503b76036b87e3dcf400b7e000a30ae39e7f652 win-x86/node.exe
df075eff064bd3e081d848484b4b7c99b3a022a8a8e5988b2d17dbf4d0489a56 win-x86/node.lib
f2b5001a3d5bf3682c5feec610844a4f112d274e6c9b796d38dfde16ff7b0991 win-x86/node_pdb.7z
5f180908b937afbef929f4ad07f7b3355c2510d50e88ec053798b3bdbc57be3b win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl1cTCgACgkQdw96mlrh
VgBjJA/9G6n17aIguQqqe9lmAstCDgx5zhCTnVI9vE6CtYB50HIUFQKHlc8+ijXy
QC667tTWcyoLleSEuERnWrymf1Pv+6kVaD+stQnl6nT8ioMKoJ1u16c9NOnErVoj
+AtAR16d9aXXVLTXWO1iy9jOxrXrReUpRh8tgHZ2cBUBrBY3yZZhWaeFSU0fPa1E
N/WxKeyfByLnnOc817QH6a7BUQikx2H6ZRiWis36eGMN/tTZCvh8Bw/mgGg+0jvd
YQhsj784ZoKnUdzEnCceq5WyEwFr/nFsTsrBwbSR109iysv+eQZOaqXaOI2+4Hsa
BQj/2DXuFGog79B9WO7BetkD9LqBPOP6mLXRP70Mbjnm+7GayYi1wblzYpiqekEJ
oyci1ph/AKAXkppzVo/dcIKhFvkJWKAhme8RuRSnc5e7w4uB0x3hrVZBSHrmOUgF
Miu+//N8Sh86Pww1wfmWYy253wC1sbCPgWf4whOjZ1YLf56TbsG223PjZXebI49E
NhX7VqlQC1u9JV3VvmGVHBrL0X0w3+jMcm32tfWlT8Dgzbo8jYO0eUEFNuGqa5uL
kbvyB0W2nFpK5uOPR7JOO32jt+k2y2TEYcbfnL7sYuYL95tP/UNPvjYO0AN9Rk02
dAqybpZw4nLwmge89LYTFo4/YRt1NJZ86c6sN86fNck7HHKYIms=
=o1jr
-----END PGP SIGNATURE-----

Node v10.16.3(LTS)

주요 변경사항

보안 릴리스입니다.

HTTP/2의 다른 구현체와 마찬가지로 Node.js에서 서비스 거부 공격을 할 수 있는
취약점이 발견되었습니다.
더 자세한 정보는 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md에서
확인하세요.

다음 취약점이 수정되었습니다.

  • CVE-2019-9511 “Data Dribble”: 공격자는 특정 리소스에서 대량의 데이터를 여러 스트림으로 요청합니다. 윈도우 크기 및 스트림 우선 순위를 조작하여 서버가 1 바이트 청크로 데이터를 큐에 넣도록 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9512 “Ping Flood”: 공격자는 지속적인 핑을 HTTP/2 피어로 보내 피어가 내부 응답 큐를 작성하게 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9513 “Resource Loop”: 공격자는 여러 요청 스트림을 생성하고 우선 순위 트리에 상당한 변동을 일으키는 방식으로 스트림 우선 순위를 계속 섞습니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9514 “Reset Flood”: 공격자는 여러 스트림을 열고 각 스트림을 통해 잘못된 요청을 보내 피어에서 RST_STREAM 프레임의 스트림을 요청합니다. 피어가 RST_STREAM 프레임을 큐에 넣는 방법에 따라 메모리, CPU를 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9515 “Settings Flood”: 공격자는 SETTINGS 프레임 스트림을 피어에게 보냅니다. RFC는 SETTINGS 프레임당 하나의 승인으로 피어 응답을 요구하므로 빈 SETTINGS 프레임은 핑과 거의 동일하게 행동합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9516 “0-Length Headers Leak”: 공격자는 길이가 0인 헤더 이름과 길이가 0인 헤더 값을 가지는 헤더 스트림을 보냅니다. 추가로 이 헤더의 허프만 인코딩 결과가 1 바이트 이상일 수 있습니다. 일부 구현에서는 이러한 헤더에 메모리를 할당하고 세션이 종료될 때까지 할당을 유지합니다. 이로 인해 불필요한 메모리가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9517 “Internal Data Buffering”: 공격자는 HTTP/2 윈도우를 열어서 피어가 제약 없이 전송할 수 있지만, TCP 윈도우를 닫아 놓기 때문에 피어가 실제로 (많은) 바이트를 쓸 수는 없습니다. 이 상태에서 공격자는 큰 응답 개체에 대한 요청 스트림을 보냅니다. 서버가 응답을 큐에 넣는 방법에 따라 메모리, CPU를 과도하게 소비하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9518 “Empty Frames Flood”: 공격자는 end-of-stream 플래그 없이 빈 페이로드 프레임 스트림을 보냅니다. 이 프레임은 DATA, HEADERS, CONTINUATION, PUSH_PROMISE일 수 있습니다. 피어는 각 프레임을 처리하는 데 시간을 소비하여 대역폭을 공격합니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.(구글의 Piotr Sikora가 발견)

Commits

  • [74507fae34] - deps: update nghttp2 to 1.39.2 (Anna Henningsen) #29122
  • [a397c881ec] - deps: update nghttp2 to 1.39.1 (gengjiawen) #28448
  • [fedfa12a33] - deps: update nghttp2 to 1.38.0 (gengjiawen) #27295
  • [ab0f2ace36] - deps: update nghttp2 to 1.37.0 (gengjiawen) #26990
  • [0acbe05ee2] - http2: allow security revert for Ping/Settings Flood (Anna Henningsen) #29122
  • [c152449012] - http2: pause input processing if sending output (Anna Henningsen) #29122
  • [0ce699c7b1] - http2: stop reading from socket if writes are in progress (Anna Henningsen) #29122
  • [17357d37a9] - http2: consider 0-length non-end DATA frames an error (Anna Henningsen) #29122
  • [460f896c63] - http2: shrink default vector::reserve() allocations (Anna Henningsen) #29122
  • [f4242e24f9] - http2: handle 0-length headers better (Anna Henningsen) #29122
  • [477461a51f] - http2: limit number of invalid incoming frames (Anna Henningsen) #29122
  • [05dada46ee] - http2: limit number of rejected stream openings (Anna Henningsen) #29122
  • [7f11465572] - http2: do not create ArrayBuffers when no DATA received (Anna Henningsen) #29122
  • [2eb914ff5f] - http2: only call into JS when necessary for session events (Anna Henningsen) #29122
  • [76a7ada15d] - http2: improve JS-side debug logging (Anna Henningsen) #29122
  • [00f153da13] - http2: improve http2 code a bit (James M Snell) #23984
  • [a0a14c809f] - src: pass along errors from http2 object creation (Anna Henningsen) #25822
  • [d85e4006ab] - test: apply test-http2-max-session-memory-leak from v12.x (Anna Henningsen) #29122

Windows 32-bit Installer: https://nodejs.org/dist/v10.16.3/node-v10.16.3-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v10.16.3/node-v10.16.3-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v10.16.3/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v10.16.3/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v10.16.3/node-v10.16.3.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-sunos-x64.tar.xz

ARMv6 32-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-armv6l.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v10.16.3/node-v10.16.3.tar.gz

Other release files: https://nodejs.org/dist/v10.16.3/

Documentation: https://nodejs.org/docs/v10.16.3/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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

1e246436e177d69354b5e3ea47579a03b68d7b61a2565972c18c3a4cb5d8ee33 node-v10.16.3-aix-ppc64.tar.gz
6febc571e1543c2845fa919c6d06b36a24e4e142c91aedbe28b6ff7d296119e4 node-v10.16.3-darwin-x64.tar.gz
1d5ce05abf39ef482c2c3eaf16c1f4edb01314308066871d3dfc99e95701b19b node-v10.16.3-darwin-x64.tar.xz
0901d1f1bfe0f5d922f9d79c5822a3624c11eb0f2de9fd552425bc98c7b95e54 node-v10.16.3-headers.tar.gz
6ceb3249ac26a098c943de8104c19d7ea5a540b02db8652b80ab54deed1e5848 node-v10.16.3-headers.tar.xz
3bab16e7107092e43426e082ee9fd88ef0a43a35816f662f14563bcc5152600d node-v10.16.3-linux-arm64.tar.gz
8ee77bad022bd460bf2867a97bf56ce7ddc4aa2ace067e45995fb1721a958428 node-v10.16.3-linux-arm64.tar.xz
c4ce8f8627c4d0d71647987924e5369cd1adeef2865bf1bdbb4387b75fba804b node-v10.16.3-linux-armv6l.tar.gz
17b6ea87cde13c330a72c44be8a30ebebf83c7c71d1a1b92e1d629f273fa0743 node-v10.16.3-linux-armv6l.tar.xz
f267710728ca56ca3b522076fff808540ea27d6aa5fd586bc0ad39c389530c3b node-v10.16.3-linux-armv7l.tar.gz
4a6f27308cd0cea136be6f5f7c194b0faabea016efe844fb1452c846d2eca7b1 node-v10.16.3-linux-armv7l.tar.xz
3e0f41b3cb991f062e1c93a297675af34d1a2f29052306cd585f1f5e25ea9159 node-v10.16.3-linux-ppc64le.tar.gz
b51731b49f6816f5e3e670c399611eb9386f558cc2d597301fb73e585640a642 node-v10.16.3-linux-ppc64le.tar.xz
ae87fa499fd5fd9d86d4f788cb4e54bd3eb4fdb735b20235537e9d38ae5da73b node-v10.16.3-linux-s390x.tar.gz
90cc57506c98cd5561f5dda9e103fa70083242fff2b1a39a5351fc15ff63db46 node-v10.16.3-linux-s390x.tar.xz
2f0397bb81c1d0c9901b9aff82a933257bf60f3992227b86107111a75b9030d9 node-v10.16.3-linux-x64.tar.gz
d2271fd8cf997fa7447d638dfa92749ff18ca4b0d796bf89f2a82bf7800d5506 node-v10.16.3-linux-x64.tar.xz
1c820559780c7a5b90ceebd819afce58f3c14805191141fbd59feb8485c2fc73 node-v10.16.3.pkg
d8f2418b748c4c9b1d8c1dc008b42384ca87c4c4c134df3a3009e6b7546f8b23 node-v10.16.3-sunos-x64.tar.gz
2952da9d127c3f72fe5b3e466fbfe8a45ab3ef63263d881da7e9b586559f3693 node-v10.16.3-sunos-x64.tar.xz
db5a5e03a815b84a1266a4b48bb6a6d887175705f84fd2472f0d28e5e305a1f8 node-v10.16.3.tar.gz
7bf1123d7415964775b8f81fe6ec6dd5c3c08abb42bb71dfe4409dbeeba26bbd node-v10.16.3.tar.xz
c2cc3b95d6e8504b20623cfe74f848d1ebc2f43a262e7bae14bee64db2b13889 node-v10.16.3-win-x64.7z
19aa47de7c5950d7bd71a1e878013b98d93871cc311d7185f5472e6d3f633146 node-v10.16.3-win-x64.zip
fc1ccb1e6f12fe68e816c552e6b1df289a8bfe064c025eb62c360bd041da4a5f node-v10.16.3-win-x86.7z
02a30a17c25c354747ac76fd130ff5495dde2f60f0a21ad675526951c2d7a52a node-v10.16.3-win-x86.zip
f68b75eea46232adb8fd38126c977dc244166d29e7c6cd2df930b460c38590a9 node-v10.16.3-x64.msi
b3cf18ad447d177cf858dbe45751100846cad96ba7497cd7c1850a616758e67f node-v10.16.3-x86.msi
cb8f5c1981e11a3d438b6867df5fb8e4f77cd29ddc0856d99b62060ef991c649 win-x64/node.exe
9f10cd25d27fc31f8fe8f5fcc5e9f27a8ba5bb79dc0791dc0df102f063c0066e win-x64/node.lib
654d350ee101cbb4a0246e5226169f99af763a4d4c14546370ec6dfb09cf5a47 win-x64/node_pdb.7z
426f326d88b5a184cc74ba50f5106eca933cb3386f872ffeb5844f3916296c09 win-x64/node_pdb.zip
78b71fd2fb792c5f24848a05119d50d02407675a54a72caf0e40b039a43fefdd win-x86/node.exe
459095d9bd9dc4e2d12c4284e6fc5bdc78eec8181c8327c57876499b002a59fd win-x86/node.lib
1d0bb57a74e836835a1f9b8c1e0bf2493d4bd095c81a8e12d05cbfbf8c363534 win-x86/node_pdb.7z
e2b5ea28cbe965e074e61035b559efda9312044ac5d0346243c041bbb62cea73 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAl1V2SsACgkQ1wYoSKGr
AFx2zAgAvucy6XmXR4ErdiTw0EJQjp19NHknk5ovcGVFJKMqwe4V2UqYgru7aFJL
paEEyS8j7pKeQ8d9AqmPiUontMVGFgJg9bD7qZIwiZnFoLeoe8CjY9jpDd+USDH7
NuKRCC7JLcjEXiMM9oQm4TzdmKLjopPvKWkLcrZka7SO1WQHdAz9N7LqBRt/WWre
VRxtC7pmEpR9SxXy+MVKw4aveO7rkPSDQ99XBPBccn2u2PUjSws/muyYN5cNQ0O5
USF86KoJGqlYcEEFXxk76OWJxeaik2eUv7Sjy/QOtbb9UvQQdrzzLKp0xK6+zGXw
dmNx9HVSkLfw++f4DOjvDofqlsnxOQ==
=Ie/z
-----END PGP SIGNATURE-----

Node v12.8.1(현재 버전)

주요 변경사항

보안 릴리스입니다.

HTTP/2의 다른 구현체와 마찬가지로 Node.js에서 서비스 거부 공격을 할 수 있는
취약점이 발견되었습니다.
더 자세한 정보는 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md에서
확인하세요.

다음 취약점이 수정되었습니다.

  • CVE-2019-9511 “Data Dribble”: 공격자는 특정 리소스에서 대량의 데이터를 여러 스트림으로 요청합니다. 윈도우 크기 및 스트림 우선 순위를 조작하여 서버가 1 바이트 청크로 데이터를 큐에 넣도록 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9512 “Ping Flood”: 공격자는 지속적인 핑을 HTTP/2 피어로 보내 피어가 내부 응답 큐를 작성하게 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9513 “Resource Loop”: 공격자는 여러 요청 스트림을 생성하고 우선 순위 트리에 상당한 변동을 일으키는 방식으로 스트림 우선 순위를 계속 섞습니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9514 “Reset Flood”: 공격자는 여러 스트림을 열고 각 스트림을 통해 잘못된 요청을 보내 피어에서 RST_STREAM 프레임의 스트림을 요청합니다. 피어가 RST_STREAM 프레임을 큐에 넣는 방법에 따라 메모리, CPU를 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9515 “Settings Flood”: 공격자는 SETTINGS 프레임 스트림을 피어에게 보냅니다. RFC는 SETTINGS 프레임당 하나의 승인으로 피어 응답을 요구하므로 빈 SETTINGS 프레임은 핑과 거의 동일하게 행동합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9516 “0-Length Headers Leak”: 공격자는 길이가 0인 헤더 이름과 길이가 0인 헤더 값을 가지는 헤더 스트림을 보냅니다. 추가로 이 헤더의 허프만 인코딩 결과가 1 바이트 이상일 수 있습니다. 일부 구현에서는 이러한 헤더에 메모리를 할당하고 세션이 종료될 때까지 할당을 유지합니다. 이로 인해 불필요한 메모리가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9517 “Internal Data Buffering”: 공격자는 HTTP/2 윈도우를 열어서 피어가 제약 없이 전송할 수 있지만, TCP 윈도우를 닫아 놓기 때문에 피어가 실제로 (많은) 바이트를 쓸 수는 없습니다. 이 상태에서 공격자는 큰 응답 개체에 대한 요청 스트림을 보냅니다. 서버가 응답을 큐에 넣는 방법에 따라 메모리, CPU를 과도하게 소비하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9518 “Empty Frames Flood”: 공격자는 end-of-stream 플래그 없이 빈 페이로드 프레임 스트림을 보냅니다. 이 프레임은 DATA, HEADERS, CONTINUATION, PUSH_PROMISE일 수 있습니다. 피어는 각 프레임을 처리하는 데 시간을 소비하여 대역폭을 공격합니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.(구글의 Piotr Sikora가 발견)

Commits

  • [bfeb5fc07f] - deps: update nghttp2 to 1.39.2 (Anna Henningsen) #29122
  • [08021fac59] - http2: allow security revert for Ping/Settings Flood (Anna Henningsen) #29122
  • [bbb4769cc1] - http2: pause input processing if sending output (Anna Henningsen) #29122
  • [f64515b05e] - http2: stop reading from socket if writes are in progress (Anna Henningsen) #29122
  • [ba332df5d2] - http2: consider 0-length non-end DATA frames an error (Anna Henningsen) #29122
  • [23b0db58ca] - http2: shrink default vector::reserve() allocations (Anna Henningsen) #29122
  • [4f10ac3623] - http2: handle 0-length headers better (Anna Henningsen) #29122
  • [a21a1c007b] - http2: limit number of invalid incoming frames (Anna Henningsen) #29122
  • [4570ed10d7] - http2: limit number of rejected stream openings (Anna Henningsen) #29122
  • [88726f2384] - http2: do not create ArrayBuffers when no DATA received (Anna Henningsen) #29122
  • [530004ef32] - http2: only call into JS when necessary for session events (Anna Henningsen) #29122
  • [58d8c9ef48] - http2: improve JS-side debug logging (Anna Henningsen) #29122

Windows 32-bit Installer: https://nodejs.org/dist/v12.8.1/node-v12.8.1-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.8.1/node-v12.8.1-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.8.1/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.8.1/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.8.1/node-v12.8.1.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.8.1/node-v12.8.1.tar.gz

Other release files: https://nodejs.org/dist/v12.8.1/

Documentation: https://nodejs.org/docs/v12.8.1/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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

a140e9c84fdb5c40328dc1ea6425954e08cec722ab4e1ab4521b0523bd7b2fa0 node-v12.8.1-aix-ppc64.tar.gz
caccf8b409af342e35672cc766430587664f88d01dab622a5de44c8be1336e44 node-v12.8.1-darwin-x64.tar.gz
c4789916ef5fcb61f8d6b10e15f9137d043ee5dbd004638c88ea4dde2841b2c2 node-v12.8.1-darwin-x64.tar.xz
06c011a5601fca1107d4a29428a051416dffb592391b47e23d6150abc98e4fef node-v12.8.1-headers.tar.gz
b39eb6675c88b62c7c0d5103d7098f98b43b841a2d0065692760c9513b2bb6c4 node-v12.8.1-headers.tar.xz
3ad6e53bcf8a3b92b10504fa70d83f69eab85a8603c2fbe210121278dd19920b node-v12.8.1-linux-arm64.tar.gz
3707240c402aae0b5879ce1ba17b32ebd224d47f5147639c6881a1b71ce65383 node-v12.8.1-linux-arm64.tar.xz
44e2f0dda0ae2ebabecfefe9a33995939d8e362a5bb3fcc579df98c107db2272 node-v12.8.1-linux-armv7l.tar.gz
cbe09af1f41de4cdc917a8874a1cda6bf877495dee159752d3f8745cf6a1e9a3 node-v12.8.1-linux-armv7l.tar.xz
1ddabc01c81dc8056daf831db9815439aa2dea9f93e653c6a185ec859836cf93 node-v12.8.1-linux-ppc64le.tar.gz
2002c80e3cd8c3c4816bdb96e9fc496510a5d2edf273a5cda91625a48a87dedd node-v12.8.1-linux-ppc64le.tar.xz
a4b73e4c847ebc33d05d7f0d2efb7720ebbb643d17f3848ff3fe4266cc32f0ff node-v12.8.1-linux-s390x.tar.gz
f8712268de942b2c05a58eb7291b8ed7cdd9b6413f82bc1aa99e23fae42375f9 node-v12.8.1-linux-s390x.tar.xz
8758a131cac2e8a373153b9eb53696d2e823b910dbf175af7ec4a0592b065c22 node-v12.8.1-linux-x64.tar.gz
1c7cf61cb8fa98a76d92445823d6dd1649e985899e16900b39eacdd8cd4094f3 node-v12.8.1-linux-x64.tar.xz
79c92434d5e9cf7b77122b679aa4b61e12dffa9feb1caee0134446ff8b7ecf05 node-v12.8.1.pkg
9e6fbd7d4346ddb0e86e14dbeff5f1cb23a69e09096dde6c0ad2785dc5643742 node-v12.8.1-sunos-x64.tar.gz
9f0ac2d6f98efeb54bb3a6f52ea58e545bc542b354061f79c1f2804e52a406a0 node-v12.8.1-sunos-x64.tar.xz
fbd4de6657f6301cdcd0c60a0e5a413c490670d8c21b501c380b96cc3b9b5b95 node-v12.8.1.tar.gz
3e63b2e7979b51d79b6f2f89d2869de85222be8edc549f08e10dc8d039de5b88 node-v12.8.1.tar.xz
52ece730f0d4d80657eb8d5c62120c2a91f435b8ef3bea672e1bfdaf9f7eae70 node-v12.8.1-win-x64.7z
c81ecaa03dc882dde36087c854e4831c13d3eb237f262f9ce74ccc6f156684da node-v12.8.1-win-x64.zip
73e50beac826d2a68ad7bfa9c69d02881651a84d8284b609eb6de1f816422ce1 node-v12.8.1-win-x86.7z
71257bcb20caeb22320f4316549424329af888d4fb49f9beb6ea660a85c5848b node-v12.8.1-win-x86.zip
cf7766ff0ffb30a6b1d88832b059c151cd84a43b9e80891bde0b456a730034ed node-v12.8.1-x64.msi
b861512e89b07266b90422c5a48ba5a718f5377e0a3fe2e64e13ac69b87f6d29 node-v12.8.1-x86.msi
f54c49a9652b59f10b7961f6b3891636946b68e404e69d83e32762135c1fa862 win-x64/node.exe
508026e08ee3d579c17f766167c5c69ce31280a4a5607ac853099cd2b84e0426 win-x64/node.lib
dd9308e9161a5ff3bc549cf017d498d6bb05c7a9940c9e6d4d34f95cbce55e2d win-x64/node_pdb.7z
46240f4ddb0d8ce81bff744b14376b702f37c2b43022602b002464622b7e8395 win-x64/node_pdb.zip
bf42f24a980db702b51939fdcfdf38a95580b00dd57a78d3d9d9c8bc558ab8c9 win-x86/node.exe
26e54309d4e8a8ac8f10d460962c474f1ae3f83ffa1bf420ec773b53db36a90a win-x86/node.lib
297a842f38c8bb2bb1082ca763c40ca9ab104bcab3d57ea85fa62bb6682f2f43 win-x86/node_pdb.7z
07e4a6cdc87b1e5bbd2970ef7b35412c50393d9a74199f7babe6c432cc7db299 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAl1VWqEACgkQdw96mlrh
VgB40w//Z/qkA9OpKmcu8VE4g2tWIU4utQTh2HR5ueAyy/LjJQ2f2mcC5Xar5WCq
w8K5q9loPkdxdQlteb55/p4VGEGAam5tWhy3juS5HbboiOlt5QNfswe9JQfcQGvu
UdPSukHoY+DLHeiaAdhf1bFhWTnCNuXRZdrWqukTjQhApu3JkLMa+gwex1TrEb7R
4mlpDtEXi1sTudOgBD71VGo3t7//nD6oV5NegH5AJZwXaGeaeWVhW9jscyy9GLLq
e0mzbZTUQnECw7fUujsGL0UbRRwUiVgeoBCV5WwatF/ofVXJ+VU0z3L18the+z27
DidOXQQHU/9EFkkXjGAmob2iS7imZMPHTiEhCCsfyHT7ldVFJS2UXdfetkfcMauO
D1jt0OVLRaJ78zYCO2Ct6CWDIqbYERvjuvIkWk3wLGvWZCMxkVnsNQH4Yrr9cYKq
P5PU8wGZyueOWj4TN9JAzj9h6BIrPmEJMgJHFiIDQnP84mq+tSqQSNwTiFUW6jZN
1WHg8zdq4kEJuYusKnZF13Z5FCnisXVXDThO9p7dwrJ1xta2t6LWmWF7uTwiate5
AXGnXz+zoZiGll831QOuIMCMZZyZPh6JHZOMO6AGj+58d4OQcVMyLVH2bsRQhK7B
Q8g229JTL7XjOvd5MwKuvoZAi+HG35hqPstICTu/ZsSZEiWgV2c=
=9JPr
-----END PGP SIGNATURE-----

Node v8.16.1(LTS)

주요 변경사항

보안 릴리스입니다.

HTTP/2의 다른 구현체와 마찬가지로 Node.js에서 서비스 거부 공격을 할 수 있는
취약점이 발견되었습니다.
더 자세한 정보는 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md에서
확인하세요.

다음 취약점이 수정되었습니다.

  • CVE-2019-9511 “Data Dribble”: 공격자는 특정 리소스에서 대량의 데이터를 여러 스트림으로 요청합니다. 윈도우 크기 및 스트림 우선 순위를 조작하여 서버가 1 바이트 청크로 데이터를 큐에 넣도록 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9512 “Ping Flood”: 공격자는 지속적인 핑을 HTTP/2 피어로 보내 피어가 내부 응답 큐를 작성하게 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9513 “Resource Loop”: 공격자는 여러 요청 스트림을 생성하고 우선 순위 트리에 상당한 변동을 일으키는 방식으로 스트림 우선 순위를 계속 섞습니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9514 “Reset Flood”: 공격자는 여러 스트림을 열고 각 스트림을 통해 잘못된 요청을 보내 피어에서 RST_STREAM 프레임의 스트림을 요청합니다. 피어가 RST_STREAM 프레임을 큐에 넣는 방법에 따라 메모리, CPU를 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9515 “Settings Flood”: 공격자는 SETTINGS 프레임 스트림을 피어에게 보냅니다. RFC는 SETTINGS 프레임당 하나의 승인으로 피어 응답을 요구하므로 빈 SETTINGS 프레임은 핑과 거의 동일하게 행동합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9516 “0-Length Headers Leak”: 공격자는 길이가 0인 헤더 이름과 길이가 0인 헤더 값을 가지는 헤더 스트림을 보냅니다. 추가로 이 헤더의 허프만 인코딩 결과가 1 바이트 이상일 수 있습니다. 일부 구현에서는 이러한 헤더에 메모리를 할당하고 세션이 종료될 때까지 할당을 유지합니다. 이로 인해 불필요한 메모리가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9517 “Internal Data Buffering”: 공격자는 HTTP/2 윈도우를 열어서 피어가 제약 없이 전송할 수 있지만, TCP 윈도우를 닫아 놓기 때문에 피어가 실제로 (많은) 바이트를 쓸 수는 없습니다. 이 상태에서 공격자는 큰 응답 개체에 대한 요청 스트림을 보냅니다. 서버가 응답을 큐에 넣는 방법에 따라 메모리, CPU를 과도하게 소비하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9518 “Empty Frames Flood”: 공격자는 end-of-stream 플래그 없이 빈 페이로드 프레임 스트림을 보냅니다. 이 프레임은 DATA, HEADERS, CONTINUATION, PUSH_PROMISE일 수 있습니다. 피어는 각 프레임을 처리하는 데 시간을 소비하여 대역폭을 공격합니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.(구글의 Piotr Sikora가 발견)

Commits

  • [6d427378c0] - deps: update nghttp2 to 1.39.2 (Anna Henningsen) #29122
  • [33d4d916d5] - deps: update nghttp2 to 1.39.1 (gengjiawen) #28448
  • [17fad97113] - deps: update nghttp2 to 1.38.0 (gengjiawen) #27295
  • [0b44733695] - deps: update nghttp2 to 1.37.0 (gengjiawen) #26990
  • [5afc77b044] - deps: update nghttp2 to 1.34.0 (James M Snell) #23284
  • [073108c855] - http2: allow security revert for Ping/Settings Flood (Anna Henningsen) #29122
  • [6d687f7af8] - http2: pause input processing if sending output (Anna Henningsen) #29122
  • [854dba649e] - http2: stop reading from socket if writes are in progress (Anna Henningsen) #29122
  • [a3191689dd] - http2: consider 0-length non-end DATA frames an error (Anna Henningsen) #29122
  • [156f2f35df] - http2: shrink default vector::reserve() allocations (Anna Henningsen) #29122
  • [10f05b65c4] - http2: handle 0-length headers better (Anna Henningsen) #29122
  • [ac28a628a5] - http2: limit number of invalid incoming frames (Anna Henningsen) #29122
  • [11b4e2c0db] - http2: limit number of rejected stream openings (Anna Henningsen) #29122
  • [7de642b6f9] - http2: do not create ArrayBuffers when no DATA received (Anna Henningsen) #29122
  • [dd60d3561a] - http2: only call into JS when necessary for session events (Anna Henningsen) #29122
  • [00f6846b73] - http2: improve JS-side debug logging (Anna Henningsen) #29122
  • [b095e35f1f] - http2: improve http2 code a bit (James M Snell) #23984
  • [cc282239c1] - test: apply test-http2-max-session-memory-leak from v12.x (Anna Henningsen) #29122

Windows 32-bit Installer: https://nodejs.org/dist/v8.16.1/node-v8.16.1-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v8.16.1/node-v8.16.1-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v8.16.1/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v8.16.1/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v8.16.1/node-v8.16.1.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-darwin-x64.tar.gz

Linux 32-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-x86.tar.xz

Linux 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-aix-ppc64.tar.gz

SmartOS 32-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-sunos-x86.tar.xz

SmartOS 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-sunos-x64.tar.xz

ARMv6 32-bit Binary: Coming soon

ARMv7 32-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v8.16.1/node-v8.16.1-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v8.16.1/node-v8.16.1.tar.gz

Other release files: https://nodejs.org/dist/v8.16.1/

Documentation: https://nodejs.org/docs/v8.16.1/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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

be210d9ce20155877e56aa57901f71b45b214ebb6f78fc48e96ad3c37ec2ea0c node-v8.16.1-aix-ppc64.tar.gz
ef1cb93f03bca4b9528e5d3226bdf8efa135e4b12285eee1e4760da06bac631a node-v8.16.1-darwin-x64.tar.gz
8eac60c9d6687fb77a052a04712cc792a6cd1f55003e96d09404986690f8ad76 node-v8.16.1-darwin-x64.tar.xz
a9e646dd27f29611002298a5a69e753e37b501ebb587165c258fd18425bbd7ff node-v8.16.1-headers.tar.gz
96671638be9e66d81227647123218e0077b7af4105854ac190bc7840d22db91c node-v8.16.1-headers.tar.xz
880cdfba7072398b2f7ca84474d3a689a9325182b866e6705f04f1cde10fea94 node-v8.16.1-linux-arm64.tar.gz
0c61c6ae8a70d96ab19848a09b2010d29b806f2dd79177da22c743fd5e352a98 node-v8.16.1-linux-arm64.tar.xz
1995c8a31e6939f47a93b101e1cb7f9d7caa2eacd01b1ffd90e50af5e8a776a2 node-v8.16.1-linux-armv7l.tar.gz
c71297cdb4336969ee10d5ac7daecdc380bb876a1e17db1cbf0479983cfe6f59 node-v8.16.1-linux-armv7l.tar.xz
22a89b8dc86da0f844ffc57b0d4a693795a4b6f006f9a930f3b8534a5b4927b8 node-v8.16.1-linux-ppc64le.tar.gz
5cfb323a649b7d9e6f54b5e3132141b18756a0d2b78435097ae6800acc286802 node-v8.16.1-linux-ppc64le.tar.xz
b3bbef731a4f058c6e86437220e14a246b64cf54e923fbceffa2538197446fa5 node-v8.16.1-linux-s390x.tar.gz
efaf43ddcf0f84d0ca6295fd35c1029b99150d94ce17f23764a5c2840afe4384 node-v8.16.1-linux-s390x.tar.xz
8ef575b64edbb6c04e506d8c8e0c5f92b90f4752841892c5adbb3a1e02863f46 node-v8.16.1-linux-x64.tar.gz
22a2580569c787ea83960bda0eae5dfaf1fe79382a52ad5fa5cd3accb93a1818 node-v8.16.1-linux-x64.tar.xz
a7f60fc6f41bedd2a387bc99067df11d53161fa235b8c90c6b5e73b0dff9af8e node-v8.16.1-linux-x86.tar.gz
ad19074012d957e8e524b3ef2ebad8cf36bdf58f86505e0ec2c131c1004ea9bb node-v8.16.1-linux-x86.tar.xz
b479883439ac4dbbbf509de5699f2b64b7788479b7715fc140bf6e89d2205d51 node-v8.16.1.pkg
8bf305578e0020ea3643a59f1b8bf2153e6eaf4e13527d24c30e60150ff5bc69 node-v8.16.1-sunos-x64.tar.gz
da4c673ab4fcefd892a833bb57b4b8d25e1c18d3d876fe810477b1ef3d7af98a node-v8.16.1-sunos-x64.tar.xz
2ac82a583da792d04c336350a7f482c716c1abe1a8db84daaaaf98e117a16e56 node-v8.16.1-sunos-x86.tar.gz
779ff5950e03b48ba2fa36c133a05d5f3c94e25849b94025e9305be36218ecb0 node-v8.16.1-sunos-x86.tar.xz
7666207212ac5cbd766b052951f57da62aaa641fedf83fabcb31dbb19f61169d node-v8.16.1.tar.gz
d8c190acdf2d967faf49c22df883d31a8d4e249d67852dae3c2d8a0f756b0512 node-v8.16.1.tar.xz
a70cd3c72351675bc3f4c51bedd293b173cb42ea973ef1c1dc19d90c6f769f17 node-v8.16.1-win-x64.7z
396dc41740bca0355d11865780e2af8e88eb17581cd2c445ccaf29b862901ab8 node-v8.16.1-win-x64.zip
c524468cf0d278b8daf4f4e864fad75fe457fadfc9f920aa93be8271529bf189 node-v8.16.1-win-x86.7z
18345ecb826ff63ab82b3688b53f4586fa67605b3adb0e87b853c6d15891b1aa node-v8.16.1-win-x86.zip
e5ad1a5e9e2de3ce98e4accbaaf59b8e78e2e3e08fed6c1863616e2886499250 node-v8.16.1-x64.msi
26a7e5fb30710d54fa3b93cd4cba3b805b1b4b1e6d3980387ab335c4bbb3d302 node-v8.16.1-x86.msi
68eb7432f06a63b4456ab88e0ca984df4c993e60a6c6f05e6f8d12de177941ef win-x64/node.exe
b277fd2148b2d06d7279976cb5a87224281db8a1417d334fef1402cddc3a606c win-x64/node.lib
558341be54e43a9c4ed0845b36afc547e7413d3c977a879f0f4494fb2863c092 win-x64/node_pdb.7z
663ea606cc994bd0508843a40d079f3beeb8a4814eb4607d7c05a859f577e547 win-x64/node_pdb.zip
b009f4a4bc0eada5c4430b6e3140061728bc2b01e4e33c06b467321a9c4db329 win-x86/node.exe
a8d422d7eac6539a43d53a59d50f3a37020c8ea53080d2cdfd55eb07ce027ab4 win-x86/node.lib
8520521b679d21a75aa3794042ecadfc11b523c140a71e085c4d9e947d7ee231 win-x86/node_pdb.7z
11ed30cc63a58e30564c599235ab4705a54aff3008ce090f5edd50cd05d8e907 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAl1V3f8ACgkQ1wYoSKGr
AFzOEwf/e1u2Qrg8cujswF7GYYPluq8F+Dq5vlllAfAIFYgyAhZ1cxjV0rNY+mYk
ySQAhr1423HmuuPltfVY6sMwpuQbH6UJoX6GFAr8XOlYqQcOLVuxGQ/JdOniKo46
uye6f2/I/Qy12RB8r/OS+WqoIZfzxDcfOeHPzRNnxnqWRnkiCRf60OMiUgnrxde2
ndrWkwze80CnmrcXnx88s9ffEb26pQeX2eEkRA62jA9lgJF6r11332HZFauQn5Q2
IypdLOQLluKqPkHCJiau2H846jrECVQHMzFMhxsqgu0IhlGwpb8YlCSqXk9m7Oet
vqKOPOTPX8Ut6R58O9dYQyZujfvL2Q==
=cvvu
-----END PGP SIGNATURE-----

2019년 8월 보안 릴리스

Node.js를 포함한 다른 HTTP/2 구현체에서 서비스 거부 공격의 취약점이 발견되었습니다. 더 자세한 내용은 https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-002.md를 참고해 주세요.

모든 Node.js 활성 릴리스 라인에서 업데이트 버전을 사용할 수 있습니다. 여기에는 Node.js 8.x의 Linux ARMv6 빌드도 포함되었습니다.(이는 연기되었습니다.)

모든 Node.js 사용자는 가능한 한 빨리 아래 목록에 있는 버전으로 업그레이드 하길 권장합니다.

다운로드와 릴리스 상세 내용

다음의 버전을 다운로드 받을 수 있습니다. 각 릴리스 페이지에서 코드 변경 내역도 볼 수 있습니다.

수정된 취약점

영향: Node.js 8(LTS “Carbon”), Node.js 10(LTS “Dubnium”), Node.js 12 (Current)의 모든 버전은 다음 내용에 취약합니다.

  • CVE-2019-9511 “Data Dribble”: 공격자는 특정 리소스에서 대량의 데이터를 여러 스트림으로 요청합니다. 윈도우 크기 및 스트림 우선 순위를 조작하여 서버가 1 바이트 청크로 데이터를 큐에 넣도록 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9512 “Ping Flood”: 공격자는 지속적인 핑을 HTTP/2 피어로 보내 피어가 내부 응답 큐를 작성하게 합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9513 “Resource Loop”: 공격자는 여러 요청 스트림을 생성하고 우선 순위 트리에 상당한 변동을 일으키는 방식으로 스트림 우선 순위를 계속 섞습니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9514 “Reset Flood”: 공격자는 여러 스트림을 열고 각 스트림을 통해 잘못된 요청을 보내 피어에서 RST_STREAM 프레임의 스트림을 요청합니다. 피어가 RST_STREAM 프레임을 큐에 넣는 방법에 따라 메모리, CPU를 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9515 “Settings Flood”: 공격자는 SETTINGS 프레임 스트림을 피어에게 보냅니다. RFC는 SETTINGS 프레임당 하나의 승인으로 피어 응답을 요구하므로 빈 SETTINGS 프레임은 핑과 거의 동일하게 행동합니다. 이 데이터를 얼마나 효율적으로 큐에 넣는지에 따라 CPU, 메모리를 과도하게 소비하게 하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9516 “0-Length Headers Leak”: 공격자는 길이가 0인 헤더 이름과 길이가 0인 헤더 값을 가지는 헤더 스트림을 보냅니다. 추가로 이 헤더의 허프만 인코딩 결과가 1 바이트 이상일 수 있습니다. 일부 구현에서는 이러한 헤더에 메모리를 할당하고 세션이 종료될 때까지 할당을 유지합니다. 이로 인해 불필요한 메모리가 소비되어 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9517 “Internal Data Buffering”: 공격자는 HTTP/2 윈도우를 열어서 피어가 제약 없이 전송할 수 있지만, TCP 윈도우를 닫아 놓기 때문에 피어가 실제로 (많은) 바이트를 쓸 수는 없습니다. 이 상태에서 공격자는 큰 응답 개체에 대한 요청 스트림을 보냅니다. 서버가 응답을 큐에 넣는 방법에 따라 메모리, CPU를 과도하게 소비하여 서비스 거부가 발생할 수 있습니다.
  • CVE-2019-9518 “Empty Frames Flood”: 공격자는 end-of-stream 플래그 없이 빈 페이로드 프레임 스트림을 보냅니다. 이 프레임은 DATA, HEADERS, CONTINUATION, PUSH_PROMISE일 수 있습니다. 피어는 각 프레임을 처리하는 데 시간을 소비하여 대역폭을 공격합니다. 이로 인해 과도한 CPU가 소비되어 서비스 거부가 발생할 수 있습니다.(구글의 Piotr Sikora가 발견)

연락처와 차후 업데이트

현재 Node.js 보안 정책과 취약점을 어떻게 보고할 수 있는지는
https://nodejs.org/en/security/에서 볼 수 있습니다.

Node.js의 보안 취약점과 보안과 관련된 릴리스의 최신 정보를 얻으려면
https://groups.google.com/forum/#!forum/nodejs-sec에서 소수의 공지만 하는
nodejs-sec 메일링 리스트를 구독해 주세요. 이 프로젝트는
nodejs GitHub 조직에서 관리하고 있습니다.

Node v10.16.2(LTS)

주요 변경사항

OpenSSL을 1.1.1c로 업그레이드하면서 엔트로피가 낮은 머신에서 간헐적으로 행이 생기는 회귀가 발생했습니다. 이 릴리스는 그 회귀를 수정합니다.

Commits

  • [894a9dd230] - deps: cherry-pick c19c5a6 from openssl upstream (Ali Ijaz Sheikh) #28983

Windows 32-bit Installer: https://nodejs.org/dist/v10.16.2/node-v10.16.2-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v10.16.2/node-v10.16.2-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v10.16.2/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v10.16.2/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v10.16.2/node-v10.16.2.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-sunos-x64.tar.xz

ARMv6 32-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-armv6l.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v10.16.2/node-v10.16.2.tar.gz

Other release files: https://nodejs.org/dist/v10.16.2/

Documentation: https://nodejs.org/docs/v10.16.2/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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

0b78f2bb3281090dd8f389aa57e692cf548f993d8108032c24793bcb9c3ed440 node-v10.16.2-aix-ppc64.tar.gz
21ee8bdb04909f553e97af7c6e41009e15d06b886dd3e2ca8a92ce3e0a148a09 node-v10.16.2-darwin-x64.tar.gz
c5d61d2450fb08b2ef35935b59e2d67cc73d2372f1ec4ab43a4c9bc752820e11 node-v10.16.2-darwin-x64.tar.xz
3b7521c4131bac6eaa317d2bee26c1ed9daab5387dde4bc577a522941fbe86a4 node-v10.16.2-headers.tar.gz
6933621ed4c4582f169bc7d91df11be0297876263fa7f03135d9d1e8431565a8 node-v10.16.2-headers.tar.xz
5c496fc4392f34d9f2515212f58088448e121cbe9b732a64e9757f021b6b675f node-v10.16.2-linux-arm64.tar.gz
5fb2b7d3c2b6b40e237cdc172eabfac2e485ee309ac2bcfbff413de1ed79a59e node-v10.16.2-linux-arm64.tar.xz
1dcb5d494b813703bf178e0432a50e67b97806a3ecc3f3aec03b850330fe44a1 node-v10.16.2-linux-armv6l.tar.gz
9a6e55a682640697bc14466adb8e240ca76305b0667865859d71da1446250a26 node-v10.16.2-linux-armv6l.tar.xz
19babb3625534d7062a61913a02de1de0e809319db02967ec46c8eea57e8e9a7 node-v10.16.2-linux-armv7l.tar.gz
4196d550aadcd1ad96d19e7f31fda69ba2f3ba75a4128713043f1d9bf6c61f25 node-v10.16.2-linux-armv7l.tar.xz
40c7f91501ec0473c93a2da8d05979f795a8008496ba3954164013bb90745ff2 node-v10.16.2-linux-ppc64le.tar.gz
c44bdf46fc4c2fe0115d73f9ea85e60c9e102704481d09c02311759a76b869a3 node-v10.16.2-linux-ppc64le.tar.xz
fadfc469c48d4bc659f52de63be300663b21cf7a6615b0b51f7e6364b2b5c84b node-v10.16.2-linux-s390x.tar.gz
ed78ca6f70c1347712046ed0789cc90c1ddb692ba2c702074e68f94b02940d15 node-v10.16.2-linux-s390x.tar.xz
2779d04b1a9744bbb003a1a4476db2444b5f697034bc902a07dde4a8669ae6d0 node-v10.16.2-linux-x64.tar.gz
406718dc2f3164b3d1981c36b68b70ea448fbbac29cefbe23ff286b3cd55f264 node-v10.16.2-linux-x64.tar.xz
3f12680455557751fb946cc8ee81e961a894a1a9f2bdf06e9f58caa397d0adda node-v10.16.2.pkg
53ad5199425656ffaa8a1d96a7ef54f11d2025bcdc89650378933d362b5ac190 node-v10.16.2-sunos-x64.tar.gz
2629f732618a1ebd4318bd8cb274eba63f901ffc14b7362d02fd0f74ddc140f5 node-v10.16.2-sunos-x64.tar.xz
5936ef12ab3f0ce5fbb6751c1bb41f626b6058f414a297b3d8c5eb418a27e8fe node-v10.16.2.tar.gz
6cbc17795e9259dce7a8f5fd5a2e46f9e6920fb48b7d9539c5b2faa5bb5db4d8 node-v10.16.2.tar.xz
79f58ff41473ebc24fa5b0391a458e81258035b65b31e057b50c204d3cf6590b node-v10.16.2-win-x64.7z
01654dc79d82e9f3c89d01c8cf1cdce68d3a9118dbe968ee86a3ffd6ee153567 node-v10.16.2-win-x64.zip
bfbc8516b67769942ad50bcb964e7025d3591915ecf4d3ad6e966160858ca699 node-v10.16.2-win-x86.7z
842c993472c2727a8a2c2f5759a5447daa84314e15656a385e47b7648dd289d3 node-v10.16.2-win-x86.zip
cc791c8927ecf1639e55ebe252aabb411fc316e4fb08114a8cf4edb6751d1707 node-v10.16.2-x64.msi
cb5ed4ad51b76de31004bbc793dea5d3aead4f47c157f8a49f7a4787286de81d node-v10.16.2-x86.msi
a28af4a2a142a6f1015fe944689128cc83fd7c29edd309a86407e6eb7a5105f0 win-x64/node.exe
4c0f7168444b6ef0d469c9303d132520c56e6950cbe9616c2f86c08a498e3632 win-x64/node.lib
7f65e074b3c6ca4fbb426d6875a1102b224a8ea7cfdee116984330c3be557e94 win-x64/node_pdb.7z
532d208e4dff5ab494f1778250ca38dcc39d059de6619808cf9a63c319282f85 win-x64/node_pdb.zip
a6c293d990286e281b8193b9d41b600360f08c4f16befd6048f8c5eef81b1691 win-x86/node.exe
831fb788501920391120a99d20f443a1f32b6d6446870efcc35a50cd1e485f2b win-x86/node.lib
ecbd1be48b09aab54140300be0697d967c64ae4a9f7dcd54115797c7637b6d9b win-x86/node_pdb.7z
02bf3545641009a8aefb8b8b7cec7b3eb0acd2a5e89b97c22875e3448558009d win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEETtd49TnjY0x3nIfG1wYoSKGrAFwFAl1J/98ACgkQ1wYoSKGr
AFy3hQf+Ntj1UrejvXWA8xPHD9+149KamIRIuZm5ewO5pklzprMCKgg6yQTZcApt
b8zC6/VPU4e04e3V6m3v5vdmTT9H3pTk3OCV5jjEfngsSXrr7jtfuWI9Gq5CGDUT
HyynwH18fQ8pHY71d2Imlx3KIU4PMvP3KjWbYKvmOjsny652dNLkwDwJ18qGnSRl
bCB/+mQzrb1hA3GD2ax1WWj5Qeqh7KsqRnTsfNRHvgBb3LQbWNwBEcypG88ehYWl
47QZCXak8SI0kiPdjWPvlNDOv/1RETSaleJI0Zn5z8dxMK9X/zp6nMLVHcN4bAq/
K9DcKcnJ1bStNgeoC1THq4sRWU9dxg==
=OsVb
-----END PGP SIGNATURE-----

Node v12.8.0(현재 버전)

주요 변경사항

  • assert:
    • 레거시 모드 폐기예정(DEP0089)을 복원했습니다. (Colin Ihrig) #28892
  • crypto:
    • crypto.createHashoutputLength 옵션을 추가했습니다. (Tobias Nießen) #28805
    • maxmem의 범위를 32 비트에서 53 비트로 증가시켰습니다. (Tobias Nießen) #28799
  • n-api:
    • 인스턴스마다 상태 관리를 할 수 있는 API를 추가했습니다. (Gabriel Schulhof) #28682
  • report:
    • 리포트에 네트워크 인터페이스를 추가했습니다. (Colin Ihrig) #28911
  • src:
    • v8.getHeapCodeStatistics()를 외부에 노출했습니다. (Yuriy Vasiyarov) #27978

Commits

  • [d3426ee9f1] - assert: avoid potentially misleading reference to object identity (Anna Henningsen) #28824
  • [bbcf9f0625] - benchmark: swap var for let in buffer benchmarks (Alex Ramirez) #28867
  • [f2c1f3613b] - benchmark: swap var for let in util benchmarks (Alex Ramirez) #28867
  • [048db38ada] - benchmark: swap var for let in url benchmarks (Alex Ramirez) #28867
  • [391fe46378] - benchmark, http: refactor for code consistency (Alex Ramirez) #28791
  • [dcef7b8cc1] - build: include stubs in shared library (Jeroen Ooms) #28897
  • [470db47cb4] - build: remove support for s390 (but not s390x) (Ben Noordhuis) #28883
  • [25aa2228e4] - build: generate openssl config for BSD-x86 (Ben Noordhuis) #28806
  • [fb57bc4be4] - build: do not mix spaces and tabs in Makefile (Luigi Pinca) #28881
  • [9e7c66280e] - build: ignore backup files (Adam Majer) #28865
  • [24b9d29650] - build: uname -m is amd64 on freebsd, not x86_64 (Ben Noordhuis) #28804
  • [82f263d022] - build,tools: support building with Visual Studio 2019 (Michaël Zasso) #28781
  • [a7ef102a66] - crypto: add null check to outputLength logic (Colin Ihrig) #28864
  • [3a62202a54] - crypto: fix handling of malicious getters (scrypt) (Tobias Nießen) #28838
  • [b7c6ad595b] - (SEMVER-MINOR) crypto: add outputLength option to crypto.createHash (Tobias Nießen) #28805
  • [86f4c68d6a] - crypto: update root certificates (Sam Roberts) #28808
  • [e0e776331a] - (SEMVER-MINOR) crypto: increase maxmem range from 32 to 53 bits (Tobias Nießen) #28799
  • [11470d5c26] - deps: upgrade npm to 6.10.2 (isaacs) #28853
  • [9b02f3623b] - deps: dlloads node static linked executable (Luca Lindhorst) #28045
  • [24b8f2000c] - deps: remove backup files (Adam Majer) #28865
  • [ae56a232e1] - deps: backport b107214 from upstream V8 (Anna Henningsen) #28850
  • [19dad196e0] - deps: float 15d7e79 from openssl (Tobias Nießen) #28796
  • [9dfa636083] - dgram: changed ‘var’ to ‘let’ and ‘const’ (Manuel Ochoa Loaiza) #28357
  • [02a50c3b42] - doc: remove use of you (Michael Dawson) #28919
  • [bdd442fe35] - doc: describe NODE_OPTIONS interop w/cmd line opts (Alex Aubuchon) #28928
  • [57f5d50a3b] - doc: fix sorting nit in sections of http.md (Vse Mozhet Byt) #28943
  • [f4abf17d36] - doc: remove legacy mode deprecation in assert (Rich Trott) #28909
  • [0ac6d28f80] - doc: writableFinished is true before ‘finish’ (Robert Nagy) #28811
  • [7c80963d98] - doc: include “exports” resolver specification (guybedford) #28899
  • [5f07f49933] - doc: revoke DEP0089 (Colin Ihrig) #28892
  • [3e6342958b] - doc: add example about emitter.emit in events documentation (Felipe Duitama) #28374
  • [a28db5f470] - doc: add example of event close for child_process (Laura Ciro) #28376
  • [085eb4828b] - doc: fixup esm resolver spec formatting (Guy Bedford) #28885
  • [5533d48290] - doc: correct import statement (himself65) #28876
  • [ffc7a00c10] - doc: add documentation for stream.destroyed (Robert Nagy) #28815
  • [454e879a4a] - doc: fix incorrect name in report docs (Colin Ihrig) #28830
  • [881e345e0c] - doc: describe why new Buffer() is problematic (Sam Roberts) #28825
  • [95b87ce24a] - doc: claim NODE_MODULE_VERSION=76 for Electron 8 (Samuel Attard) #28809
  • [0667d0c6c2] - doc: add documentation for response.flushHeaders() (Luigi Pinca) #28807
  • [c0a044849d] - doc: fix type in NSS update instructions (Sam Roberts) #28808
  • [d0b1fb3311] - doc: api/stream.md typo from writeable to writable (Cotton Hou) #28822
  • [727ffe4720] - domain: use strong reference to domain while active (Anna Henningsen) #28313
  • [c9c7256f50] - http: reset parser.incoming when server response is finished (Anna Henningsen) #28646
  • [7d9eb17d30] - http2: destroy when settingsFn throws an error (himself65) #28908
  • [fa82cbc6cb] - http2: destructure constants from require call (Daniel Nalborczyk) #28176
  • [d0d31498d1] - http2: add constant to already destructured constants (Daniel Nalborczyk) #28176
  • [d72b6820bd] - inspector: report all workers (Eugene Ostroukhov) #28872
  • [464136fbc2] - lib: replace var with let in loaders.js (mbj36) #28081
  • [386d5d70fb] - lib: support min/max values in validateInteger() (Colin Ihrig) #28810
  • [2236affbf8] - module: exports error as MODULE_NOT_FOUND (Guy Bedford) #28905
  • [d9084d29fe] - module: unify package exports test for CJS and ESM (Jan Krems) #28831
  • [2262526562] - module: implement “exports” proposal for CommonJS (Jan Krems) #28759
  • [c93df0cfc3] - n-api: refactoring napi_create_function testing (Octavian Soldea) #28894
  • [e6b3bfe111] - n-api: refactor a previous commit (Octavian Soldea) #28848
  • [860c0d89b6] - (SEMVER-MINOR) n-api: add APIs for per-instance state management (Gabriel Schulhof) #28682
  • [3c52dbe15b] - net: shallow copy option when create Server (himself65) #28924
  • [1f82929ed0] - path: improve normalization performance (Brian White) #28948
  • [5d5c89a8f7] - policy: add dependencies map for resources (Bradley Farias) #28767
  • [4b91e4dafd] - (SEMVER-MINOR) report: include network interfaces in report (Colin Ihrig) #28911
  • [e0951c80f6] - report: loop over uv_cpu_info() results (Colin Ihrig) #28829
  • [4a747f6037] - Revertsrc: remove trace_sync_io_ from env” (Сковорода Никита Андреевич) #28926
  • [d601a0a9c0] - src: allow generic C++ callables in SetImmediate() (Anna Henningsen) #28704
  • [3d51d3039c] - src: large pages fix FreeBSD fix region size (David Carlier) #28735
  • [cce208794e] - (SEMVER-MINOR) src: export v8.GetHeapCodeAndMetadataStatistics() (Yuriy Vasiyarov) #27978
  • [32cf344f8e] - src: readlink(“/proc/self/exe”) -> uv_exename() (Ben Noordhuis) #28333
  • [1b0d67b1e7] - src: fix OpenBSD build (David Carlier) #28384
  • [406c50c1d4] - src: read break_node_first_line from the inspect options (Samuel Attard) #28034
  • [8db43b1ff5] - src: move relative uptime init (Micha Hanselmann) #28849
  • [e334c1f13b] - src: fix type name in comment (Ben Noordhuis) #28320
  • [cf071a01f2] - stream: resolve perf regression introduced by V8 7.3 (Matteo Collina) #28842
  • [0f8f552105] - test: refactor test-fs-stat.js (Rich Trott) #28929
  • [c38952610e] - test: add tests for spaces in folder names (PaulBags) #28819
  • [efe9b97d40] - test: refactor test-beforeexit-event-exit using mustNotCall (himself65) #28901
  • [c42eb5dd55] - test: refactoring test_error testing (himself65) #28902
  • [b6e174b4f5] - test: use assert.throws() in test-require-json.js (Alejandro Nanez) #28358
  • [19070e442d] - test: fix nits in test/fixtures/tls-connect.js (Luigi Pinca) #28880
  • [31aa33bdcb] - test: fix race in test-http2-origin (Alba Mendez) #28903
  • [9b47f77571] - test: udpate test comment description (Andres Bedoya) #28351
  • [a0f89a2845] - test: refactor test using assert instead of try/catch (Juan Bedoya) #28346
  • [2142b6d3d1] - test: improve test-async-hooks-http-parser-destroy (Gerhard Stoebich) #28253
  • [f6051f9506] - test: specialize OOM check for AIX (Sam Roberts) #28857
  • [84efadf263] - test, util: refactor isObject in test-util (Alex Ramirez) #28878
  • [0b6a84a861] - test,report: relax CPU match requirements (Anna Henningsen) #28884
  • [a38fecdb20] - tools: update certdata.txt (Sam Roberts) #28808
  • [b282c8512b] - vm: increase code coverage of source_text_module.js (kball) #28350
  • [43acce1925] - worker: handle calling terminate when kHandler is null (elyalvarado) #28370

Windows 32-bit Installer: https://nodejs.org/dist/v12.8.0/node-v12.8.0-x86.msi

Windows 64-bit Installer: https://nodejs.org/dist/v12.8.0/node-v12.8.0-x64.msi

Windows 32-bit Binary: https://nodejs.org/dist/v12.8.0/win-x86/node.exe

Windows 64-bit Binary: https://nodejs.org/dist/v12.8.0/win-x64/node.exe

macOS 64-bit Installer: https://nodejs.org/dist/v12.8.0/node-v12.8.0.pkg

macOS 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-darwin-x64.tar.gz

Linux 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-linux-x64.tar.xz

Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-linux-ppc64le.tar.xz

Linux s390x 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-linux-s390x.tar.xz

AIX 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-aix-ppc64.tar.gz

SmartOS 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-sunos-x64.tar.xz

ARMv7 32-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-linux-armv7l.tar.xz

ARMv8 64-bit Binary: https://nodejs.org/dist/v12.8.0/node-v12.8.0-linux-arm64.tar.xz

Source Code: https://nodejs.org/dist/v12.8.0/node-v12.8.0.tar.gz

Other release files: https://nodejs.org/dist/v12.8.0/

Documentation: https://nodejs.org/docs/v12.8.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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

c90a01b8480e2f820649924f9814023b2cb1ddda439d8f2d1f64e7917774459d node-v12.8.0-aix-ppc64.tar.gz
5229571a1736befd6426dc0a6907be416e9f5c24695e3ef275ed2ba70f496499 node-v12.8.0-darwin-x64.tar.gz
808360898b6a2c0889bdbbe14ef1b16bddf4722786fdf1d5decf5d3caa0bac97 node-v12.8.0-darwin-x64.tar.xz
27628113f72696391b29746031d8f03ff9fb513ee532f6cce0562161d12d75f8 node-v12.8.0-headers.tar.gz
389cf992818fdcc1262f27072f1827717234099e31866b6954d074775ad79425 node-v12.8.0-headers.tar.xz
9eb01fe3ff86210f19d03929d0a7c59713a05fd686334ecc8843c8f0d0321de6 node-v12.8.0-linux-arm64.tar.gz
9f22aff38a8622b05821129f69dbe90695e01166f55c8d2a39b6c6a5aef8c6a8 node-v12.8.0-linux-arm64.tar.xz
cbf5b88499de9db988360bd2e6094aac2b8acd6ff440518e0c1daaa93d9e9d06 node-v12.8.0-linux-armv7l.tar.gz
61d57dac0b5da7e3b99de345d4fe7aa19aaaefd0791f29c4dff0ca38cb59bf8b node-v12.8.0-linux-armv7l.tar.xz
8ef1ed72c1fe7ddec8913d50cb4a9fc858c34417b82ed8f2335979d93c2addc5 node-v12.8.0-linux-ppc64le.tar.gz
5073742970460bf86ddd6b7405c992998bedb8b858261519108f4b0b9d5c6230 node-v12.8.0-linux-ppc64le.tar.xz
10de02920c7169db1433c395703e3c96c1d197d6c6df53b27df056fb9ac72c3c node-v12.8.0-linux-s390x.tar.gz
fda613f0521e24e8259af139558b006158aaef1bc2658d628228b1020f355008 node-v12.8.0-linux-s390x.tar.xz
bc56ec3ee0e6b2945682fdfeb80187dbc1f67e59a78dc73ef225b4357509424f node-v12.8.0-linux-x64.tar.gz
b6a9ab2e6e872375e0e27eda0698820a64495b31b1beab36cc54f9876b3a2052 node-v12.8.0-linux-x64.tar.xz
9edbc22705975476ac93db2e16ad3273e078bc8b85502c31268065228d0440ce node-v12.8.0-sunos-x64.tar.gz
2dcd82f9f1c97b1a1c6cbb86ba7402ee60b089ecc1561acc4c944b8785ac6470 node-v12.8.0-sunos-x64.tar.xz
3be01afe6534adf049120ecf6304ff4ff7b424bbcd88572ae19e34d96ecaf329 node-v12.8.0-win-x64.7z
b295aedebde069c4148534a9dfb2394ceba28cf367ddd8204a27d69c095a9e00 node-v12.8.0-win-x64.zip
14922475db215dbcd24911bad4589983127be373ad44f32139937bdf5be7d442 node-v12.8.0-win-x86.7z
27a6c8e66c8dd672b0637159e28188a19be55ff92af9865d5bbe92ff5bceee28 node-v12.8.0-win-x86.zip
6d67ac7f8055b95168aef5d4cd46a3aeb3d842c0d59a4de7eaac8653be9b055e node-v12.8.0-x64.msi
61d090d03e98f4a7c6a0f8f1c098678fa3bf12a393cb10616798ace6486ae1f9 node-v12.8.0-x86.msi
4d67ebf2026da69bf7f663a4776640853e478be456173a91910c028b656d0301 node-v12.8.0.pkg
6f4e4ee7bcb52f782dce5a51d6951ff87151d9504be129d68d7aff469c0f7f36 node-v12.8.0.tar.gz
997b552376eab599892ba94eca5ed09bd59bdc6686d82fd15e4da552618824a4 node-v12.8.0.tar.xz
2e90c309cf4f2a434684c4137d1240b2d363aaadf14c9e111c55c65ebc6a2bd0 win-x64/node.exe
508026e08ee3d579c17f766167c5c69ce31280a4a5607ac853099cd2b84e0426 win-x64/node.lib
ce68d0843ecc0fbdae61a119832973200f89d1df9c58eed8610596206dbb4957 win-x64/node_pdb.7z
18d298fc70a6555c064974decbeadd7dba734c444e7f6b0d1417723264e3a18b win-x64/node_pdb.zip
56382136d50e98099b14402bd4f736d1cae10bc6affa92bbd6cc2f89936ecbeb win-x86/node.exe
26e54309d4e8a8ac8f10d460962c474f1ae3f83ffa1bf420ec773b53db36a90a win-x86/node.lib
aad482545c04019a9fd411231375994e43cdc206a221879388a23af56091971a win-x86/node_pdb.7z
c3ccbb4d01f6f5a5c6ae7a81c69380635a74d3832cb97bf8fb6b85d583f7bb6e win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEpIwr7mgOhBYyzU5E8HSWs+s8F2IFAl1J/3MACgkQ8HSWs+s8
F2KriA/+MuQpdRVSiKPzJDo4KJhNG5wlSVfrtbWeukRrxRdyM4Dx2WZMZQPXdghI
YU9gJWPSliFDP4YOeSk6ak4GJZsZ58Z+9JckanbQ4F0YqdjmWc2Rc2+KypQB0Q4D
7cHACOOuZsmSiQCfxGs2kYbAbqekLGJx4yB2lO2bCgMtm1qRU1vsITWFkQ3R9DWX
I5D+uLLJD34/rugOXVlPmW2xsWf7mP/FRfiS8fPpsjCyQRjlR8XXKw+hT5b5H01u
OhRlZImkzerdgAeSs3TuugsRBuq3a5u22UUw9bOHwfkaKoFFl3uxynuWBcTOc8qc
vvCAadXZK3at9JOlgfK3f/wFgyqSoq9a59hBnPFtIvcK3q9NO/7T7i4l4Q78tKjL
LsGLOo+kg45c4B5ngUTU+eWKE9QwgOgI7Ldr/ChwEeZhdJIzeniWYmHetBu0+qKa
LBA654bu+kJviX6muK8p39UXOZ+vJvDnXdYTTHWkO6rM4bdNWz7YtpiVXP54hIly
S1Iu8BUYEygYU3PxQmKK+prktrd0fLZV3QDW2L2qghSFYRiPCcUeHTagRupaW7nd
HVD5t1Xw+hEoMa5xE/4DurVYIs7eQnFu0xnV3+uH4POOKDCgH3VRC7oy62HFSWO7
KquSVrY5jxpTpaeGG97upm3EIAQIQZ9AmG4iuMctw7X6MwX8MTk=
=xu53
-----END PGP SIGNATURE-----