{"id":"CVE-2026-125104","kind":"vulnerability","aliases":["CVE-2026-125104"],"related":[],"title":"FFmpeg: crafted legacy APE audio file exhausts memory, denial of service","description":"FFmpeg through 9.0.2 contains a memory exhaustion vulnerability in ape_decode_frame() in libavcodec/apedec.c that fails to enforce the 73728-sample limit for legacy APE frames. Attackers can supply a crafted legacy Monkey's Audio file declaring an enormous nblocks value to force gigabyte-scale allocations and cause denial of service.","summary":"FFmpeg's APE (Monkey's Audio) decoder fails to enforce the 73728-sample limit for legacy APE frames. A crafted file declaring a huge block count forces gigabyte-scale allocations and crashes the process.","severity":"medium","cvss":6.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"FFmpeg","fixed":[],"affected":"","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["ffmpeg","media-processing","runtime","transcoding"],"not_affected_if":["no-ape-decoding","no-untrusted-audio"],"how_to_check":"- Run `ffmpeg -version` and compare against the fixed release in the sources.\n- Check whether your pipeline decodes untrusted APE files (Monkey's Audio), since that is the only trigger path described.","fix":null,"status":"open","published_at":"2026-11-09T19:16:51+00:00","first_seen_at":"2026-11-09T19:28:16+00:00","triaged_at":"2026-11-09T19:31:39+00:00","updated_at":"2026-11-09T19:31:39+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-09T19:31:39Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"FFmpeg: crafted legacy APE audio file exhausts memory, denial of service","impact":"low","summary":"FFmpeg's APE (Monkey's Audio) decoder fails to enforce the 73728-sample limit for legacy APE frames. A crafted file declaring a huge block count forces gigabyte-scale allocations and crashes the process.","audience":"developers","category":"runtime","nicknames":[],"who_cares":["ffmpeg","media-processing","transcoding"],"confidence":0.6,"fix_status":"unknown","needs_auth":"no","worst_case":"Process crashes or exhausts memory, causing denial of service.","analyst_note":"Confirm the fixed version and patch commit from the linked GitHub fix and the VulnCheck advisory, and whether non-legacy APE frames are affected.","how_to_check":"- Run `ffmpeg -version` and compare against the fixed release in the sources.\n- Check whether your pipeline decodes untrusted APE files (Monkey's Audio), since that is the only trigger path described.","plain_action":"","product_name":"FFmpeg","needs_analyst":true,"not_affected_if":["no-untrusted-audio","no-ape-decoding"],"who_is_affected":"Systems that run FFmpeg's decoder on untrusted media files, such as upload-processing or transcoding services. Sources do not list affected version ranges beyond 'through 9.0.2' or name a fixed release. Teams that never decode APE files from outside sources are less exposed.","user_interaction":"unknown","product_ecosystem":"vendor","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000759,"input_tokens":4635,"output_tokens":591,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-125104':14A,17A '-2026':13A,16A '73728':36B,79C '9.0.2':62C 'alloc':55B,106C 'ape':4A,27B,41B,69C,84C 'attack':86C 'audio':5A,30B,94C 'block':49B 'caus':108C 'contain':63C 'count':50B 'craft':2A,44B,90C 'crash':57B 'cve':12A,15A 'declar':46B,96C 'decod':31B,70C 'denial':9A,109C 'enforc':34B,77C 'enorm':98C 'exhaust':7A,66C 'fail':32B,75C 'ffmpeg':1A,18A,19B,25B,60C 'file':6A,45B,95C 'forc':51B,102C 'frame':42B,71C,85C 'gigabyt':53B,104C 'gigabyte-scal':52B,103C 'huge':48B 'legaci':3A,40B,83C,91C 'libavcodec/apedec.c':73C 'limit':38B,81C 'media':21B 'media-process':20B 'memori':8A,65C 'monkey':28B,92C 'nblock':99C 'process':22B,59B 'runtim':23B 'sampl':37B,80C 'scale':54B,105C 'servic':11A,111C 'suppli':88C 'transcod':24B 'valu':100C 'vulner':67C","nicknames":[],"mitigations":[],"who_affected":"Systems that run FFmpeg's decoder on untrusted media files, such as upload-processing or transcoding services. Sources do not list affected version ranges beyond 'through 9.0.2' or name a fixed release. Teams that never decode APE files from outside sources are less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":["ffmpeg"],"ptokens":["ffmpeg"],"labels":["ffmpeg","mediaprocessing","medium","runtime","transcoding","vendor"],"campaign_type":null,"search_a":"'-125104':14A,17A '-2026':13A,16A 'ape':4A 'audio':5A 'craft':2A 'cve':12A,15A 'denial':9A 'exhaust':7A 'ffmpeg':1A,18A 'file':6A 'legaci':3A 'memori':8A 'servic':11A","search_b":"'73728':36B 'alloc':55B 'ape':27B,41B 'audio':30B 'block':49B 'count':50B 'craft':44B 'crash':57B 'declar':46B 'decod':31B 'enforc':34B 'fail':32B 'ffmpeg':19B,25B 'file':45B 'forc':51B 'frame':42B 'gigabyt':53B 'gigabyte-scal':52B 'huge':48B 'legaci':40B 'limit':38B 'media':21B 'media-process':20B 'monkey':28B 'process':22B,59B 'runtim':23B 'sampl':37B 'scale':54B 'transcod':24B","search_c":"'73728':79C '9.0.2':62C 'alloc':106C 'ape':69C,84C 'attack':86C 'audio':94C 'caus':108C 'contain':63C 'craft':90C 'declar':96C 'decod':70C 'denial':109C 'enforc':77C 'enorm':98C 'exhaust':66C 'fail':75C 'ffmpeg':60C 'file':95C 'forc':102C 'frame':71C,85C 'gigabyt':104C 'gigabyte-scal':103C 'legaci':83C,91C 'libavcodec/apedec.c':73C 'limit':81C 'memori':65C 'monkey':92C 'nblock':99C 'sampl':80C 'scale':105C 'servic':111C 'suppli':88C 'valu':100C 'vulner':67C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T19:16:51+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-125104","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125104","severity":null,"published_at":"2026-11-09T19:16:51+00:00","modified_at":"2026-11-09T19:16:51+00:00","first_seen_at":"2026-11-09T19:28:16+00:00","fetched_at":"2026-11-09T19:28:16+00:00","note":null}],"documents":[{"id":109225,"url":"https://github.com/FFmpeg/FFmpeg/commit/968e9e948ed8c9ba90dbc875e60b843c755cf4ba","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109226,"url":"https://www.vulncheck.com/advisories/ffmpeg-through-9.0.2-memory-exhaustion-dos-via-ape-decoder-apedec-c","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}