{"id":"CVE-2026-125238","kind":"vulnerability","aliases":["CVE-2026-125238"],"related":[],"title":"FFmpeg: crafted EVC file triggers assertion and aborts decoding","description":"FFmpeg through 9.0.2 contains a reachable assertion vulnerability in libxevd_receive_frame() in libavcodec/libxevd.c that returns success when an access unit produces no frame. Attackers can supply a crafted EVC file with truncated or picture-less access units to trigger the av_assert0() on frame->private_ref, aborting any decoding application.","summary":"FFmpeg's libxevd decoder hits an av_assert0() when an EVC file has truncated or picture-less access units, because it returns success without producing a frame. An attacker who supplies such a file makes any application decoding it abort.","severity":"medium","cvss":6.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ffmpeg","libavcodec","media-pipelines","runtime","video-processing"],"not_affected_if":["no-xevd-decoder","trusted-input-only"],"how_to_check":"- Run `ffmpeg -version` and compare against the fixed release in the sources.\n- Check whether your build includes the libxevd (EVC) decoder, for example with `ffmpeg -decoders | grep -i xevd`.\n- Find services that decode untrusted uploaded or streamed video with FFmpeg.","fix":null,"status":"open","published_at":"2026-11-09T19:17:02+00:00","first_seen_at":"2026-11-09T19:28:20+00:00","triaged_at":"2026-11-09T19:30:24+00:00","updated_at":"2026-11-09T19:30:24+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-09T19:30:24Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"FFmpeg: crafted EVC file triggers assertion and aborts decoding","impact":"low","summary":"FFmpeg's libxevd decoder hits an av_assert0() when an EVC file has truncated or picture-less access units, because it returns success without producing a frame. An attacker who supplies such a file makes any application decoding it abort.","audience":"developers","category":"runtime","nicknames":[],"who_cares":["ffmpeg","libavcodec","video-processing","media-pipelines"],"confidence":0.6,"fix_status":"unknown","needs_auth":"no","worst_case":"Decoding process aborts on a crafted EVC file, causing denial of service.","analyst_note":"Confirm the fixed FFmpeg version and whether the libxevd decoder is enabled by default, using the linked GitHub patch and the NVD entry.","how_to_check":"- Run `ffmpeg -version` and compare against the fixed release in the sources.\n- Check whether your build includes the libxevd (EVC) decoder, for example with `ffmpeg -decoders | grep -i xevd`.\n- Find services that decode untrusted uploaded or streamed video with FFmpeg.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["trusted-input-only","no-xevd-decoder"],"who_is_affected":"Applications that run FFmpeg's libavcodec EVC decoding on files or streams from untrusted sources can be crashed by a crafted file. Systems that only decode trusted media, or builds without the libxevd decoder, are not exposed. The sources do not state a fixed version, though a patch link is listed.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000769,"input_tokens":4627,"output_tokens":612,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-125238':12A,15A '-2026':11A,14A '9.0.2':68C 'abort':8A,65B,114C 'access':43B,85C,103C 'applic':62B,117C 'assert':6A,72C 'assert0':32B,109C 'attack':54B,90C 'av':31B,108C 'contain':69C 'craft':2A,94C 'cve':10A,13A 'decod':9A,28B,63B,116C 'evc':3A,35B,95C 'ffmpeg':1A,16B,25B,66C 'file':4A,36B,59B,96C 'frame':52B,77C,89C,111C 'hit':29B 'less':42B,102C 'libavcodec':17B 'libavcodec/libxevd.c':79C 'libxevd':27B,75C 'make':60B 'media':19B 'media-pipelin':18B 'pictur':41B,101C 'picture-less':40B,100C 'pipelin':20B 'privat':112C 'process':24B 'produc':50B,87C 'reachabl':71C 'receiv':76C 'ref':113C 'return':47B,81C 'runtim':21B 'success':48B,82C 'suppli':56B,92C 'trigger':5A,106C 'truncat':38B,98C 'unit':44B,86C,104C 'video':23B 'video-process':22B 'vulner':73C 'without':49B","nicknames":[],"mitigations":[],"who_affected":"Applications that run FFmpeg's libavcodec EVC decoding on files or streams from untrusted sources can be crashed by a crafted file. Systems that only decode trusted media, or builds without the libxevd decoder, are not exposed. The sources do not state a fixed version, though a patch link is listed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["ffmpeg","libavcodec","mediapipelines","medium","runtime","videoprocessing"],"campaign_type":null,"search_a":"'-125238':12A,15A '-2026':11A,14A 'abort':8A 'assert':6A 'craft':2A 'cve':10A,13A 'decod':9A 'evc':3A 'ffmpeg':1A 'file':4A 'trigger':5A","search_b":"'abort':65B 'access':43B 'applic':62B 'assert0':32B 'attack':54B 'av':31B 'decod':28B,63B 'evc':35B 'ffmpeg':16B,25B 'file':36B,59B 'frame':52B 'hit':29B 'less':42B 'libavcodec':17B 'libxevd':27B 'make':60B 'media':19B 'media-pipelin':18B 'pictur':41B 'picture-less':40B 'pipelin':20B 'process':24B 'produc':50B 'return':47B 'runtim':21B 'success':48B 'suppli':56B 'truncat':38B 'unit':44B 'video':23B 'video-process':22B 'without':49B","search_c":"'9.0.2':68C 'abort':114C 'access':85C,103C 'applic':117C 'assert':72C 'assert0':109C 'attack':90C 'av':108C 'contain':69C 'craft':94C 'decod':116C 'evc':95C 'ffmpeg':66C 'file':96C 'frame':77C,89C,111C 'less':102C 'libavcodec/libxevd.c':79C 'libxevd':75C 'pictur':101C 'picture-less':100C 'privat':112C 'produc':87C 'reachabl':71C 'receiv':76C 'ref':113C 'return':81C 'success':82C 'suppli':92C 'trigger':106C 'truncat':98C 'unit':86C,104C 'vulner':73C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T19:17:02+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-125238","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125238","severity":null,"published_at":"2026-11-09T19:17:02+00:00","modified_at":"2026-11-09T19:17:02+00:00","first_seen_at":"2026-11-09T19:28:20+00:00","fetched_at":"2026-11-09T19:28:20+00:00","note":null}],"documents":[{"id":109366,"url":"https://github.com/FFmpeg/FFmpeg/commit/33b0107a04b9ec361d76ae148cb6683964f88073","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109367,"url":"https://www.vulncheck.com/advisories/ffmpeg-through-9.0.2-reachable-assertion-in-libxevd-evc-decoder-wrapper","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"}