2017년 6월, 모든 활성 릴리스 라인의 보안 업데이트

(2017년 7월 11일 수정됨) 보안 릴리스를 사용할 수 있습니다.

요약

Node.js의 7.x를 포함한 모든 활성 릴리스 라인의 수정 버전을 이제 이용할 수 있습니다. 이번 수정 버전은 최초 공지에서 높은 심각도로 분류된 수정사항을 포함하고 있고 4.x 릴리스 라인에서 낮은 우선순위의 Node.js 취약점과 현재 릴리스 라인에 포함된 Node.js 의존성에 낮은 우선순위를 가진 수정사항도 포함되어 있습니다.

모든 릴리스 라인을 사용하는 사람은 최대한 빨리 업그레이드하기를 권장합니다.

다운로드

Note: 0.10.x와 0.12.x 릴리스 라인도 상수 해시테이블 시드 취약점에 취약합니다. 이 릴리스 라인을 사용하고 있다면 LTS 릴리스 라인으로 업그레이드하기를 권장합니다.

Node.js에 한정된 보안 결함

상수 해시테이블 시드(CVE 미정)

Node.js의 릴리스 버전에서 해시테이블 시드가 상수였기 때문에 해시 범람(hash flooding) 원격 DoS 공격을 받기 쉬웠습니다. 이는 처음에 랜덤 생성한 시드를 구동시에 덮어쓸 수 있는 V8 스냅숏이 기본적으로 활성화된 채로 만들어졌기 때문입니다. 이 취약점을 보고해준 Google 프로젝트 Zero의 Jann Horn에게 감사드립니다.

해시 범람 취약점의 일반적인 부분에 대해서는 https://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf에서 볼 수 있습니다.

이번 수정 버전에서 스냅숏은 기본적으로 비활성화되었습니다. vm.runInNewContext에 크게 의존하는 코드는 더 좋은 해결책이 구현될 때까지는 대부분 성능 저하가 발생할 것입니다.

이는 높은 심각도의 취약점이고 모든 활성 릴리스 라인(4.x, 6.x, 8.x)과 7.x 라인에 적용되었습니다.

의존성의 취약점

영향받는 Node.js 릴리스 라인의 버전은 Node.js 의존성에 있는 다음 문제를 해결하는 수정하기 위해 갱신되었습니다. 이는 모두 제한적으로만 영향받거나 Node.js 환경에서는 활용될 가능성이 적으므로 낮은 심각도로 분류되었습니다.

CVE-2017-1000381 - c-ares NAPTR 파서가 경계를 벗어난 접근을 시도합니다.

보안 취약점은 Node.js 모든 버전에 포함된 c-ares 라이브러리에서 발견되었습니다. NAPTR 응답을 파싱할 때 정교하게 조작된 DNS 응답 패킷으로 주어진 입력 버퍼를 벗어난 메모리를 읽을 수 있게 됩니다. CVE-2017-1000381에서 권고하는 수정사항이 이번 Node.js 릴리스의 c-ares 버전에 추가되었습니다.

이는 낮은 심각도의 취약점이고 모든 활성 릴리스 라인(4.x, 6.x, 8.x)과 7.x 라인에 적용되었습니다.

아래부터는 원래의 글입니다.


요약

Node.js 프로젝트는 모든 활성 릴리스 라인(4.x, 6.x, 8.x)과 7.x의 보안 문제를 수정한 새 버전을 2017년 7월 10일이 있는 주에 릴리스합니다.

서비스 거부 취약점

4.x부터 8.x까지 모든 버전에 외부 공격자가 서비스 거부를 일으킬 수 있는 취약점이 포함되어 있습니다. 이 취약점의 심각도는 ‘높음’입니다. 영향받는 버전을 사용하고 있다면 보안 픽스가 출시될 때 반드시 업그레이드해야 합니다.

영향

  • Node.js 4.x 버전은 취약할 수 있습니다.
  • Node.js 6.x 버전은 취약할 수 있습니다.
  • Node.js 7.x 버전은 취약할 수 있습니다.
  • Node.js 8.x 버전은 취약할 수 있습니다.

릴리스 시기

7월 11일 화요일 또는 그즈음에 사용자가 전체적인 영향 평가를 할 수 있도록 취약점 상세 내용을 함께 발표하며 릴리스할 것입니다.

연락처 및 향후 업데이트

Node.js의 현재 보안 정책은 https://nodejs.org/en/security/에서 찾을 수 있습니다.

Node.js의 취약점을 제보하고 싶다면 security@nodejs.org로 연락해주세요.

보안 취약점, Node.js 보안 관련 릴리스, nodejs GitHub 조직 내부에서 유지보수 되는 프로젝트의 최신 정보를 알고 싶다면 적은 양으로 통지만 하는 nodejs-sec 메일링 리스트 https://groups.google.com/forum/#!forum/nodejs-sec를 구독해 주세요.