🇰🇷 한글 설명
FFmpeg 9.0.2 이하 버전의 libavcodec/v4l2_buffers.c 파일에 있는 v4l2_buffer_swframe_to_buf() 함수에서 음수 linesize를 가진 프레임을 잘못 처리하여 힙 영역 범위 밖 읽기(out-of-bounds read) 취약점이 존재합니다. 공격자는 bottom-up 방식의 AVI 또는 PNM/PFM 파일을 조작해 V4L2 M2M 인코더로 변환되도록 하여 애플리케이션 충돌을 일으키거나 힙 메모리 내용이 인코딩 결과물로 유출되게 할 수 있습니다.
💡 쉬운 설명
동영상이나 이미지를 변환하는 FFmpeg 프로그램에서 특별히 조작된 파일을 처리하면 프로그램이 멈추거나 메모리 내용이 밖으로 새어 나갈 수 있습니다. 신뢰할 수 없는 출처의 미디어 파일을 변환할 때 특히 주의가 필요합니다.
🇺🇸 원문 (English)
FFmpeg through 9.0.2 contains a heap out-of-bounds read vulnerability in v4l2_buffer_swframe_to_buf() in libavcodec/v4l2_buffers.c that mishandles frames with negative linesize. Attackers can supply bottom-up AVI or PNM/PFM files that are transcoded to a V4L2 M2M encoder, crashing the application or leaking heap memory into encoded output.
📍 영향받는 시스템
FFmpeg 9.0.2 이하 버전 (V4L2 M2M 인코더 기능을 사용하는 Linux 환경)
⚔️ 공격 벡터
악성적으로 조작된 bottom-up AVI 또는 PNM/PFM 미디어 파일을 FFmpeg로 변환하게 하여 메모리 읽기 오류를 유발
🛡️ 대응 방법
FFmpeg를 취약점이 수정된 최신 버전으로 업데이트하고, 신뢰할 수 없는 미디어 파일 처리를 피하거나 샌드박스 환경에서 실행
🔧 검증 코드
출력된 버전 번호가 9.0.2 이하이면 취약 가능성이 있으므로 배포판 보안 공지나 FFmpeg 공식 업데이트 여부를 확인해야 하며, 명령이 실패하면 FFmpeg가 설치되어 있지 않은 것입니다.
ffmpeg -version 2>/dev/null | head -n 1