🇰🇷 한글 설명
OpenImageIO의 Cineon 파일 처리 과정에서 numberofelements 값이 최대 허용치인 8을 초과할 수 있는 취약점이 발견되었습니다. 이로 인해 cineoninput::open() 함수가 스택 버퍼를 초과하여 데이터를 기록함으로써 메모리 오염 및 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
특수하게 제작된 이미지 파일을 열 때 프로그램이 정해진 메모리 공간보다 더 많은 데이터를 쓰려고 시도하여 오류가 발생하는 문제입니다. 이로 인해 프로그램이 갑자기 종료되거나 시스템이 불안정해질 수 있습니다.
🇺🇸 원문 (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, A crafted cineon file can supply a numberofelements value greater than the format maximum of eight. cineoninput::open() uses that unchecked value as the loop bound while filling the fixed strings[8] array, writing pointers beyond the stack buffer and into adjacent state, resulting in memory corruption and denial of service. The affected implementation is identified by src/cineon.imageio/cineoninput.cpp, CineonInput::open(), numberOfElements, and strings[8], 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 미만 버전
⚔️ 공격 벡터
조작된 Cineon 이미지 파일을 시스템에 입력하여 메모리 오염 유도
🛡️ 대응 방법
OpenImageIO를 3.0.20.0, 3.1.15.0 또는 3.2.0.3-beta1 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 OpenImageIO의 버전을 확인하여 취약한 버전(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