피드로 돌아가기
Weekly Update - Sep 18th, 2015
Node.js BlogNode.js Blog
Backend

Node.js v4.1.1이 buffer 메모리 누수, HTTP 응답 분할 공격, 그리고 V8 디버깅 메타데이터를 수정하여 보안과 안정성 강화

Weekly Update - Sep 18th, 2015

2015년 9월 18일5intermediate

Context

Node.js v4.1.0에서 도입된 버그로 인해 길이 0인 buffer 할당 시 다음 TypedArray 할당이 zero-filled되지 않아 메모리 공간 재사용으로 인한 데이터 누수 위험이 발생했다. HTTP 응답의 trailing headers가 개행 문자로부터 보호되지 않아 응답 분할 공격 가능성이 있었다.

Technical Solution

  • buffer 할당 시 zero-fill 보장: v4.1.0에서 발생한 TypedArray zero-fill 미적용 버그 수정 (Trevor Norris #2931)
  • HTTP 응답 분할 공격 방어: response.addTrailers() 메서드의 값에서 [\r\n] 개행 문자 제거 (Ben Noordhuis #2945)
  • npm 2.14.3에서 2.14.4로 업그레이드: graceful-fs 의존성의 monkey-patching 제거 및 npm link pre-release/RC 빌드 수정 (Kat Marchán #2958)
  • V8 post-mortem 디버깅 메타데이터 확장: dictionary properties 사용 객체와 ScopeInfo/closures 검사 지원 추가 (Julien Gilli #2959, #2974)

Key Takeaway

Buffer 할당부터 HTTP 헤더 처리, 디버깅 인프라까지 다층적 보안 패치를 통해 메모리 안전성과 프로토콜 수준의 공격 방어를 동시에 확보할 수 있다.


Node.js를 운영 환경에서 사용하는 팀은 v

4.

1.0 대신 v

4.

1.1로 업그레이드하여 TypedArray 메모리 누수 위험을 즉시 제거하고, HTTP trailing headers를 사용하는 경우 응답 분할 공격 방어를 확보해야 한다.

원문 읽기