Chrome · Video
CVE-2026-95318
OOB in Video
High
watch
CVSS 9.6
chrome
OOB
🔧 Commit mapped
🧬 Trusting GPU driver quirks, clear state, or layout math
Overview
High
Severity
9.6
CVSS
No
Exploited ITW
Fixed
Fix Status
Background
- Hardware AV1 decode
- Chrome’s
VideoDecoderpath that offloads AV1 bitstream decoding to the GPU viaVA-API, running inside the GPU process. - iHD driver
- Intel’s
media-driver(iHD)VA-APIbackend that performs the actual AV1 hardware decode and manages tile/surface buffer allocation. - AV1 tiling
- an AV1 frame is partitioned into a grid of independently decodable tiles; the driver must allocate tile buffers sized to the bitstream’s declared tile columns/rows.
- `gpu_driver_bug_list.json`
- Chrome’s
GpuDriverBugListdata file matching GPU/driver identities to feature-disabling workarounds such asdisable_accelerated_av1_decode.
Root Cause Analysis
Intel
iHD media drivers older than 23.2.4 allocate too few tile buffers for AV1 decode relative to the tiling geometry declared in the bitstream. When Chrome hands such a driver an attacker-crafted AV1 stream whose tile column/row count exceeds the driver’s undersized allocation, the driver writes tile data past the end of the heap allocation, producing an out-of-bounds write and memory corruption inside the GPU process. The defect lives entirely in the closed-source Intel driver’s allocation logic, so Chrome cannot correct the buffer sizing from its own code. The only in-Chrome mitigation is to avoid the vulnerable code path: this change adds GpuDriverBugList entry id 500 that matches Linux Intel (vendor_id 0x8086) systems on driver versions < 23.2.4 and applies the disable_accelerated_av1_decode workaround. With hardware AV1 disabled, affected users fall back to software AV1 decoding, which does not exercise the driver’s faulty tile allocation.Key insight
The vulnerability is not in Chrome code but in a third-party driver’s tile-buffer allocation, so it is remediated by identity-gating rather than by a code fix — Chrome disables the reachable hardware path for exactly the affected driver versions. Version-scoped disabling (
< 23.2.4) preserves hardware acceleration for users who have already updated to a fixed driver.Attack Path
- Victim on vulnerable driver
a Linux user with an Intel GPU running an
iHDdriver older than23.2.4and hardware AV1 decode enabled. - Attacker delivers AV1 any page, video element, or media the victim loads decodes an attacker-crafted AV1 stream.
- Malicious tiling the stream declares a tile grid whose count exceeds what the driver’s undersized allocation holds.
- OOB write
the
iHDdriver writes tile data beyond the heap allocation, corrupting GPU-process memory. - Corruption/exploit the resulting heap overflow is a memory-safety primitive in the GPU process, potentially escalatable to code execution.
Impact Assessment
Heap buffer overflow / memory corruption in the GPU process, reachable from any page or media that decodes AV1 with no special privileges. Exploitation is constrained to Linux users on Intel GPUs running
iHD drivers older than 23.2.4, but within that population it is remotely triggerable and could allow GPU-process compromise. Users on driver >= 23.2.4 and non-Intel/non-Linux configurations are unaffected.Files Changed
gpu/config/gpu_driver_bug_list.json
Audit Directions
- Driver-version-scoped workaroundsaudit other
GpuDriverBugListentries and hardware media paths (VP9, HEVC, H.264 tiles/slices) for driver allocations that trust bitstream-declared geometry without a Chrome-side bound; each is a candidate for the same undersized-allocation class. - Software-fallback completenessverify that disabling
disable_accelerated_av1_decodereliably routes to software decode with no residual hardware code path, and that the version comparison (<on23.2.4) correctly excludes patched drivers with unusual version strings.
Patch
From 65c806562e4398f592277398d2c646e1add3bd77 Mon Sep 17 00:00:00 2001
From: Ted Meyer <tmathmeyer@chromium.org>
Date: Fri, 11 Sep 2026 14:30:54 -0700
Subject: [PATCH] Add workaround for AV1 Issue in old iHD drivers
This will disable AV1 HW decode for ~9% of all linux users in the last
28 days according to UMA. This number represents 16% of all linux/intel
users, and 21% of all linux/intel/iHD users.
Fixed: 556576976
Change-Id: I65d6137bea6e8233d45c5ca450070d4736bb962a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8384191
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Auto-Submit: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1696620}
---
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index 5a120c8..b142833 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3948,7 +3948,7 @@
},
{
"id": 498,
-"cr_bugs": [
+ "cr_bugs": [
551065272
],
"description": "Recreate mipmap levels before calling glGenerateMipmap on Mali GPUs",
@@ -3968,6 +3968,22 @@
"features": [
"adjust_src_dst_region_for_blitframebuffer"
]
+ },
+ {
+ "id": 500,
+ "cr_bugs": [556576976],
+ "description": "Older intel iHD drivers allocate too few tiles for AV1 decode, leading to potential memory corruption.",
+ "os": {
+ "type": "linux"
+ },
+ "vendor_id": "0x8086",
+ "driver_version": {
+ "op": "<",
+ "value": "23.2.4"
+ },
+ "features": [
+ "disable_accelerated_av1_decode"
+ ]
}
]
}
Loading diff…
Original Bug Report
The reporter's bug is still restricted on the tracker. Chrome de-restricts security bugs ~30–90 days after the fix ships; a later run will backfill it here.
References
On This Page