2020년 2월 보안 릴리스

(2020년 2월 6일 업데이트됨) 릴리스 되었습니다.

다음 이슈에 대해 모든 활성 릴리스 라인의 업데이트를 이용할 수 있습니다.

잘못된 Transfer-Encoding 헤더를 사용한 HTTP 요청 스머글링(smuggling)(위험) (CVE-2019-15605)

영향받는 Node.js 버전은 HTTP desync 공격을 수행하여 의심하지 않는
사용자에게 악의적인 페이로드를 전달하는 데 이용될 수 있습니다. 공격자가
사용자 세션을 탈취하거나 쿠키를 오염시키거나 클릭재킹을 수행하거나 기반 시스템의
아키텍처에 따라 여러 다른 공격을 하도록 페이로드를 수정할 수 있습니다.

eBay의 소프트웨어 엔지니어인 Ethan Rubinson가 보고했습니다.

HTTP 헤더 값에는 끝에 공백이 있으면 안 됩니다(높음) (CVE-2019-15606)

HTTP 헤더 값에 생략할 수 있는 공백은 잘라내야 합니다. 공백이 남아있으면
HTTP 헤더 값으로 이뤄지는 보안 검사를 공격자가 건너뛸 수도 있습니다.

Google의 Alyssa Wilk가 보고했습니다.

TLS 서버의 단언문을 잘못된 문자열로 원격 실행(높음) (CVE-2019-15604)

인증서의 subjectAltName에 타입 19 문자열을 가진 클라이언트 인증서로
NodeJS TLS 서버에 접속하면 TLS 서버가 피어 인증서를 읽으려고
시도하다가 크래시가 납니다.

Rogier Schouten과 Melvin Groenhoff가 보고했습니다.

엄격한 HTTP 헤더 파싱(없음)

HTTP 헤더 파싱의 엄격성을 높입니다. 알려진 취약성은 없지만 느슨한 HTTP 파싱은
여태까지 여러 문제의 원인이었습니다. 일반적으로 사용되는 사이트 중 일부는
유효하지 않은 HTTP 헤더를 만드는 것으로 알려져 있고
--insecure-http-parser CLI 옵션이나 insecureHTTPParser http
옵션을 상호운용성이 필요할 때 사용할 수 있지만 추천하지는 않습니다.

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


요약

Node.js 프로젝트는 2020년 2월 4일 화요일 또는 그 직후에 지원하는
모든 릴리스 라인에서 새로운 버전을 릴리스할 것입니다.

위험한 심각도의 이슈 하나와 높은 심각도의 이슈 두 개를 수정할 것입니다.
릴리스에는 HTTP 파싱을 더 엄격하게 하는 것도 포함됩니다.

영향

Node.js의 지원하는 모든 버전(10.x, 12.x, 13.x)은 취약합니다.

릴리스 시기

2020년 2월 4일 화요일 또는 그 직후 릴리스 될 것입니다.

연락처 및 향후 업데이트

현재 Node.js의 보안 정책은 https://nodejs.org/en/security/에서 볼 수 있습니다.
Node.js의 취약점을 보고하고 싶다면
https://github.com/nodejs/node/blob/master/SECURITY.md에 정리된 절차를 따르기 바랍니다.

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