{"id":"CVE-2026-95692","kind":"vulnerability","aliases":["CVE-2026-95692"],"related":[],"title":"OpenSSL: wrong-length IV for AES-GCM-SIV reads past buffer and forges","description":"Issue summary: Setting an AES-GCM-SIV IV shorter than the expected nonce\nlength via EVP_CipherInit_ex() may trigger a heap out-of-bounds read.\nSupplying a longer IV is silently truncated instead of rejected.\n\nImpact summary: An application passing a caller-supplied IV of the wrong\nlength may crash or read beyond its buffer. Because trailing IV bytes are\nignored, an attacker who knows one message and tag may forge messages under a\ndifferent IV.\n\nCWE: CWE-125: Out-of-bounds Read\n\nDescription: AES-GCM-SIV copies the caller-supplied IV or nonce into its\ninternal state using a copy whose length is taken from the expected nonce size\nrather than from the length the caller actually provided. When the caller\npasses a shorter IV, the copy reads past the end of the caller's buffer;\nAddressSanitizer confirms a heap out-of-bounds read reached through\nEVP_CipherInit_ex() into ossl_aes_gcm_siv_init(). When the caller passes a\nlonger IV, the implementation silently discards the trailing bytes instead of\nrejecting the length.\n\nThe truncation breaks the binding between the IV and the computed\nauthentication tag. An attacker who has observed a message and its tag under\none IV can produce a message and tag that verify under a different IV whose\nfirst bytes match, since the surplus bytes never influence the computation.\nThe message itself is unchanged, so this is a failure of IV commitment rather\nthan a classic existential forgery.\n\nOnly applications that call EVP_CipherInit_ex() (or the equivalent provider\ncipher initialization) with an IV length other than the standard 12 bytes for\nAES-GCM-SIV are affected. The severity is limited because the out-of-bounds\nread is small and attacker-controlled only in length, and the forgery requires\nan unusual IV length choice by the application.\n\nFIPS impact: no\nThe FIPS modules are not affected by this issue, as AES-GCM-SIV is not an\napproved algorithm.","summary":"Setting an AES-GCM-SIV IV with a length other than 12 bytes through EVP_CipherInit_ex() can read past the caller's heap buffer, and longer IVs are silently truncated. Because trailing IV bytes are ignored, an attacker who has seen one message and tag can forge a message that verifies under a different IV with the same leading bytes.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["aes-gcm-siv","c","crypto","openssl","package"],"not_affected_if":["default-iv-length","fips-module","other-ciphers"],"how_to_check":"- Search your code for calls to `EVP_CipherInit_ex` or provider cipher init using AES-GCM-SIV with a custom IV length.\n- Check your OpenSSL version with `openssl version`.","fix":null,"status":"open","published_at":"2026-11-10T19:21:39+00:00","first_seen_at":"2026-11-10T19:25:22+00:00","triaged_at":"2026-11-10T20:04:41+00:00","updated_at":"2026-11-10T20:04:41+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-10T20:04:41Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"OpenSSL: wrong-length IV for AES-GCM-SIV reads past buffer and forges","impact":"medium","summary":"Setting an AES-GCM-SIV IV with a length other than 12 bytes through EVP_CipherInit_ex() can read past the caller's heap buffer, and longer IVs are silently truncated. Because trailing IV bytes are ignored, an attacker who has seen one message and tag can forge a message that verifies under a different IV with the same leading bytes.","audience":"developers","category":"package","nicknames":[],"who_cares":["openssl","aes-gcm-siv","c","crypto"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"Heap memory read past buffer, possible crash and message forgery","analyst_note":"Confirm the fixed OpenSSL versions from the linked patch commits or the OpenSSL security advisory; the sources give no version ranges.","how_to_check":"- Search your code for calls to `EVP_CipherInit_ex` or provider cipher init using AES-GCM-SIV with a custom IV length.\n- Check your OpenSSL version with `openssl version`.\n- unknown for any other check, the sources do not say.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["default-iv-length","fips-module","other-ciphers"],"who_is_affected":"Only applications that call EVP_CipherInit_ex() or the provider cipher initialization with an IV length other than the standard 12 bytes for AES-GCM-SIV are affected. Applications using the default IV length or other ciphers are not affected, and the FIPS modules are not affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.00083,"input_tokens":5170,"output_tokens":625,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-125':174C '-2026':17A,20A '-95692':18A,21A '12':42B,365C 'actual':216C 'addresssanit':236C 'ae':8A,23B,33B,97C,182C,252C,369C,420C 'aes-gcm-siv':7A,22B,32B,96C,181C,368C,419C 'affect':373C,414C 'algorithm':427C 'applic':133C,345C,405C 'approv':426C 'attack':69B,158C,289C,389C 'attacker-control':388C 'authent':286C 'beyond':148C 'bind':279C 'bound':118C,178C,243C,383C 'break':277C 'buffer':13A,55B,150C,235C 'byte':43B,65B,91B,154C,269C,315C,320C,366C 'c':26B 'call':347C 'caller':52B,137C,188C,215C,220C,233C,258C 'caller-suppli':136C,187C 'choic':402C 'cipher':355C 'cipherinit':46B,109C,248C,349C 'classic':341C 'commit':337C 'comput':285C,324C 'confirm':237C 'control':390C 'copi':185C,199C,226C 'crash':145C 'crypto':27B 'cve':16A,19A 'cwe':172C,173C 'descript':180C 'differ':85B,170C,311C 'discard':266C 'end':230C 'equival':353C 'evp':45B,108C,247C,348C 'ex':47B,110C,249C,350C 'existenti':342C 'expect':104C,206C 'failur':334C 'fip':406C,410C 'first':314C 'forg':15A,78B,166C 'forgeri':343C,396C 'gcm':9A,24B,34B,98C,183C,253C,370C,421C 'heap':54B,114C,239C 'ignor':67B,156C 'impact':130C,407C 'implement':264C 'influenc':322C 'init':255C 'initi':356C 'instead':127C,270C 'intern':195C 'issu':92C,417C 'iv':5A,36B,58B,64B,86B,100C,123C,139C,153C,171C,190C,224C,262C,282C,300C,312C,336C,359C,400C 'know':160C 'lead':90B 'length':4A,39B,106C,143C,201C,213C,274C,360C,393C,401C 'limit':377C 'longer':57B,122C,261C 'match':316C 'may':111C,144C,165C 'messag':74B,80B,162C,167C,294C,304C,326C 'modul':411C 'never':321C 'nonc':105C,192C,207C 'observ':292C 'one':73B,161C,299C 'openssl':1A,28B 'ossl':251C 'out-of-bound':115C,175C,240C,380C 'packag':29B 'pass':134C,221C,259C 'past':12A,50B,228C 'produc':302C 'provid':217C,354C 'rather':209C,338C 'reach':245C 'read':11A,49B,119C,147C,179C,227C,244C,384C 'reject':129C,272C 'requir':397C 'seen':72B 'set':30B,94C 'sever':375C 'shorter':101C,223C 'silent':60B,125C,265C 'sinc':317C 'siv':10A,25B,35B,99C,184C,254C,371C,422C 'size':208C 'small':386C 'standard':364C 'state':196C 'summari':93C,131C 'suppli':120C,138C,189C 'surplus':319C 'tag':76B,164C,287C,297C,306C 'taken':203C 'trail':63B,152C,268C 'trigger':112C 'truncat':61B,126C,276C 'unchang':329C 'unusu':399C 'use':197C 'verifi':82B,308C 'via':107C 'whose':200C,313C 'wrong':3A,142C 'wrong-length':2A","nicknames":[],"mitigations":[],"who_affected":"Only applications that call EVP_CipherInit_ex() or the provider cipher initialization with an IV length other than the standard 12 bytes for AES-GCM-SIV are affected. Applications using the default IV length or other ciphers are not affected, and the FIPS modules are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aesgcmsiv","c","crypto","low","openssl","package"],"campaign_type":null,"search_a":"'-2026':17A,20A '-95692':18A,21A 'ae':8A 'aes-gcm-siv':7A 'buffer':13A 'cve':16A,19A 'forg':15A 'gcm':9A 'iv':5A 'length':4A 'openssl':1A 'past':12A 'read':11A 'siv':10A 'wrong':3A 'wrong-length':2A","search_b":"'12':42B 'ae':23B,33B 'aes-gcm-siv':22B,32B 'attack':69B 'buffer':55B 'byte':43B,65B,91B 'c':26B 'caller':52B 'cipherinit':46B 'crypto':27B 'differ':85B 'evp':45B 'ex':47B 'forg':78B 'gcm':24B,34B 'heap':54B 'ignor':67B 'iv':36B,58B,64B,86B 'lead':90B 'length':39B 'longer':57B 'messag':74B,80B 'one':73B 'openssl':28B 'packag':29B 'past':50B 'read':49B 'seen':72B 'set':30B 'silent':60B 'siv':25B,35B 'tag':76B 'trail':63B 'truncat':61B 'verifi':82B","search_c":"'-125':174C '12':365C 'actual':216C 'addresssanit':236C 'ae':97C,182C,252C,369C,420C 'aes-gcm-siv':96C,181C,368C,419C 'affect':373C,414C 'algorithm':427C 'applic':133C,345C,405C 'approv':426C 'attack':158C,289C,389C 'attacker-control':388C 'authent':286C 'beyond':148C 'bind':279C 'bound':118C,178C,243C,383C 'break':277C 'buffer':150C,235C 'byte':154C,269C,315C,320C,366C 'call':347C 'caller':137C,188C,215C,220C,233C,258C 'caller-suppli':136C,187C 'choic':402C 'cipher':355C 'cipherinit':109C,248C,349C 'classic':341C 'commit':337C 'comput':285C,324C 'confirm':237C 'control':390C 'copi':185C,199C,226C 'crash':145C 'cwe':172C,173C 'descript':180C 'differ':170C,311C 'discard':266C 'end':230C 'equival':353C 'evp':108C,247C,348C 'ex':110C,249C,350C 'existenti':342C 'expect':104C,206C 'failur':334C 'fip':406C,410C 'first':314C 'forg':166C 'forgeri':343C,396C 'gcm':98C,183C,253C,370C,421C 'heap':114C,239C 'ignor':156C 'impact':130C,407C 'implement':264C 'influenc':322C 'init':255C 'initi':356C 'instead':127C,270C 'intern':195C 'issu':92C,417C 'iv':100C,123C,139C,153C,171C,190C,224C,262C,282C,300C,312C,336C,359C,400C 'know':160C 'length':106C,143C,201C,213C,274C,360C,393C,401C 'limit':377C 'longer':122C,261C 'match':316C 'may':111C,144C,165C 'messag':162C,167C,294C,304C,326C 'modul':411C 'never':321C 'nonc':105C,192C,207C 'observ':292C 'one':161C,299C 'ossl':251C 'out-of-bound':115C,175C,240C,380C 'pass':134C,221C,259C 'past':228C 'produc':302C 'provid':217C,354C 'rather':209C,338C 'reach':245C 'read':119C,147C,179C,227C,244C,384C 'reject':129C,272C 'requir':397C 'set':94C 'sever':375C 'shorter':101C,223C 'silent':125C,265C 'sinc':317C 'siv':99C,184C,254C,371C,422C 'size':208C 'small':386C 'standard':364C 'state':196C 'summari':93C,131C 'suppli':120C,138C,189C 'surplus':319C 'tag':164C,287C,297C,306C 'taken':203C 'trail':152C,268C 'trigger':112C 'truncat':126C,276C 'unchang':329C 'unusu':399C 'use':197C 'verifi':308C 'via':107C 'whose':200C,313C 'wrong':142C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-10T19:21:39+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-95692","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-95692","severity":null,"published_at":"2026-11-10T19:21:39+00:00","modified_at":"2026-11-10T19:21:39+00:00","first_seen_at":"2026-11-10T19:25:22+00:00","fetched_at":"2026-11-10T19:25:22+00:00","note":null}],"documents":[{"id":117525,"url":"https://github.com/openssl/openssl/commit/257a3427aa0ef8d9dd2ef5b3e2d1c021a221b116","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":117526,"url":"https://github.com/openssl/openssl/commit/510872388f5d145cf870868b3d288a23822cb776","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":117527,"url":"https://github.com/openssl/openssl/commit/70a47ac78b6f3be1b22fb1551bd0bfcff4f29613","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.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"}