drm: bridge: adv7511: unregister cec i2c device after cec adapter (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.18 % · percentile 7 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Modified
Description
In the Linux kernel, the following vulnerability has been resolved: drm: bridge: adv7511: unregister cec i2c device after cec adapter cec_unregister_adapter() assumes that the underlying adapter ops are callable. For example, if the CEC adapter currently has a valid physical address, then the unregistration procedure will invalidate the physical address by setting it to f.f.f.f. Whence the following kernel oops observed after removing the adv7511 module: Unable to handle kernel execution of user memory at virtual address 0000000000000000 Internal error: Oops: 86000004 [#1] PREEMPT_RT SMP Call trace: 0x0 adv7511_cec_adap_log_addr+0x1ac/0x1c8 [adv7511] cec_adap_unconfigure+0x44/0x90 [cec] __cec_s_phys_addr.part.0+0x68/0x230 [cec] __cec_s_phys_addr+0x40/0x50 [cec] cec_unregister_adapter+0xb4/0x118 [cec] adv7511_remove+0x60/0x90 [adv7511] i2c_device_remove+0x34/0xe0 device_release_driver_internal+0x114/0x1f0 driver_detach+0x54/0xe0 bus_remove_driver+0x60/0xd8 driver_unregister+0x34/0x60 i2c_del_driver+0x2c/0x68 adv7511_exit+0x1c/0x67c [adv7511] __arm64_sys_delete_module+0x154/0x288 invoke_syscall+0x48/0x100 el0_svc_common.constprop.0+0x48/0xe8 do_el0_svc+0x28/0x88 el0_svc+0x1c/0x50 el0t_64_sync_handler+0xa8/0xb0 el0t_64_sync+0x15c/0x160 Code: bad PC value ---[ end trace 0000000000000000 ]--- Protect against this scenario by unregistering i2c_cec after unregistering the CEC adapter. Duly disable the CEC clock afterwards too.
References
- https://git.kernel.org/stable/c/3747465c5da7a11957a34bbb9485d9fc253b91cc
- https://git.kernel.org/stable/c/f369fb4deed7ab997cfa703dc85ec08b3adc1af8
- https://git.kernel.org/stable/c/4d4d5bc659206b187263190ad9a03513f625659d
- https://git.kernel.org/stable/c/86ae5170786aea3e1751123ca55700fb9b37b623
- https://git.kernel.org/stable/c/40cdb02cb9f965732eb543d47f15bef8d10f0f5f
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | CISA-ADP |
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · nvd@nist.gov (Primary) |
| CVSS 3.1 | HIGH 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · 134c704f-9b21-4f2e-91b3-4a467353bcc0 (Secondary) |
European references
- ENISA EUVD · EUVD-2025-29879
- GCVE · GCVE-0-2022-50412
CERT-FR advisories
- CERTFR-2025-AVI-0895 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
Affected configurations (NVD CPE)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 4.15 < 5.10.234cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.11 < 5.15.75cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.16 < 5.19.17cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.0 < 6.0.3
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 3b1b975003e4a3da4b93ab032487a3ae4afca7b5 < 3747465c5da7a11957a34bbb9485d9fc253b91cc ; affected 3b1b975003e4a3da4b93ab032487a3ae4afca7b5 < f369fb4deed7ab997cfa703dc85ec08b3adc1af8 ; affected 3b1b975003e4a3da4b93ab032487a3ae4afca7b5 < 4d4d5bc659206b187263190ad9a03513f625659d ; affected 3b1b975003e4a3da4b93ab032487a3ae4afca7b5 < 86ae5170786aea3e1751123ca55700fb9b37b623 ; affected 3b1b975003e4a3da4b93ab032487a3ae4afca7b5 < 40cdb02cb9f965732eb543d47f15bef8d10f0f5f |
| Linux · Linux | affected 4.15 ; unaffected 0 < 4.15 ; unaffected 5.10.234 ≤ 5.10.* ; unaffected 5.15.75 ≤ 5.15.* ; unaffected 5.19.17 ≤ 5.19.* ; unaffected 6.0.3 ≤ 6.0.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |