CveTest
Node.JS V0.10.31 v8 backport CVE-2013-6668 충돌을 재현하는 테스트 케이스입니다.
테스트는 "SQLDB" 데이터베이스의 "Table1" 테이블에서 데이터를 검색하기 위해 SQL 저장 프로시저("GetSomething")를 호출합니다. 동일한 호출을 여러 번 수행한 후 52개 이상의 행이 반환되면 충돌이 발생합니다.
환경
- Windows 7 64비트
- MS SQL 2005
- Node.JS V0.10.31 x64
- tedious node module V1.4.3 또는 이전
다양한 Node 버전에서의 테스트
- 릴리스 모드 Node: 스크립트가 명시적 오류 출력 없이 예기치 않게 종료됩니다.
- 디버그 모드 Node: 어설션 및 스택 추적이 얻어집니다.
- Node.JS Issue #8208에서 제안된 임시 패치를 적용한 디버그 모드 Node: 여전히 위와 같이 충돌 발생.
- 릴리스 모드는 정상.
- 발견된 어설션은 DEBUG 빌드에서만 사용 가능한 HInstruction::Verify()에 있습니다. 따라서 대체 릴리스 빌드 코드는 CVE 패치의 영향을 받지 않는 것으로 보입니다.
- V0.10.30의 deps/v8을 사용하는 Node V0.10.31: 충돌 없음, 정상 작동.
따라서 문제를 일으키는 것은 v8 backport CVE-2013-6668 패치인 것으로 보입니다.
관련 가능성