{"id":"CVE-2026-125261","kind":"vulnerability","aliases":["CVE-2026-125261"],"related":[],"title":"FFmpeg: crafted video makes SGI encoder read out of bounds","description":"FFmpeg through 9.0.2 contains an out-of-bounds read vulnerability in the SGI encoder's encode_frame() in libavcodec/sgienc.c, where unsigned size variables mis-handle negative linesize frames. Attackers can supply a video whose display matrix triggers autorotate vflip, so transcoding to SGI images reads pixel data far outside the frame and crashes the process.","summary":"FFmpeg's SGI image encoder in libavcodec mishandles negative linesize values through unsigned size variables, causing an out-of-bounds read. An attacker who supplies a crafted video with a display matrix that triggers autorotate vertical flip can crash the process while it transcodes to SGI images.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"FFmpeg","fixed":[],"affected":"","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["ffmpeg","media-processing","package","transcoding"],"not_affected_if":["no-sgi-output","no-untrusted-video-input"],"how_to_check":"- Check whether the installed FFmpeg version is `9.0.2` or earlier, for example with `ffmpeg -version`\n- Look for services that transcode untrusted uploaded video to SGI output","fix":null,"status":"open","published_at":"2026-11-09T20:18:12+00:00","first_seen_at":"2026-11-09T20:48:13+00:00","triaged_at":"2026-11-09T20:49:48+00:00","updated_at":"2026-11-09T20:49:48+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-09T20:49:48Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"FFmpeg: crafted video makes SGI encoder read out of bounds","impact":"low","summary":"FFmpeg's SGI image encoder in libavcodec mishandles negative linesize values through unsigned size variables, causing an out-of-bounds read. An attacker who supplies a crafted video with a display matrix that triggers autorotate vertical flip can crash the process while it transcodes to SGI images.","audience":"developers","category":"package","nicknames":[],"who_cares":["ffmpeg","media-processing","transcoding"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"Process crashes; out-of-bounds memory read from video encoding","analyst_note":"Check the linked patch and the VulnCheck advisory for the fixed version and whether the crash is the only effect.","how_to_check":"- Check whether the installed FFmpeg version is `9.0.2` or earlier, for example with `ffmpeg -version`\n- Look for services that transcode untrusted uploaded video to SGI output\n- unknown for any other check, the sources do not say","plain_action":"","product_name":"FFmpeg","needs_analyst":true,"not_affected_if":["no-untrusted-video-input","no-sgi-output"],"who_is_affected":"Exposure needs FFmpeg through 9.0.2 processing attacker-supplied video and encoding it to SGI format, so the risk sits in services that transcode user media. The sources describe a crash rather than code execution. Teams that never transcode untrusted input to SGI can skip it.","user_interaction":"unknown","product_ecosystem":"vendor","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000767,"input_tokens":4632,"output_tokens":607,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-125261':13A,16A '-2026':12A,15A '9.0.2':74C 'attack':47B,102C 'autorot':59B,111C 'bound':10A,44B,80C 'caus':39B 'contain':75C 'craft':2A,51B 'crash':63B,126C 'cve':11A,14A 'data':120C 'display':55B,108C 'encod':6A,28B,86C,88C 'far':121C 'ffmpeg':1A,17A,18B,24B,72C 'flip':61B 'frame':89C,101C,124C 'handl':98C 'imag':27B,71B,117C 'libavcodec':30B 'libavcodec/sgienc.c':91C 'lines':33B,100C 'make':4A 'matrix':56B,109C 'media':20B 'media-process':19B 'mis':97C 'mis-handl':96C 'mishandl':31B 'negat':32B,99C 'out-of-bound':41B,77C 'outsid':122C 'packag':22B 'pixel':119C 'process':21B,65B,128C 'read':7A,45B,81C,118C 'sgi':5A,26B,70B,85C,116C 'size':37B,94C 'suppli':49B,104C 'transcod':23B,68B,114C 'trigger':58B,110C 'unsign':36B,93C 'valu':34B 'variabl':38B,95C 'vertic':60B 'vflip':112C 'video':3A,52B,106C 'vulner':82C 'whose':107C","nicknames":[],"mitigations":[],"who_affected":"Exposure needs FFmpeg through 9.0.2 processing attacker-supplied video and encoding it to SGI format, so the risk sits in services that transcode user media. The sources describe a crash rather than code execution. Teams that never transcode untrusted input to SGI can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":["ffmpeg"],"ptokens":["ffmpeg"],"labels":["ffmpeg","mediaprocessing","medium","package","transcoding","vendor"],"campaign_type":null,"search_a":"'-125261':13A,16A '-2026':12A,15A 'bound':10A 'craft':2A 'cve':11A,14A 'encod':6A 'ffmpeg':1A,17A 'make':4A 'read':7A 'sgi':5A 'video':3A","search_b":"'attack':47B 'autorot':59B 'bound':44B 'caus':39B 'craft':51B 'crash':63B 'display':55B 'encod':28B 'ffmpeg':18B,24B 'flip':61B 'imag':27B,71B 'libavcodec':30B 'lines':33B 'matrix':56B 'media':20B 'media-process':19B 'mishandl':31B 'negat':32B 'out-of-bound':41B 'packag':22B 'process':21B,65B 'read':45B 'sgi':26B,70B 'size':37B 'suppli':49B 'transcod':23B,68B 'trigger':58B 'unsign':36B 'valu':34B 'variabl':38B 'vertic':60B 'video':52B","search_c":"'9.0.2':74C 'attack':102C 'autorot':111C 'bound':80C 'contain':75C 'crash':126C 'data':120C 'display':108C 'encod':86C,88C 'far':121C 'ffmpeg':72C 'frame':89C,101C,124C 'handl':98C 'imag':117C 'libavcodec/sgienc.c':91C 'lines':100C 'matrix':109C 'mis':97C 'mis-handl':96C 'negat':99C 'out-of-bound':77C 'outsid':122C 'pixel':119C 'process':128C 'read':81C,118C 'sgi':85C,116C 'size':94C 'suppli':104C 'transcod':114C 'trigger':110C 'unsign':93C 'variabl':95C 'vflip':112C 'video':106C 'vulner':82C 'whose':107C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T20:18:12+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-125261","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125261","severity":null,"published_at":"2026-11-09T20:18:12+00:00","modified_at":"2026-11-09T20:18:12+00:00","first_seen_at":"2026-11-09T20:48:13+00:00","fetched_at":"2026-11-09T20:48:13+00:00","note":null}],"documents":[{"id":109733,"url":"https://github.com/FFmpeg/FFmpeg/commit/c6e5b6105aa13f6b0df2a646da608078cfe52d79","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109734,"url":"https://www.vulncheck.com/advisories/ffmpeg-through-9.0.2-sgi-encoder-out-of-bounds-read-via-sgienc-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"}