피드로 돌아가기
HTTP Server Security Vulnerability: Please upgrade to 0.6.17
Node.js BlogNode.js Blog
Security

Node.js가 HTTP 파서의 StringPtr::Update 함수의 경계 검사 오류를 수정해 원격 공격자의 정보 유출 취약점 제거

HTTP Server Security Vulnerability: Please upgrade to 0.6.17

2012년 5월 7일7intermediate

Context

Node.js HTTP 파서의 StringPtr::Update 함수에서 현재 문자열 크기를 확인할 때 "size" 변수를 사용해야 하는 부분에서 "size_" 변수를 잘못 사용하고 있었다. 이로 인해 공격자가 특정 길이의 문자열로 Update를 호출할 때 의도하지 않은 데이터가 현재 문자열에 추가되는 문제가 발생했다.

Technical Solution

  • HTTP 파서의 경계 검사 오류 수정: node_http_parser.cc 라인 151에서 "size_"를 올바르게 사용하도록 변수 참조 개선
  • 0-길이 문자열 처리 강화: StringPtr::Save 함수가 0-길이 문자열에 대해서도 힙 기반 문자열로 변환하도록 수정
  • 공격 벡터 차단: HTTP 헤더의 빈 값 이후 특정 길이의 연속 값을 이용한 경계 넘침 공격 차단

Key Takeaway

버퍼 경계 검사에서 사용하는 변수의 정확성이 보안에 미치는 영향은 매우 크므로, 메모리 최적화 코드에서는 특히 변수 참조의 일관성을 철저히 검증해야 한다.


Node.js

0.5/

0.6 브랜치를 사용하는 프로덕션 환경에서는 즉시 v

0.

6.17 이상으로 업그레이드하거나 커밋 c9a231d의 패치를 적용해야 한다.

원문 읽기