V8 런타임이 나의 constant-time JavaScript 라이브러리를 무너뜨렸다
The V8 JavaScript Runtime Undermined My Constant-Time JavaScript Library

6년 전 작성한 constant-time-js 라이브러리에서 Yayu Wang이 사이드채널을 발견했다. V8의 ToBoolean 처리와 -0 처리 방식 때문에 select, select_alt, select_ints 함수가 비밀 의존적 캐시 접근을 일으킨 것이다. 저자는 boolean 타입과 부정-마스킹을 완전히 배제하는 패치를 작성해 0.5.0 버전을 공개하고 CVE를 요청했다. AI 취약점 사냥 시대에 실제 보고를 검증하는 과정과 V8 내부 동작을 파헤친다.
실행된 명령어 트레이스만으로는 해당 연산이 constant-time이라고 잘못 분류할 수 있다. 명령어 주소와 데이터 주소를 모두 고려해야 한다.