🇰🇷 한글 설명
ImageSharp 2D 그래픽 라이브러리의 ICC LUT16 변환 과정에서 출력 채널이 4개를 초과할 경우 메모리 오염이 발생할 수 있는 취약점입니다. 악의적으로 조작된 프로필이 포함된 이미지를 처리할 때 프로세스가 종료되거나 메모리가 손상될 수 있습니다.
💡 쉬운 설명
이미지 파일 안에 숨겨진 잘못된 색상 정보를 처리하다가 컴퓨터의 메모리 영역을 침범하는 오류입니다. 이로 인해 프로그램이 갑자기 꺼지거나 시스템에 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
ImageSharp is a 2D graphics library. From 4.0.0 until 4.1.2, ICC LUT16 conversion accepts more than four output channels even though ClutCalculator.Calculate and LutEntryCalculator.CalculateLut store intermediate and output values in Vector4. When DecoderOptions.ColorProfileHandling is set to Convert, a malformed embedded profile can direct interpolation and output-LUT operations to write one float per declared channel beyond the four-float destination. This can corrupt memory and terminate the process; the default Preserve mode does not run ICC conversion. This issue is fixed in version 4.1.2.
📍 영향받는 시스템
ImageSharp 버전 4.0.0 ~ 4.1.2
⚔️ 공격 벡터
악의적으로 조작된 ICC 프로필이 포함된 이미지 파일을 업로드하거나 처리하도록 유도
🛡️ 대응 방법
ImageSharp 라이브러리를 최신 버전인 4.1.2 이상으로 업데이트
🔧 검증 코드
출력된 ImageSharp의 버전이 4.1.2 미만인지 확인
dotnet list package | grep ImageSharp