🇰🇷 한글 설명
OpenImageIO 라이브러리에서 조작된 Cineon 이미지 파일을 처리할 때 발생하는 힙 기반 경계 외 쓰기(Out-of-bounds write) 취약점입니다. 지원되지 않는 26비트 컴포넌트 비트 깊이를 처리하는 과정에서 메모리 오염이 발생하여 시스템의 안정성을 해칠 수 있습니다.
💡 쉬운 설명
특수하게 제작된 이미지 파일을 열 때 프로그램이 정해진 메모리 범위를 벗어나 데이터를 저장하는 오류입니다. 이로 인해 프로그램이 강제로 종료되거나 해커가 시스템을 제어할 위험이 있습니다.
🇺🇸 원문 (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.21.0, 3.1.16.0, and 3.2.0.3-beta1, A crafted cineon image can declare unsupported component bit depth 26. cineoninput::open() maps it to a 32-bit imagespec, but libcineon maps the unsupported depth to an 8-byte value, so cineoninput::read_native_scanline() causes attacker-controlled data to be written beyond the 4-byte-per-pixel caller buffer, resulting in a heap out-of-bounds write and memory corruption. The affected implementation is identified by src/cineon.imageio/cineoninput.cpp, CineonInput::open(), CineonInput::read_native_scanline(), ComponentDataSize(), bit depth 26, and ImageSpec, which define the relevant source path, functions, state, and trigger. This issue is fixed in versions 3.0.21.0, 3.1.16.0, and 3.2.0.3-beta1.
📍 영향받는 시스템
OpenImageIO 3.0.21.0, 3.1.16.0, 3.2.0.3-beta1 미만 버전
⚔️ 공격 벡터
조작된 비트 깊이(26비트)를 포함한 Cineon 이미지 파일을 소프트웨어로 읽어들이는 방식
🛡️ 대응 방법
OpenImageIO를 최신 수정 버전(3.0.21.0, 3.1.16.0, 3.2.0.3-beta1 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 취약한 버전 범위(3.0.21.0, 3.1.16.0, 3.2.0.3-beta1 미만)에 해당하는지 확인합니다.
dpkg -l | grep openimageio 2>/dev/null || rpm -q openimageio 2>/dev/null || brew list --versions openimageio