CVE-2024-26721

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-26721
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-26721.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-26721
Downstream
Published
2024-04-03T14:55:20Z
Modified
2025-10-21T18:48:43.448214Z
Summary
drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address
Details

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

drm/i915/dsc: Fix the macro that calculates DSCC/DSCA PPS reg address

Commit bd077259d0a9 ("drm/i915/vdsc: Add function to read any PPS register") defines a new macro to calculate the DSC PPS register addresses with PPS number as an input. This macro correctly calculates the addresses till PPS 11 since the addresses increment by 4. So in that case the following macro works correctly to give correct register address:

MMIO(DSCAPPS0 + (pps) * 4)

However after PPS 11, the register address for PPS 12 increments by 12 because of RC Buffer memory allocation in between. Because of this discontinuity in the address space, the macro calculates wrong addresses for PPS 12 - 16 resulting into incorrect DSC PPS parameter value read/writes causing DSC corruption.

This fixes it by correcting this macro to add the offset of 12 for PPS

=12.

v3: Add correct paranthesis for pps argument (Jani Nikula)

(cherry picked from commit 6074be620c31dc2ae11af96a1a5ea95580976fb5)

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
bd077259d0a9c9bf453e7e9751bf41f1996e6585
Fixed
ff5999fb03f467e1e7159f0ddb199c787f7512b9
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
bd077259d0a9c9bf453e7e9751bf41f1996e6585
Fixed
962ac2dce56bb3aad1f82a4bbe3ada57a020287c

Affected versions

v6.*

v6.5
v6.5-rc3
v6.5-rc4
v6.5-rc5
v6.5-rc6
v6.5-rc7
v6.6
v6.6-rc1
v6.6-rc2
v6.6-rc3
v6.6-rc4
v6.6-rc5
v6.6-rc6
v6.6-rc7
v6.7
v6.7-rc1
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.7.1
v6.7.2
v6.7.3
v6.7.4
v6.7.5
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.7.6