피드로 돌아가기
Node.js 0.10.29 (Stable)
Node.js BlogNode.js Blog
Backend

Node.js 0.10.29가 OpenSSL 1.0.1h 업그레이드와 UTF-8 검증 강화로 보안 취약점(CVE-2014-0224) 및 데이터 무결성 문제 해결

Node.js 0.10.29 (Stable)

2014년 6월 16일5intermediate

Context

기존 Node.js는 OpenSSL 1.0.1g 버전의 보안 취약점(CVE-2014-0224)을 포함하고 있었으며, 잘못된 UTF-8 시퀀스를 검증 없이 전송하여 클라이언트에서 데이터 파싱 오류를 유발할 수 있었다.

Technical Solution

  • OpenSSL을 1.0.1h로 업그레이드: CVE-2014-0224 보안 취약점 패치
  • UTF-8 검증 로직 추가: 짝이 맞지 않은 서로게이트 쌍을 미지정 UTF-8 문자로 교체
  • NODE_INVALID_UTF8 환경변수 제공: 이전 동작 방식 복구 옵션 제공
  • npm을 1.4.14로 업그레이드: 패키지 관리자 개선
  • child_process 모듈 예외 처리 개선: spawn() 메서드의 TypeError 발생 전에 args 설정 방지
  • constants 모듈 확장: O_NONBLOCK 플래그 export
  • crypto 모듈 메모리 사용 최적화: 메모리 사용량 감소
  • fs.readFile() 안정성 개선: fstat() 실패 시 파일 디스크립터 정상 종료
  • EventEmitter 프로토타입 메서드 명명: 디버깅 개선을 위해 프로토타입 메서드에 이름 지정
  • TLS 성능 개선: TLS 연결 처리 성능 최적화

Key Takeaway

마이너 버전 업그레이드에서도 보안 패치와 데이터 무결성 강화는 기존 동작 방식의 호환성 문제를 야기할 수 있으므로, 환경변수를 통한 레거시 지원과 명확한 변경사항 문서화가 필수이다.


Node.js

0.

1

0.x 버전을 운영 중인 팀에서는 CVE-2014-0224 보안 취약점으로 인한 리스크를 즉시 해결하기 위해

0.

1

0.29로 업그레이드해야 하며, UTF-8 검증 변경사항으로 인한 영향을 평가하기 위해 NODE_INVALID_UTF8 환경변수를 사용한 테스트를 선행해야 한다.

원문 읽기