libsixel은 kmiya의 sixel에서 파생된 SIXEL 인코더/디코더 구현입니다. 1.8.7-r1부터 SIXEL 파서의 이미지 버퍼 배가 루프의 부호 있는 정수 오버플로로 인해 sixel_decode_raw_impl에서 범위를 벗어난 힙 쓰기가 발생할 수 있습니다. context->pos_x는 상한 확인 없이 6자마다 반복 개수만큼 증가합니다. pos_x가 INT_MAX에 접근하면 이미지 버퍼 크기를 지정하는 데 사용되는 "pos_x + Repeat_count" 표현식이 signed int를 오버플로합니다. 오버플로가 어떻게 래핑되는지에 따라 크기 조정 체
libsixel은 kmiya의 sixel에서 파생된 SIXEL 인코더/디코더 구현입니다. 1.8.7-r1부터 SIXEL 파서의 이미지 버퍼 배가 루프의 부호 있는 정수 오버플로로 인해 sixel_decode_raw_impl에서 범위를 벗어난 힙 쓰기가 발생할 수 있습니다. context->pos_x는 상한 확인 없이 6자마다 반복 개수만큼 증가합니다. pos_x가 INT_MAX에 접근하면 이미지 버퍼 크기를 지정하는 데 사용되는 "pos_x + Repeat_count" 표현식이 signed int를 오버플로합니다. 오버플로가 어떻게 래핑되는지에 따라 크기가 큰 버퍼를 거부해야 하는 크기 조정 검사를 우회할 수 있으며, 이후 후속 쓰기에서는 공격자의 영향을 받은 큰 오프셋을 이미지->데이터로 계산하고 할당을 지나서 씁니다. img2sixel을 포함하여 공격자가 제공한 SIXEL 데이터를 디코딩하는 모든 호출자로부터 접근 가능합니다. 이 취약점은 1.8.7-r2에서 수정되었습니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 71.00 |
| 악용 신호(PoC 존재) | ×1.20 |
| VPI | 85.20 |
VPI 공식 vpi-v1 기준