🇰🇷 한글 설명
OpenImageIO의 IFF 이미지 처리 과정에서 z-buffer가 포함된 16비트 비압축 IFF 파일을 읽을 때 메모리 할당 크기와 복사 크기가 일치하지 않는 취약점이 존재합니다. 이로 인해 힙 버퍼 범위를 초과하는 메모리 복사가 발생하여 프로그램이 충돌하거나 인접한 힙 데이터가 유출될 수 있습니다.
💡 쉬운 설명
특수한 이미지 파일을 열 때 프로그램이 필요한 것보다 적은 메모리 공간만 준비하여, 넘치는 데이터를 복사하다가 오류가 나거나 다른 중요한 정보가 새 나갈 수 있는 문제입니다. 이미지 파일을 처리하는 도구가 잘못된 계산을 하여 발생하는 실수입니다.
🇺🇸 원문 (English)
OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation. Prior to 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1, An uncompressed 16-bit iff image with a z-buffer makes iffinput::readimg() allocate a temporary scanline from m_header.rgba_count but copy from it using m_header.pixel_bytes(), whose stride also includes z-buffer bytes. the oversized memcpy reads beyond the temporary heap buffer and copies adjacent memory into the output image, resulting in a crash or disclosure of adjacent heap data. The affected implementation is identified by src/iff.imageio/iffinput.cpp, IffInput::readimg(), m_header.rgba_count, and m_header.pixel_bytes(), which define the relevant source path, functions, state, and trigger. This issue is fixed in versions 3.0.20.0, 3.1.15.0, and 3.2.0.3-beta1.
📍 영향받는 시스템
OpenImageIO 3.0.20.0, 3.1.15.0, 3.2.0.3-beta1 미만 버전
⚔️ 공격 벡터
z-buffer가 포함된 조작된 16비트 비압축 IFF 이미지 파일을 OpenImageIO를 통해 읽어들임
🛡️ 대응 방법
OpenImageIO를 3.0.20.0, 3.1.15.0 또는 3.2.0.3-beta1 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위(3.0.20.0, 3.1.15.0, 3.2.0.3-beta1 미만)에 해당하는지 확인합니다.
dpkg -l | grep openimageio 2>/dev/null || rpm -q openimageio 2>/dev/null || brew list --versions openimageio