{"id":"CVE-2026-45956","state":"PUBLISHED","title":"drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()\n\nvidi_connection_ioctl() retrieves the driver_data from drm_dev->dev to\nobtain a struct vidi_context pointer. However, drm_dev->dev is the\nexynos-drm master device, and the driver_data contained therein is not\nthe vidi component device, but a completely different device.\n\nThis can lead to various bugs, ranging from null pointer dereferences and\ngarbage value accesses to, in unlucky cases, out-of-bounds errors,\nuse-after-free errors, and more.\n\nTo resolve this issue, we need to store/delete the vidi device pointer in\nexynos_drm_private->vidi_dev during bind/unbind, and then read this\nexynos_drm_private->vidi_dev within ioctl() to obtain the correct\nstruct vidi_context pointer.","publishedAt":"2026-05-27T12:18:11.972Z","updatedAt":"2026-10-21T12:41:06.321Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"2987642c5213508c6c9e718324c0d5289a92c474","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"65d1213baffa363f2eb1117b1dc7acc573b890f8","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"875fa28690e93ed5296c31d3344556c6bb867234","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"21ca24ba51a2c28bcc4df9d7e5a40b0eb66ab76d","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"e1aed617eb80b49eac2f8c7bb7a0990f641dd59b","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"b5fc86d753dd4c281a943b92f0eef02d31af03d7","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"a540f767642f75240a6c35f6a65b69e44cfcea9d","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"d3968a0d85b211e197f2f4f06268a7031079e0d0","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/exynos/exynos_drm_drv.h","drivers/gpu/drm/exynos/exynos_drm_vidi.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"5.10.253","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.203","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.167","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.130","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.14","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.4","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/exynos/exynos_drm_drv.h","drivers/gpu/drm/exynos/exynos_drm_vidi.c"]}],"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"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:07.131Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/45xxx/CVE-2026-45956.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-45956","state":"PUBLISHED","datePublished":"2026-05-27T12:18:11.972Z","dateUpdated":"2026-10-21T12:41:06.321Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-13T15:03:33.088Z"},"containers":{"cna":{"title":"drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()\n\nvidi_connection_ioctl() retrieves the driver_data from drm_dev->dev to\nobtain a struct vidi_context pointer. However, drm_dev->dev is the\nexynos-drm master device, and the driver_data contained therein is not\nthe vidi component device, but a completely different device.\n\nThis can lead to various bugs, ranging from null pointer dereferences and\ngarbage value accesses to, in unlucky cases, out-of-bounds errors,\nuse-after-free errors, and more.\n\nTo resolve this issue, we need to store/delete the vidi device pointer in\nexynos_drm_private->vidi_dev during bind/unbind, and then read this\nexynos_drm_private->vidi_dev within ioctl() to obtain the correct\nstruct vidi_context pointer."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"2987642c5213508c6c9e718324c0d5289a92c474","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"65d1213baffa363f2eb1117b1dc7acc573b890f8","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"875fa28690e93ed5296c31d3344556c6bb867234","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"21ca24ba51a2c28bcc4df9d7e5a40b0eb66ab76d","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"e1aed617eb80b49eac2f8c7bb7a0990f641dd59b","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"b5fc86d753dd4c281a943b92f0eef02d31af03d7","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"a540f767642f75240a6c35f6a65b69e44cfcea9d","versionType":"git"},{"version":"cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322","status":"affected","lessThan":"d3968a0d85b211e197f2f4f06268a7031079e0d0","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/exynos/exynos_drm_drv.h","drivers/gpu/drm/exynos/exynos_drm_vidi.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"5.10.253","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.203","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.167","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.130","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.14","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.4","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/exynos/exynos_drm_drv.h","drivers/gpu/drm/exynos/exynos_drm_vidi.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2987642c5213508c6c9e718324c0d5289a92c474"},{"url":"https://git.kernel.org/stable/c/65d1213baffa363f2eb1117b1dc7acc573b890f8"},{"url":"https://git.kernel.org/stable/c/875fa28690e93ed5296c31d3344556c6bb867234"},{"url":"https://git.kernel.org/stable/c/21ca24ba51a2c28bcc4df9d7e5a40b0eb66ab76d"},{"url":"https://git.kernel.org/stable/c/e1aed617eb80b49eac2f8c7bb7a0990f641dd59b"},{"url":"https://git.kernel.org/stable/c/b5fc86d753dd4c281a943b92f0eef02d31af03d7"},{"url":"https://git.kernel.org/stable/c/a540f767642f75240a6c35f6a65b69e44cfcea9d"},{"url":"https://git.kernel.org/stable/c/d3968a0d85b211e197f2f4f06268a7031079e0d0"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is reached only through the Exynos DRM primary device node via DRM_IOCTL_EXYNOS_VIDI_CONNECTION (local ioctl path through drm_ioctl), not over the network.\nAC:L - Once the VIDI driver is enabled and the caller passes DRM_AUTH checks, every call uses the wrong context pointer deterministically; the attacker fully controls ioctl arguments and timing without external race luck.\nPR:L - Exploitation requires a local process that can open the primary DRM device and satisfy DRM_AUTH (authenticated DRM client or CAP_SYS_ADMIN, which includes user-namespace admin); it does not require init-namespace root, but unauthenticated users cannot reach the ioctl.\nUI:N - No victim interaction is required beyond the attacker (or their already-authenticated DRM client) issuing the malicious ioctl.\nS:U - Impact is kernel memory corruption and instability within the same kernel security domain; it is not a VM escape, IOMMU bypass, or cross-authority sandbox break.\nC:H - Type-confused reads/writes against a drm_device masquerading as vidi_context can dereference attacker-influenced garbage pointers and, on affected versions in the CVE window, companion paths also allowed unsafe EDID handling; per project guidance, UAF/wrong-free and uncontrolled reads warrant High confidentiality impact.\nI:H - The ioctl writes connection state and EDID pointers into misaligned drm_device fields and may call drm_edid_free() on attacker-influenced addresses, enabling arbitrary kernel memory corruption and potential control-flow hijack, not merely a benign crash.\nA:H - The fix and commit message document NULL dereferences, out-of-bounds access, and use-after-free outcomes that can oops or panic the kernel; any such crash maps to High availability impact."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-21T12:41:06.321Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.10.253"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.15.203"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.1.167"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.6.130"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.12.114"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.18.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.19.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}