{"id":"CVE-2026-125201","kind":"vulnerability","aliases":["CVE-2026-125201"],"related":[],"title":"FFmpeg: crafted AV1 stream overflows heap during Vulkan decoding","description":"FFmpeg 7.0 before 8.1.3 and 9.x before 9.0.2 contains a heap out-of-bounds write vulnerability in vk_av1_decode_slice() in libavcodec/vulkan_av1.c because the tile-count limit is checked only on entry. Attackers can supply a crafted AV1 stream with more than 256 tiles decoded via the Vulkan hardware accelerator to overflow tile_sizes and corrupt heap memory.","summary":"FFmpeg's Vulkan AV1 decoder checks the tile-count limit only on entry, so a crafted AV1 stream with more than 256 tiles writes past a heap buffer. An attacker who gets a victim to decode such a file can corrupt heap memory, which may lead to code execution.","severity":"high","cvss":7.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ffmpeg","libavcodec","package","video-processing","vulkan"],"not_affected_if":["no-vulkan-av1-decoding","other-ffmpeg-versions","trusted-input-only"],"how_to_check":"- Run `ffmpeg -version` and compare against the fixed ranges: 7.0 before `8.1.3` and 9.x before `9.0.2`.\n- Check whether ffmpeg is built with Vulkan AV1 hardware decoding enabled (the vulkan_av1 decoder), since the flaw needs it.","fix":"- FFmpeg 7.0 through 8.1.x: move to `8.1.3`.\n- FFmpeg 9.x: move to `9.0.2`.","status":"open","published_at":"2026-11-09T19:16:56+00:00","first_seen_at":"2026-11-09T19:28:18+00:00","triaged_at":"2026-11-09T19:30:11+00:00","updated_at":"2026-11-09T19:30:11+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-09T19:30:11Z","model":"claude-haiku-5-5","output":{"fix":"- FFmpeg 7.0 through 8.1.x: move to `8.1.3`.\n- FFmpeg 9.x: move to `9.0.2`.","reach":"unknown","title":"FFmpeg: crafted AV1 stream overflows heap during Vulkan decoding","impact":"high","summary":"FFmpeg's Vulkan AV1 decoder checks the tile-count limit only on entry, so a crafted AV1 stream with more than 256 tiles writes past a heap buffer. An attacker who gets a victim to decode such a file can corrupt heap memory, which may lead to code execution.","audience":"developers","category":"package","nicknames":[],"who_cares":["ffmpeg","libavcodec","video-processing","vulkan"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Heap corruption in the decoder, possibly leading to code execution.","analyst_note":"","how_to_check":"- Run `ffmpeg -version` and compare against the fixed ranges: 7.0 before `8.1.3` and 9.x before `9.0.2`.\n- Check whether ffmpeg is built with Vulkan AV1 hardware decoding enabled (the vulkan_av1 decoder), since the flaw needs it.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["no-vulkan-av1-decoding","trusted-input-only","other-ffmpeg-versions"],"who_is_affected":"Only builds of FFmpeg 7.0 before 8.1.3 or 9.x before 9.0.2 that decode AV1 through the Vulkan hardware accelerator are exposed. Services that decode untrusted video uploads with that path are the main concern; software that uses FFmpeg for other codecs or without Vulkan can skip it.","user_interaction":"yes","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000796,"input_tokens":4659,"output_tokens":661,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-125201':12A,15A '-2026':11A,14A '256':45B,119C '7.0':74C '8.1.3':76C '9':78C '9.0.2':81C 'acceler':126C 'attack':53B,109C 'av1':3A,26B,40B,93C,114C 'bound':88C 'buffer':51B 'check':28B,105C 'code':71B 'contain':82C 'corrupt':64B,132C 'count':32B,102C 'craft':2A,39B,113C 'cve':10A,13A 'decod':9A,27B,59B,94C,121C 'entri':36B,108C 'execut':72B 'ffmpeg':1A,16B,23B,73C 'file':62B 'get':55B 'hardwar':125C 'heap':6A,50B,65B,84C,133C 'lead':69B 'libavcodec':17B 'libavcodec/vulkan_av1.c':97C 'limit':33B,103C 'may':68B 'memori':66B,134C 'out-of-bound':85C 'overflow':5A,128C 'packag':18B 'past':48B 'process':21B 'size':130C 'slice':95C 'stream':4A,41B,115C 'suppli':111C 'tile':31B,46B,101C,120C,129C 'tile-count':30B,100C 'via':122C 'victim':57B 'video':20B 'video-process':19B 'vk':92C 'vulkan':8A,22B,25B,124C 'vulner':90C 'write':47B,89C 'x':79C","nicknames":[],"mitigations":[],"who_affected":"Only builds of FFmpeg 7.0 before 8.1.3 or 9.x before 9.0.2 that decode AV1 through the Vulkan hardware accelerator are exposed. Services that decode untrusted video uploads with that path are the main concern; software that uses FFmpeg for other codecs or without Vulkan can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["ffmpeg","high","libavcodec","package","videoprocessing","vulkan"],"campaign_type":null,"search_a":"'-125201':12A,15A '-2026':11A,14A 'av1':3A 'craft':2A 'cve':10A,13A 'decod':9A 'ffmpeg':1A 'heap':6A 'overflow':5A 'stream':4A 'vulkan':8A","search_b":"'256':45B 'attack':53B 'av1':26B,40B 'buffer':51B 'check':28B 'code':71B 'corrupt':64B 'count':32B 'craft':39B 'decod':27B,59B 'entri':36B 'execut':72B 'ffmpeg':16B,23B 'file':62B 'get':55B 'heap':50B,65B 'lead':69B 'libavcodec':17B 'limit':33B 'may':68B 'memori':66B 'packag':18B 'past':48B 'process':21B 'stream':41B 'tile':31B,46B 'tile-count':30B 'victim':57B 'video':20B 'video-process':19B 'vulkan':22B,25B 'write':47B","search_c":"'256':119C '7.0':74C '8.1.3':76C '9':78C '9.0.2':81C 'acceler':126C 'attack':109C 'av1':93C,114C 'bound':88C 'check':105C 'contain':82C 'corrupt':132C 'count':102C 'craft':113C 'decod':94C,121C 'entri':108C 'ffmpeg':73C 'hardwar':125C 'heap':84C,133C 'libavcodec/vulkan_av1.c':97C 'limit':103C 'memori':134C 'out-of-bound':85C 'overflow':128C 'size':130C 'slice':95C 'stream':115C 'suppli':111C 'tile':101C,120C,129C 'tile-count':100C 'via':122C 'vk':92C 'vulkan':124C 'vulner':90C 'write':89C 'x':79C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T19:16:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/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-125201","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125201","severity":null,"published_at":"2026-11-09T19:16:56+00:00","modified_at":"2026-11-09T19:16:56+00:00","first_seen_at":"2026-11-09T19:28:18+00:00","fetched_at":"2026-11-09T19:28:18+00:00","note":null}],"documents":[{"id":109293,"url":"https://github.com/FFmpeg/FFmpeg/commit/d29ff884221042af219e53cc339a62356b061816","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109294,"url":"https://www.vulncheck.com/advisories/ffmpeg-7.0-before-8.1.3-and-9-x-before-9.0.2-heap-overflow-via-vulkan-av1-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"}