FFmpeg의 Sony PS2 VPK 디먹서에서 21바이트 입력으로 재현되는 0 나누기 버그가 발견돼, 악성 .vpk 파일이나 스트림을 여는 애플리케이션이 충돌할 수 있음 vpk_read_packet이 마지막 오디오 블록의 size와 skip을 계산할 때 채널 수가 0인지 검사하지 않아 SIGFPE가 발생함 vpk_read_header에 채널 수 검증이 있지만, 퍼저의 사용자 정의 AVIO 경로에서는 프로브·헤더 데이터와 패킷 데이터가 달라 검사를 통과한 뒤 채널 수가 다시 0이 될 수 있음 퍼저는 495,211회 실행, 10시간 43분 만에 결함을 찾았으며 충돌은 결정론적이지만 메모리 손상이나 임의 읽기·쓰기는 없어 Medium 등급의 서비스 거부(DoS) 문제로 평가됨 vpk_read_packet 진입 시 채널 수를 다시 검사해 AVERROR_INVALIDDATA를 반환하고, 회귀 테스트에서 av_read_frame의 반환값이 -22인지 확인할 수 있음 0 나누기가 발생하는 코드 결함은 Sony PS2 VPK 컨테이너의 오디오 블록을 처리하는 libavformat/vpk.c:89에 있음 vpk_read_packet은 스트림의 마지막 블록에서 다음 두 값을 채널 수로 나눔 size: vpk->last_block_size / par->ch_layout.nb_channels skip: (par->block_align - vpk->last_block_size) / par->ch_layout.nb_channels par->ch_layout.nb_channels가 0이면 CPU에서 정수 0 나누기 예외인 SIGFPE가 발생함 검사를 우회해 충돌에 도달하는 과정 vpk_probe가 빅엔디언 VPK 매직을 인식해 입력을 VPK 디먹서에 할당함 vpk_read_header는 24바이트 헤더를 파싱하며, 퍼징 입력은 0x0e–0x11 바이트의 nb_channels를 0으로 설정함 헤더 처리에는 nb_channels > 0 검증이 이미 있지만, 사용자 정의 AVIO 경로에서는 프로브·헤더 데이터와 이후 패킷 데이터가 달라질 수 있음 vpk->last_block_size와 vpk->block_count는 유효한 채널 수가 있는 프로브 데이터로 계산됨 vpk_read_packet 실행 시 원래 퍼징 스트림에서 가져온 par->ch_layout.nb_channels가 다시 0이 ...
바이브코딩으로 만든 퍼저가 FFmpeg의 0 나누기 버그를 발견
1 month ago
30
Related
Show GN: 이메일 피싱 모의훈련을 전화로 옮겼습니다. 예고 없는 전화
1 hour ago
2
토론토 기반 VPN 업체, 적법 접근 법안으로 캐나다 떠날 계획
1 hour ago
2
Claude Code의 메시지 제안 기능: 진짜 고객은 모델이라는 생각
2 hours ago
3
Show GN: 추천링크·UTM으로 오프라인 소개의 성과를 추적하는 구조
3 hours ago
3
소프트웨어 팩토리 패턴 시도하기
4 hours ago
3
Show GN: 웹 변경 모니터링하는 크롬 확장프로그램
4 hours ago
3
OpenAI, 확률·선택지·점수를 반환하는 Decisions API 공개 베타 시작
5 hours ago
3
Tips
click
Popular
프로들도 줄지어 샷 점검… KLPGA 스타 사랑방 된 더헤븐CC 연습장
2 weeks ago
73
iOS 27, iPadOS 27, macOS 27
3 weeks ago
69
손흥민 선제골 발판·골대 불운…LAFC, 7경기 만에 승리
3 weeks ago
65
영림원소프트랩, 나람 통합 ERP 구축…사료 제조·물류·회계 데이터 하나로
2 weeks ago
62
'이 악문' 김영범, 자유형 50m '대회 신기록' 금메달
2 weeks ago
55
© Clint IT 2026. All rights are reserved









English (US) ·