피드로 돌아가기
Node.js 0.4.9
Node.js BlogNode.js Blog
Backend

Node.js가 0.4.9 버전으로 업그레이드하면서 stream.pipe() 버그 수정, 암호화 관련 메모리 누수 제거, SSL/TLS 보안 강화를 동시에 구현

Node.js 0.4.9

2011년 6월 29일4intermediate

Context

Node.js 0.4.x 버전에서 스트림 처리, 메모리 관리, 암호화 기능에 여러 버그와 보안 취약점이 발견되었다.

Technical Solution

  • stream.pipe() 함수의 오류 처리 버그 수정
  • node_crypto.cc에서 발생하는 메모리 누수 제거 (Ben Noordhuis)
  • file:// URL 파싱 방식 개선으로 올바른 경로 처리 구현
  • SSLv2 비활성화 옵션 추가로 구형 SSL 프로토콜 제어 가능하게 변경
  • RSA/DSA 공개키를 이용한 서명 검증 기능 추가
  • fs.sendfileSync에 누락된 scope.Close 호출 추가
  • HTTP 헤더 중 'link' 헤더 복수 지원
  • -e/--eval 플래그로 실행되는 코드에서 node_modules 모듈 로딩 가능하도록 수정
  • node_modules 조회 최적화 제거로 중첩된 프로젝트 구조 지원 개선
  • V8 엔진을 3.1.8.25로 업그레이드
  • http-parser 업그레이드

Key Takeaway

암호화 기능과 스트림 처리라는 핵심 모듈의 안정성 향상과 보안 옵션 확대가 프로덕션 환경에서 안정적인 Node.js 애플리케이션 운영을 가능하게 하는 필수 조건이다.


Node.js 기반 파일 스트리밍 서비스를 운영하는 팀은 stream.pipe()의 오류 처리 로직을 재검토하고, SSL/TLS 연결을 사용할 때 SSLv2 비활성화 옵션을 명시적으로 활성화하여 프로토콜 다운그레이드 공격을 차단할 수 있다.

원문 읽기