KernelScan.io

HIGH Introduced in 6.5

verisilicon AV1Tile OOB

CVE-2026-97577

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.8HIGH

01

In the Linux kernel, the following vulnerability has been resolved: media: verisilicon: rockchip: reject AV1 frames exceeding the tile capacity rockchip_vpu981_av1_dec_set_tile_info() indexes the tile group entry array by tile1 * tile_cols + tile0, reading up to tile_cols * tile_rows entries, lays out one descriptor per tile in the AV1_MAX_TILES tile_info buffer, and programs the real tile_cols / tile_rows into the hardware. The tile group entry control is a dynamic array sized to the number of entries userspace submitted, independent of tile_cols / tile_rows, so a frame that claims more tiles than entries reads past the array. A frame that claims more than AV1_MAX_TILES tiles also leaves the hardware programmed for more tiles than the descriptor buffer holds. Reject both in prepare_run(): tile_cols * tile_rows must not exceed the submitted entry count or AV1_MAX_TILES. The entry count is read via v4l2_ctrl_find() (ctrl->elems). This mirrors the bound the mediatek AV1 decoder already enforces.

02

Engine v0.6.0

Risk summary

A local user with access to the Rockchip AV1 stateless video decoder device node can submit a crafted AV1 frame whose tile geometry exceeds the submitted tile group entry array or the hardware's fixed tile descriptor buffer, causing out-of-bounds reads and writes in kernel memory. This can lead to information disclosure, memory corruption, or a kernel crash. The vulnerability requires specific Rockchip VPU981 hardware and is reachable by any user permitted to open the V4L2 decoder device.

Affecteddrivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c (media: verisilicon: rockchip AV1 decoder)

Vulnerability analysis

The Rockchip AV1 stateless decoder trusts the tile geometry declared in an incoming frame without checking it against the number of tile group entries that userspace actually submitted or against the hardware's fixed tile descriptor capacity. A frame claiming more tiles than entries causes the decoder to read past the end of the tile group entry array, and a frame claiming more tiles than the descriptor buffer holds causes the hardware to be programmed beyond that buffer's bounds, corrupting kernel memory. The fix adds a validation step before decoding begins, rejecting any frame whose tile count exceeds either the submitted entry count or the maximum tile capacity, keeping all array and buffer accesses in bounds. The vulnerable path is reachable locally by any user who can open and submit frames to the V4L2 decoder device node on systems equipped with Rockchip VPU981 hardware.

03

BranchIntroducedFixed inPatch commit
6.66.56.6.15895ee48eb17c9
6.126.56.12.11140029f7f3539
6.186.56.18.53a41babf528f7
7.26.57.2.7fd965369220c
mainline6.57.3-rc3367db8b23c26
cip/6.126.56.12.111-cip3240029f7f3539