🇰🇷 한글 설명
OpenImageIO의 특정 버전에서 조작된 PSD 파일을 처리할 때 유효성 검사를 우회하여 메모리 경계 외 읽기(Out-of-bounds read)가 발생할 수 있습니다. 이로 인해 잘못된 메모리 할당이 유도되어 서비스 거부(DoS) 상태가 발생할 수 있습니다.
💡 쉬운 설명
이미지 파일을 읽는 프로그램이 특수하게 만들어진 가짜 PSD 파일을 열 때, 프로그램이 예상치 못한 메모리 영역을 읽으려다 멈춰버리는 문제입니다. 공격자가 이 파일을 보내면 프로그램이 강제로 종료될 수 있습니다.
🇺🇸 원문 (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 psd with an invalid color_mode bypasses normal validation when oiio:rawcolor or psd:rawdata is enabled. psdinput::setup() then uses the attacker-controlled value to index fixed color-mode tables, causing a global out-of-bounds read and potentially a bogus allocation, resulting in denial of service. The affected implementation is identified by src/psd.imageio/psdinput.cpp, PSDInput::validate_header(), PSDInput::setup(), oiio:RawColor, psd:RawData, color_mode, and mode_channel_count, 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 미만 버전
⚔️ 공격 벡터
조작된 color_mode 값을 포함한 PSD 파일을 OpenImageIO를 통해 처리하도록 유도
🛡️ 대응 방법
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