CVE-2020-6418 (Incorrect side effect modelling for JSCreate)
1-day
Background Map inference in v8 V8에서 map inference는 최적화 과정에서 object의 map, 즉 type을 추론하는 작업입니다. Object의 map은 runtime에 바뀔 수 있습니다. 예를 들어 다음과 같은 상황을 생각해볼 수 있습니다. [1, 2, 3]은 small integer들의 배열이므로, a의 map은 PACKED_SMI_ELEMENTS입니다. a[0]의 값을 1.1로 바꾸면 a는 더 이상 small integer들의 배열이 아니게 되고, 따라서 map도 바뀌어야 합니다. 이 경우에는 double형 상수들의 배열이므로 a의 새로운 map은 PACKED_DOUBLE_ELEMENTS가 됩니다. /* src/compiler/map-inference.h */ /..
CVE-2018-16069 (Floating-point precision errors in Swiftshader blitting)
1-day
Background Precision error 프로그래밍 언어에서 limited precision arithmetic operation을 수행할 때 precision error가 발생할 수 있습니다. 실존하는 수는 무한한데 컴퓨터는 제한된 공간에 2진수 형식으로 수를 저장하기 때문에, 실제 프로그래머가 의도한 값과 컴퓨터에 저장되는 값이 달라지는 현상입니다. 대표적인 precision error에는 integer overflow가 있습니다. 4바이트 크기의 int형 변수는 2 ** 32가지의 정수만 표현할 수 있는데, 표현 가능한 범위를 넘어가게 되면 overflow가 발생하여 실제 의도한 값과 다른 값이 저장됩니다. 이 글의 버그는 floating-point arithmetic operation에서의..
h0meb0dy_
'1-day' 카테고리의 글 목록 (3 Page)