AI 요약
Chrome 148부터 Math.tanh() 함수가 OS별로 다른 비트 값을 반환하여 브라우저 핑거프린팅에 활용될 수 있게 되었습니다. 이는 V8 엔진이 자체 fdlibm 포트 대신 OS의 기본 수학 라이브러리(libm)를 사용하도록 변경되었기 때문입니다. Linux(glibc), macOS(libsystem_m), Windows(UCRT)는 각각 다른 수학 라이브러리를 사용하며, 약 25%의 입력값에서 1 ULP(Unit in the Last Place) 차이로 다른 결과를 냅니다. Chrome 147 이하 버전에서는 이 취약점이 존재하지 않았습니다.
핵심 포인트
- Chrome 148부터 V8이
std::tanh를 사용하면서 OS별 수학 라이브러리 차이 노출 - Linux, macOS, Windows 세 OS가
Math.tanh(0.8)에서 각각 다른 비트 값 반환 - IEEE 754는 sin, cos, tanh 등의 정확한 반올림을 요구하지 않아 각 OS가 다른 구현 사용
- Chrome 147 이하에서는 V8이 자체 fdlibm 포트를 사용하여 동일한 값 반환
향후 전망
- 브라우저 핑거프린팅 방어 기술이 수학 함수 레벨까지 확장될 필요성 대두
- V8이나 다른 엔진이 OS 수학 라이브러리 의존성을 줄이는 방향으로 개선될 가능성
출처:Scrapfly
