FFmpeg에서 21바이트 입력으로 SIGFPE를 유발하는 제로 나눗셈 버그 발견
We found a division by zero bug in FFmpeg with a vibecoded fuzzer
FFmpeg의 VPK 디먹서(libavformat/vpk.c)에서 정수 나눗셈 오류가 발견되었습니다. 악의적으로 조작된 21바이트 입력이 `vpk_read_packet` 함수에서 `nb_channels`가 0인 상태로 나눗셈을 수행하여 SIGFPE를 발생시킵니다. 이 버그는 FFmpeg 기반의 모든 애플리케이션에서 서비스 거부(DoS)를 유발할 수 있습니다. 원인은 `vpk_read_header`에서 채널 수를 검증하지만, 퍼저의 사용자 정의 AVIO 경로에서 프로브 데이터와 패킷 읽기 데이터가 분기되어 검증을 우회하기 때문입니다. 제안된 수정은 `vpk_read_packet` 시작 부분에 채널 수가 0인 경우 오류를 반환하는 가드를 추가하는 것입니다.
악의적으로 조작된 21바이트 입력이 FFmpeg 기반의 모든 애플리케이션에서 서비스 거부(DoS)를 유발할 수 있습니다.