Live › vulnerability › CVE-2026-99024
Go to dashboardThe OP-TEE driver in the Linux kernel registers its TEE device nodes before its internal structures and locks are set up, so a context opened in that window uses uninitialized mutexes and a NULL pointer. The sources do not state what an attacker gets beyond a likely kernel crash or memory corruption.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Systems running a Linux kernel with the OP-TEE driver on hardware that uses OP-TEE as a trusted execution environment, which is typically ARM boards with TrustZone. Systems without OP-TEE hardware or with the driver not loaded are likely not affected, though the sources do not state this explicitly.
No product ranges from the sources yet.
uname -r and compare against the kernel release that contains the fix, which the sources do not namels /dev/tee0 /dev/teepriv0Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
In the Linux kernel, the following vulnerability has been resolved:
optee: register TEE devices only once fully initialized
optee_probe() called tee_device_register() on both the client and the supplicant device before the rest of struct optee had been initialized.
tee_device_register() calls cdev_device_add(), which does two things at once: it creates /dev/tee0 and /dev/teepriv0, and it links the device into the tee class so that class_find_device() can find it. From that moment on the device is reachable both from user space via tee_open() and from kernel space via tee_client_open_context(). The only gate in teedev_open() is tee_device_get(), which merely checks that teedev->desc is non-NULL, which was already set by tee_device_alloc(). Therefore, there is effectively no gate at all.
A context opened in that window can run against a struct optee where
Any open session or invoke during this window takes uninitialized mutexes and dereferences a NULL pointer.
Fix it by moving both tee_device_register() calls down to the point where all of struct optee is set up.
[JW: adding fixes and cc]
This page as .md · .json · in your agent: get_signal("CVE-2026-99024")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.