피드로 돌아가기
August 2018 Security Releases
Node.js BlogNode.js Blog
Security

Node.js가 OpenSSL 업그레이드와 4개 보안 취약점 패치로 모든 활성 릴리스 라인의 원격/로컬 공격 벡터 차단

August 2018 Security Releases

2018년 8월 11일6intermediate

Context

Node.js 6.x(LTS "Boron"), 8.x(LTS "Carbon"), 10.x(Current) 릴리스 라인에서 OpenSSL 라이브러리와 Buffer 처리 로직의 4개 보안 취약점이 발견되었다. 이 취약점들은 DoS 공격, 암호키 추출, 초기화되지 않은 메모리 노출, 버퍼 오버플로우를 야기할 수 있다.

Technical Solution

  • OpenSSL 1.1.0i(Node.js 10) 및 1.0.2p(Node.js 6, 8) 업그레이드: DH/DHE 핸드셰이크 중 대규모 소수 전송으로 인한 클라이언트 DoS 공격 차단(CVE-2018-0732)
  • Buffer.alloc() 제3 인자 검증 강화: 인코딩 파라미터가 숫자로 오용되어 초기화되지 않은 메모리 반환하는 결함 수정(CVE-2018-7166, Node.js 10 영향)
  • Buffer#write() UCS-2 인코딩 경계 검사 개선: 버퍼 끝에서 두 번째 위치부터의 쓰기 시 범위 계산 오류로 인한 OOB 쓰기 차단(CVE-2018-12115)
  • ECDSA 서명 생성 시 캐시 타이밍 공격 완화: 로컬 부채널을 통한 개인키 추출 시도 방어(CVE 미할당, Node.js 6, 8, 10 영향)
  • RSA 키 생성 기능 미노출: Node.js는 RSA 키 생성 취약점(CVE-2018-0733)에 영향받지 않음

Key Takeaway

2018년 8월 15일 기준 모든 활성 Node.js 릴리스 라인에 대한 보안 업데이트 릴리스는 하위 의존성(OpenSSL) 업그레이드와 프로덕션 코드의 입력 검증 강화를 동시에 필요로 하며, 각 릴리스별 취약점 영향 범위를 정확히 파악하고 적용해야 한다.


Node.js 6/8/10 버전을 운영 중인 팀은 2018년 8월 15일 이후 릴리스된 버전으로 즉시 업그레이드해야 하며, 특히 TLS 통신을 다루거나 사용자 입력 기반 Buffer 할당을 하는 애플리케이션은 CVE-2018-0732, CVE-2018-7166, CVE-2018-12115의 영향을 우선 점검해야 한다. nodejs-sec 메일링 리스트 구독으로 향후 보안 취약점 공지를 실시간 수신할 수 있다.

원문 읽기