CVE-2026-42546
Full vulnerability record from the local CVENow database.
Description
OP-TEE is a Trusted Execution Environment (TEE) designed as companion to a non-secure Linux kernel running on Arm; Cortex-A cores using the TrustZone technology. Starting in version 3.3.0 and prior to version 4.11.0, a resource leak exists in OP-TEE’s shared memory cleanup logic because the function `cleanup_shm_refs()` in `core/tee/entry_std.c` fails to apply a required bitmask (`OPTEE_MSG_ATTR_TYPE_MASK`) to parameter attributes. When processing non-contiguous memory parameters from a normal-world caller, the system fails to match the attribute type in its internal switch statement and skips the necessary mobj_put() call. This results in a persistent reference leak of `mobj_reg_shm` objects, which remain on internal lists with dangling refcounts. This affects non-FF-A configurations that support non-contiguous, non-secure shared memory. Over time, these accumulated leaks progressively consume the secure-world heap, degrading the system's ability to service trusted application operations and eventually requiring a reboot to recover. Version 4.11.0 contains a patch. No known workarounds are available.
View original CVE JSON
{
"id": "CVE-2026-42546",
"sourceIdentifier": "[email protected]",
"published": "2026-07-06T20:16:33.257",
"lastModified": "2026-10-25T20:10:00.147",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "OP-TEE is a Trusted Execution Environment (TEE) designed as companion to a non-secure Linux kernel running on Arm; Cortex-A cores using the TrustZone technology. Starting in version 3.3.0 and prior to version 4.11.0, a resource leak exists in OP-TEE’s shared memory cleanup logic because the function `cleanup_shm_refs()` in `core/tee/entry_std.c` fails to apply a required bitmask (`OPTEE_MSG_ATTR_TYPE_MASK`) to parameter attributes. When processing non-contiguous memory parameters from a normal-world caller, the system fails to match the attribute type in its internal switch statement and skips the necessary mobj_put() call. This results in a persistent reference leak of `mobj_reg_shm` objects, which remain on internal lists with dangling refcounts. This affects non-FF-A configurations that support non-contiguous, non-secure shared memory. Over time, these accumulated leaks progressively consume the secure-world heap, degrading the system's ability to service trusted application operations and eventually requiring a reboot to recover. Version 4.11.0 contains a patch. No known workarounds are available."
},
{
"lang": "es",
"value": "OP-TEE es un Entorno de Ejecución Confiable (TEE) diseñado como compañero de un kernel de Linux no seguro que se ejecuta en núcleos Arm Cortex-A usando la tecnología TrustZone. A partir de la versión 3.3.0 y antes de la versión 4.11.0, existe una fuga de recursos en la lógica de limpieza de memoria compartida de OP-TEE porque la función ’cleanup_shm_refs()’ en ’core/tee/entry_std.c’ no aplica una máscara de bits requerida (’OPTEE_MSG_ATTR_TYPE_MASK’) a los atributos de los parámetros. Al procesar parámetros de memoria no contigua de un llamador del mundo normal, el sistema no logra hacer coincidir el tipo de atributo en su declaración ’switch’ interna y omite la llamada necesaria a ’mobj_put()’. Esto resulta en una fuga de referencia persistente de objetos ’mobj_reg_shm’, que permanecen en listas internas con contadores de referencia colgantes. Esto afecta a las configuraciones no FF-A que soportan memoria compartida no contigua y no segura. Con el tiempo, estas fugas acumuladas consumen progresivamente el ’heap’ del mundo seguro, degradando la capacidad del sistema para atender operaciones de aplicaciones confiables y eventualmente requiriendo un reinicio para recuperarse. La versión 4.11.0 contiene un parche. No se conocen soluciones alternativas disponibles."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "OP-TEE",
"product": "optee_os",
"versions": [
{
"version": ">= 3.3.0, < 4.11.0",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:L",
"baseScore": 3.8,
"baseSeverity": "LOW",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "CHANGED",
"confidentialityImpact": "NONE",
"integrityImpact": "NONE",
"availabilityImpact": "LOW"
},
"exploitabilityScore": 2.0,
"impactScore": 1.4
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-06T20:50:39.850245Z",
"id": "CVE-2026-42546",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-770"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:trustedfirmware:op-tee:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3.0",
"versionEndIncluding": "4.10.0",
"matchCriteriaId": "8523949E-5FB1-4A9C-9296-F28C82372677"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/OP-TEE/optee_os/security/advisories/GHSA-c7j8-fgqw-rcgp",
"source": "[email protected]",
"tags": [
"Vendor Advisory"
]
}
]
}