Description
In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl() vidi_connection_ioctl() retrieves the driver_data from drm_dev->dev to obtain a struct vidi_context pointer. However, drm_dev->dev is the exynos-drm master device, and the driver_data contained therein is not the vidi component device, but a completely different device. This can lead to various bugs, ranging from null pointer dereferences and garbage value accesses to, in unlucky cases, out-of-bounds errors, use-after-free errors, and more. To resolve this issue, we need to store/delete the vidi device pointer in exynos_drm_private->vidi_dev during bind/unbind, and then read this exynos_drm_private->vidi_dev within ioctl() to obtain the correct struct vidi_context pointer.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < 2987642c5213508c6c9e718324c0d5289a92c474affectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < 65d1213baffa363f2eb1117b1dc7acc573b890f8affectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < 875fa28690e93ed5296c31d3344556c6bb867234affectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < 21ca24ba51a2c28bcc4df9d7e5a40b0eb66ab76daffectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < e1aed617eb80b49eac2f8c7bb7a0990f641dd59baffectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < b5fc86d753dd4c281a943b92f0eef02d31af03d7affectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < a540f767642f75240a6c35f6a65b69e44cfcea9daffectedcf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 to < d3968a0d85b211e197f2f4f06268a7031079e0d0affected
Linux Linux
Default version status: affected
4.3affected0 to < 4.3unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.167 to ≤ 6.1.*unaffected6.6.130 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.14 to ≤ 6.18.*unaffected6.19.4 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/2987642c5213508c6c9e718324c0d5289a92c474 ↗
- https://git.kernel.org/stable/c/65d1213baffa363f2eb1117b1dc7acc573b890f8 ↗
- https://git.kernel.org/stable/c/875fa28690e93ed5296c31d3344556c6bb867234 ↗
- https://git.kernel.org/stable/c/21ca24ba51a2c28bcc4df9d7e5a40b0eb66ab76d ↗
- https://git.kernel.org/stable/c/e1aed617eb80b49eac2f8c7bb7a0990f641dd59b ↗
- https://git.kernel.org/stable/c/b5fc86d753dd4c281a943b92f0eef02d31af03d7 ↗
- https://git.kernel.org/stable/c/a540f767642f75240a6c35f6a65b69e44cfcea9d ↗
- https://git.kernel.org/stable/c/d3968a0d85b211e197f2f4f06268a7031079e0d0 ↗