🇰🇷 한글 설명
Tesseract는 오픈소스 OCR 엔진입니다. 5.5.4 이전 버전에서는 traineddata LSTM 네트워크의 모드 바이트를 신뢰하여 kDoubleFlag가 꺼져 있으면 WeightMatrix::DeSerializeOld를 호출하며, 기본 FAST_FLOAT 빌드에서는 이 함수가 오류를 반환하지 않고 ASSERT_HOST를 실행해 프로세스가 종료됩니다. 따라서 조작된 모델을 TessBaseAPI::Init으로 로드하면 서비스 거부(DoS)가 발생할 수 있으며, 5.5.4 버전에서 수정되었습니다.
💡 쉬운 설명
문자 인식(OCR) 프로그램이 특정 조작된 학습 데이터 파일을 읽을 때 갑자기 멈춰버리는 문제입니다. 공격자가 이런 파일을 제공하면 해당 프로그램이 중단되어 서비스가 동작하지 않게 됩니다.
🇺🇸 원문 (English)
Tesseract is an open source OCR engine. Prior to 5.5.4, WeightMatrix::DeSerialize trusts a mode byte from a traineddata LSTM network and calls WeightMatrix::DeSerializeOld when kDoubleFlag is clear. In default FAST_FLOAT builds, DeSerializeOld invokes ASSERT_HOST instead of returning an error, so loading a crafted model through TessBaseAPI::Init terminates the process and causes denial of service. This issue is fixed in version 5.5.4.
📍 영향받는 시스템
Tesseract OCR 5.5.4 미만 버전 (기본 FAST_FLOAT 빌드)
⚔️ 공격 벡터
조작된 traineddata 모델 파일을 생성해 애플리케이션이 TessBaseAPI::Init으로 로드하도록 유도하여 프로세스를 강제 종료
🛡️ 대응 방법
Tesseract를 5.5.4 이상 버전으로 업데이트하고, 신뢰할 수 없는 traineddata 파일 로드를 차단
🔧 검증 코드
출력된 버전이 5.5.4 미만이면 취약하며, 5.5.4 이상이면 패치가 적용된 것입니다.
tesseract --version 2>/dev/null | head -1