CVE-2026-97579 PUBLISHED

media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity

Assigner: Linux
Reserved: 24.09.2026 Published: 25.09.2026 Updated: 25.09.2026

In the Linux kernel, the following vulnerability has been resolved:

media: mediatek: vcodec: bound AV1 tile-start copy to the array capacity

vdec_av1_slice_setup_tile() copies tile_cols + 1 / tile_rows + 1 entries into mi_col_starts[] / mi_row_starts[] from the bitstream tile_info. Bound the copy to the array capacity.

Metrics

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

AV:L - The bad tile_info.tile_cols/tile_rows reach vdec_av1_slice_setup_tile() from a local process that sets V4L2_CID_STATELESS_AV1_FRAME via VIDIOC_S_EXT_CTRLS on the mtk-vcodec decoder /dev/videoN and queues a request. A spec-conforming AV1 parser caps tile counts at 64, so a remote bitstream does not produce the malformed values. AC:L - The attacker sets tile_cols or tile_rows to any value from 65 to 255. validate_av1_frame() never checks them, and the driver's num_tiles check in vdec_av1_slice_setup_tile_group() runs after vdec_av1_slice_setup_pfc() has already done the copy, so the overflow happens on every such request. PR:L - It needs only the ability to open the decoder video node, which is normally granted to the video group or to media/GPU processes. No capability check lies on the ioctl or request-queue path to vdec_av1_slice_lat_decode(). UI:N - The attacker supplies the control payload and queues the request themselves. No other user has to do anything. S:U - This is a heap overflow in kernel memory. It gives kernel-level impact within the same security authority, not a VM or IOMMU boundary crossing. C:H - Writing up to 764 bytes past mi_row_starts[] runs off the end of the kzalloc'd vdec_av1_slice_pfc into the neighbouring slab object. That corruption can be used to build read primitives and leak kernel memory. I:H - The written values are ALIGN(ctrl_tile->mi_*_starts[i]) >> mib_size_log2, taken from the attacker's own control payload. This gives an attacker-shaped heap out-of-bounds write that can corrupt neighbouring objects. A:H - Corrupting the pfc fields past the tile arrays (frame, state, ref_idx) and the neighbouring slab object can oops the kernel or hang the decoder, and any local user with device access can repeat it.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 0934d37596151edce115c6d0843a9ad7d5e5d232 to ad47a250afafa3a51cfb4a004463ff28e66c596e (excl.)
  • affected from 0934d37596151edce115c6d0843a9ad7d5e5d232 to 7992059c045780095ba5a696dcb2f5400a82803c (excl.)
  • affected from 0934d37596151edce115c6d0843a9ad7d5e5d232 to eb0ea3898e3921900939e30c3946dd2b52281859 (excl.)
  • affected from 0934d37596151edce115c6d0843a9ad7d5e5d232 to 37bef2170d4c88fc3d708eecf3ef0f4032bc1372 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.6 is affected
  • unaffected from 0 to 6.6 (excl.)
  • unaffected from 6.12.111 to 6.12.* (incl.)
  • unaffected from 6.18.53 to 6.18.* (incl.)
  • unaffected from 7.2.7 to 7.2.* (incl.)
  • unaffected from 7.3-rc3 to * (incl.)

References