{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-35785","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-17T12:19:12.338Z","datePublished":"2024-05-17T12:24:28.069Z","dateUpdated":"2026-08-05T11:29:53.994Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:29:53.994Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ntee: optee: Fix kernel panic caused by incorrect error handling\n\nThe error path while failing to register devices on the TEE bus has a\nbug leading to kernel panic as follows:\n\n[   15.398930] Unable to handle kernel paging request at virtual address ffff07ed00626d7c\n[   15.406913] Mem abort info:\n[   15.409722]   ESR = 0x0000000096000005\n[   15.413490]   EC = 0x25: DABT (current EL), IL = 32 bits\n[   15.418814]   SET = 0, FnV = 0\n[   15.421878]   EA = 0, S1PTW = 0\n[   15.425031]   FSC = 0x05: level 1 translation fault\n[   15.429922] Data abort info:\n[   15.432813]   ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000\n[   15.438310]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0\n[   15.443372]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0\n[   15.448697] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000d9e3e000\n[   15.455413] [ffff07ed00626d7c] pgd=1800000bffdf9003, p4d=1800000bffdf9003, pud=0000000000000000\n[   15.464146] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP\n\nCommit 7269cba53d90 (\"tee: optee: Fix supplicant based device enumeration\")\nlead to the introduction of this bug. So fix it appropriately."}],"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 vulnerable code is reached only by opening the local character device /dev/teepriv0, which schedules optee_bus_scan() → optee_enumerate_devices(PTA_CMD_GET_DEVICES_SUPP); there is no network or remote-peer input anywhere on the path.\nAC:L - On an affected platform the device_register() failure is deterministic (the reporter hit the panic on every boot at ~15s), so an attacker who triggers the supplicant enumeration reliably lands on the use-after-free; the freed slab object is a generic GFP_KERNEL kmalloc allocation that can be sprayed from userspace, and the failure can additionally be induced via attacker-generated memory pressure (-ENOMEM in kobject_add/kernfs).\nPR:L - The kernel imposes no capability or permission check in tee_open()/optee_open() for the privileged node — access is governed purely by udev/DAC, and OP-TEE's shipped rules expose teepriv[0-9]* at mode 0660 with a group plus TAG+=\"uaccess\", so an ordinary local user in the teepriv group or at the local seat can open it and trigger the scan.\nUI:N - The attacker opens /dev/teepriv0 themselves to schedule the bus-scan work; no victim action is required, and in the natural case the crash occurs unattended when the tee-supplicant system daemon starts at boot.\nS:U - The freed object and all corrupted structures (struct tee_client_device, kobject, kernfs nodes) live in normal kernel memory under the same security authority; nothing crosses into the secure world, a hypervisor, or an IOMMU boundary.\nC:H - The use-after-free dereferences attacker-groomable freed memory through a chain of pointers (kobj->sd → parent->priv → kobj->ktype->sysfs_ops), giving a controllable read primitive over arbitrary kernel addresses once the slab object is reallocated with attacker data.\nI:H - The same UAF drives __kernfs_create_file() and kobject_get_ownership() through attacker-controlled pointers, producing writes into attacker-chosen addresses (kernfs rbtree links, parent->dir.subdirs) and an indirect call via ktype->get_ownership — sufficient for control-flow hijack and privilege escalation.\nA:H - The bug is a confirmed kernel panic (Oops with a level-1 translation fault in the optee_bus_scan kworker), and on affected platforms it reproduces every boot, rendering the system unusable."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/tee/optee/device.c"],"versions":[{"version":"a953e45ebeae9a5ce342c012f7eb2a92cc8af89b","lessThan":"bc40ded92af55760d12bec8222d4108de725dbe4","status":"affected","versionType":"git"},{"version":"01c13d8a95e0909f0081d6e3e8a891761992371b","lessThan":"4b12ff5edd141926d49c9ace4791adf3a4902fe7","status":"affected","versionType":"git"},{"version":"1c9561b438cbe61e78515fc7b16dc7fb8cf0b763","lessThan":"e5b5948c769aa1ebf962dddfb972f87d8f166f95","status":"affected","versionType":"git"},{"version":"d3c4786b01aad8c377718f92d6d9b15906ee0a2a","lessThan":"520f79c110ff712b391b3d87fcacf03c74bc56ee","status":"affected","versionType":"git"},{"version":"7269cba53d906cf257c139d3b3a53ad272176bca","lessThan":"bfa344afbe472a9be08f78551fa2190c1a07d7d3","status":"affected","versionType":"git"},{"version":"7269cba53d906cf257c139d3b3a53ad272176bca","lessThan":"95915ba4b987cf2b222b0f251280228a1ff977ac","status":"affected","versionType":"git"},{"version":"5.10.204","lessThan":"5.10.215","status":"affected","versionType":"semver"},{"version":"5.15.143","lessThan":"5.15.154","status":"affected","versionType":"semver"},{"version":"6.1.68","lessThan":"6.1.84","status":"affected","versionType":"semver"},{"version":"6.6.7","lessThan":"6.6.24","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/tee/optee/device.c"],"versions":[{"version":"6.7","status":"affected"},{"version":"0","lessThan":"6.7","status":"unaffected","versionType":"semver"},{"version":"5.10.215","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.154","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.84","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.24","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.7.12","lessThanOrEqual":"6.7.*","status":"unaffected","versionType":"semver"},{"version":"6.8","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.204","versionEndExcluding":"5.10.215"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.143","versionEndExcluding":"5.15.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.68","versionEndExcluding":"6.1.84"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.7","versionEndExcluding":"6.6.24"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.7.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.8"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/bc40ded92af55760d12bec8222d4108de725dbe4"},{"url":"https://git.kernel.org/stable/c/4b12ff5edd141926d49c9ace4791adf3a4902fe7"},{"url":"https://git.kernel.org/stable/c/e5b5948c769aa1ebf962dddfb972f87d8f166f95"},{"url":"https://git.kernel.org/stable/c/520f79c110ff712b391b3d87fcacf03c74bc56ee"},{"url":"https://git.kernel.org/stable/c/bfa344afbe472a9be08f78551fa2190c1a07d7d3"},{"url":"https://git.kernel.org/stable/c/95915ba4b987cf2b222b0f251280228a1ff977ac"}],"title":"tee: optee: Fix kernel panic caused by incorrect error handling","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T03:21:47.405Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/bc40ded92af55760d12bec8222d4108de725dbe4","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/4b12ff5edd141926d49c9ace4791adf3a4902fe7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e5b5948c769aa1ebf962dddfb972f87d8f166f95","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/520f79c110ff712b391b3d87fcacf03c74bc56ee","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/bfa344afbe472a9be08f78551fa2190c1a07d7d3","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/95915ba4b987cf2b222b0f251280228a1ff977ac","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]}]},{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-35785","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T15:42:54.358717Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-11T17:33:23.278Z"}}]},"dataVersion":"5.2"}