{"id":"CVE-2026-125178","kind":"vulnerability","aliases":["CVE-2026-125178"],"related":[],"title":"FFmpeg: crafted AVI file causes out-of-bounds heap read in TDSC decoder","description":"FFmpeg through 9.0.2 contains an out-of-bounds heap read vulnerability in tdsc_load_cursor() in libavcodec/tdsc.c, which stores cursor dimensions before validating them. Attackers can supply a crafted AVI file with oversized TDSC cursor dimensions so tdsc_paint_cursor() reads past the cursor buffer, crashing the decoder or leaking heap memory into frames.","summary":"FFmpeg's TDSC cursor decoder stores cursor dimensions before validating them, so a crafted AVI file can make it read past a heap buffer. An attacker can crash the decoder or leak heap memory into decoded frames.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ffmpeg","libavcodec","media-processing","package"],"not_affected_if":["no-tdsc-decoding","trusted-input-only"],"how_to_check":"- Check the installed FFmpeg version with `ffmpeg -version`, and compare it with the ranges in the NVD entry.\n- Check whether your pipeline decodes untrusted AVI files with the TDSC codec.","fix":"- Move to a fixed FFmpeg release; the fixed version is not stated in the sources provided. Patch reference: github.com (linked fix).","status":"open","published_at":"2026-11-09T19:16:52+00:00","first_seen_at":"2026-11-09T19:28:16+00:00","triaged_at":"2026-11-09T19:30:20+00:00","updated_at":"2026-11-09T19:30:20+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-09T19:30:20Z","model":"claude-haiku-5-5","output":{"fix":"- Move to a fixed FFmpeg release; the fixed version is not stated in the sources provided. Patch reference: github.com (linked fix).","reach":"unknown","title":"FFmpeg: crafted AVI file causes out-of-bounds heap read in TDSC decoder","impact":"medium","summary":"FFmpeg's TDSC cursor decoder stores cursor dimensions before validating them, so a crafted AVI file can make it read past a heap buffer. An attacker can crash the decoder or leak heap memory into decoded frames.","audience":"developers","category":"package","nicknames":[],"who_cares":["ffmpeg","libavcodec","media-processing"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Decoder crashes or heap memory leaks into decoded frames","analyst_note":"Confirm the fixed FFmpeg version from the linked patch (github.com) and the vulncheck advisory; the sources do not name it.","how_to_check":"- Check the installed FFmpeg version with `ffmpeg -version`, and compare it with the ranges in the NVD entry.\n- Check whether your pipeline decodes untrusted AVI files with the TDSC codec.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["trusted-input-only","no-tdsc-decoding"],"who_is_affected":"Systems that run FFmpeg (libavcodec) to decode AVI files from untrusted sources, such as media-processing services, transcoders and upload pipelines. Teams that only process their own trusted media or do not decode TDSC content can skip it; the sources do not say more.","user_interaction":"unknown","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000769,"input_tokens":4655,"output_tokens":606,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-125178':17A,20A '-2026':16A,19A '9.0.2':66C 'attack':52B,89C 'avi':3A,41B,94C 'bound':9A,72C 'buffer':50B,109C 'caus':5A 'contain':67C 'craft':2A,40B,93C 'crash':54B,110C 'cursor':30B,33B,79C,84C,99C,104C,108C 'cve':15A,18A 'decod':14A,31B,56B,62B,112C 'dimens':34B,85C,100C 'ffmpeg':1A,21B,27B,64C 'file':4A,42B,95C 'frame':63B,118C 'heap':10A,49B,59B,73C,115C 'leak':58B,114C 'libavcodec':22B 'libavcodec/tdsc.c':81C 'load':78C 'make':44B 'media':24B 'media-process':23B 'memori':60B,116C 'out-of-bound':6A,69C 'overs':97C 'packag':26B 'paint':103C 'past':47B,106C 'process':25B 'read':11A,46B,74C,105C 'store':32B,83C 'suppli':91C 'tdsc':13A,29B,77C,98C,102C 'valid':36B,87C 'vulner':75C","nicknames":[],"mitigations":[],"who_affected":"Systems that run FFmpeg (libavcodec) to decode AVI files from untrusted sources, such as media-processing services, transcoders and upload pipelines. Teams that only process their own trusted media or do not decode TDSC content can skip it; the sources do not say more.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["ffmpeg","libavcodec","mediaprocessing","medium","package"],"campaign_type":null,"search_a":"'-125178':17A,20A '-2026':16A,19A 'avi':3A 'bound':9A 'caus':5A 'craft':2A 'cve':15A,18A 'decod':14A 'ffmpeg':1A 'file':4A 'heap':10A 'out-of-bound':6A 'read':11A 'tdsc':13A","search_b":"'attack':52B 'avi':41B 'buffer':50B 'craft':40B 'crash':54B 'cursor':30B,33B 'decod':31B,56B,62B 'dimens':34B 'ffmpeg':21B,27B 'file':42B 'frame':63B 'heap':49B,59B 'leak':58B 'libavcodec':22B 'make':44B 'media':24B 'media-process':23B 'memori':60B 'packag':26B 'past':47B 'process':25B 'read':46B 'store':32B 'tdsc':29B 'valid':36B","search_c":"'9.0.2':66C 'attack':89C 'avi':94C 'bound':72C 'buffer':109C 'contain':67C 'craft':93C 'crash':110C 'cursor':79C,84C,99C,104C,108C 'decod':112C 'dimens':85C,100C 'ffmpeg':64C 'file':95C 'frame':118C 'heap':73C,115C 'leak':114C 'libavcodec/tdsc.c':81C 'load':78C 'memori':116C 'out-of-bound':69C 'overs':97C 'paint':103C 'past':106C 'read':74C,105C 'store':83C 'suppli':91C 'tdsc':77C,98C,102C 'valid':87C 'vulner':75C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T19:16:52+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/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-125178","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125178","severity":null,"published_at":"2026-11-09T19:16:52+00:00","modified_at":"2026-11-09T19:16:52+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":109244,"url":"https://github.com/FFmpeg/FFmpeg/commit/12c589a37d093cc55618f8377b092dc21416806f","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109245,"url":"https://www.vulncheck.com/advisories/ffmpeg-through-9.0.2-out-of-bounds-heap-read-via-tdsc-cursor-dimensions","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"}