Optee-os
Уязвимости
21
Эксплуатируемые
0
Макс. CVSS
9.8
Макс. EPSS
0.03848
Распределение по критичности
Критический
7
Высокий
9
Средний
5
Низкий
0
Также сопоставлено как (исходные строки): optee-os
Топ уязвимостей
CVE-2019-1010298Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Переполнение буфера. Воздействие: выполнение кода в контексте ядра TEE. Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2019-1010297Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Переполнение буфера. Воздействие: выполнение кода в контексте ядра TEE. Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2019-1010296Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Переполнение буфера. Воздействие: выполнение кода в контексте ядра TEE (kernel). Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2019-1010295Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Переполнение буфера. Воздействие: повреждение памяти и раскрытие содержимого памяти. Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2019-1010293Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Пересечение границ. Воздействие: повреждение памяти самого TEE. Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2019-1010292Linaro/OP-TEE OP-TEE до версии v3.4.0 подвержен уязвимости: Проверки границ. Воздействие: это может привести к повреждению любой памяти, к которой может получить доступ TA. Компонент: optee_os. Исправленная версия: v3.4.0.
CVE-2019-25052В Linaro OP-TEE до версии 3.7.0, используя несогласованные или неправильно сформированные данные, можно вызывать функции обновления и завершения криптографии напрямую, что приводит к сбою, который может привести к утечке конфиденциальной информации.
CVE-2022-46152OP-TEE Trusted OS - это реализация безопасной стороны проекта OP-TEE, Trusted Execution Environment. Версии до 3.19.0 содержат уязвимость, связанную с неправильной проверкой индекса массива. Функция `cleanup_shm_refs()` вызывается как `entry_invoke_command()`, так и `entry_open_session()`. Команды `OPTEE_MSG_CMD_OPEN_SESSION` и `OPTEE_MSG_CMD_INVOKE_COMMAND` могут быть выполнены из обычного мира через OP-TEE SMC. Эта функция не проверяет аргумент `num_params`, который ограничен только `OPTEE_MSG_MAX_NUM_PARAMS` (127) в функции `get_cmd_buffer()`. Следовательно, злоумышленник в обычном мире может создать вызов SMC, который вызовет чтение за пределами границ в `cleanup_shm_refs` и потенциально освобождение поддельных объектов в функции `mobj_put()`. Злоумышленник из обычного мира, имеющий разрешение на выполнение инструкций SMC, может использовать этот недостаток. Разработчики считают, что эта проблема допускает локальное повышение привилегий из обычного мира в безопасный мир. Версия 3.19.0 содержит исправление этой проблемы. Известных обходных путей нет.
CVE-2026-33317OP-TEE - это доверенная среда исполнения (TEE), разработанная в качестве компаньона для небезопасного ядра Linux, работающего на Arm; ядра Cortex-A с использованием технологии TrustZone. В версиях 3.13.0-4.10.0 отсутствующие проверки в `entry_get_attribute_value()` в `ta/pkcs11/src/object.c` могут привести к тому, что они могут быть удалены из кучи PKCS#11 TA или сбою. При прикованы к читанию OOB функция PKCS#11 TA `PKCS11_CMD_GET_ATTRIBUTE_VALUE` или `entry_get_attribute_value()` может быть обманута в чтении не более 7 байт за пределами конца буфера шаблона и записи за пределами буфера шаблона с содержанием атрибута объекта PKCS#11. Комбайны e031c4e5623d9d9fd9fd2e85797e4cbdca9, 16926d5a464c464d6re6464fc1835a249900 и 149e8d7ecc4ef8bb00ab4a37fd2cede6d7d7d7d7a4c
CVE-2025-46733OP-TEE - это доверенная среда выполнения (TEE), разработанная в качестве дополнения к не-безопасному ядру Linux, работающему на ядрах Arm; Cortex-A с использованием технологии TrustZone. В версии 4.5.0 использование специально созданного двоичного файла tee-supplicant, работающего в пользовательском пространстве REE, позволяет злоумышленнику вызвать панику в TA, использующем API безопасного хранилища libutee. Многие функции в libutee, в частности те, которые составляют API безопасного хранилища, будут вызывать панику, если системный вызов возвращает неожиданный код возврата. Такое поведение продиктовано спецификацией внутренней основной API TEE. Однако в реализации OP-TEE коды возврата операций безопасного хранилища передаются без очистки из REE tee-supplicant через драйвер tee ядра Linux, через ядро OP-TEE, обратно в libutee. Таким образом, злоумышленник, имеющий доступ к пользовательскому пространству REE и возможность остановить tee-supplicant и заменить его своим собственным процессом (обычно тривиально для пользователя root, и в зависимости от того, как настроены разрешения, потенциально доступно даже менее привилегированным пользователям), может запустить вредоносный процесс tee-supplicant, который отвечает на запросы хранилища с неожиданными кодами ответа, вызывая панику в запрашивающем TA. Это особенно опасно для TA, построенных с `TA_FLAG_SINGLE_INSTANCE` (соответствует `gpd.ta.singleInstance`) и `TA_FLAG_INSTANCE_KEEP_ALIVE` (соответствует `gpd.ta.keepAlive`). Поведение этих TA может зависеть от памяти, которая сохраняется между сеансами, и способность злоумышленника вызвать панику в TA и перезагрузить его с чистой памятью может поставить под угрозу поведение этих TA. Критическим примером этого является optee_ftpm TA. Он использует сохраненную память для хранения значений PCR, которые должны быть неизменными. Злоумышленник, который может вызвать панику в fTPM TA, может сбросить PCR и затем расширить их PCR с тем, что он выберет, фальсифицируя измерения загрузки, доступ к запечатанным данным и потенциально многое другое. Влияние этой проблемы существенно зависит от поведения затронутых TA. Для некоторых это может проявиться как отказ в обслуживании, в то время как для других, как fTPM TA, это может привести к раскрытию конфиденциальных данных. Любой, кто использует fTPM TA, подвержен влиянию, но подобные атаки могут быть возможны и на другие TA, которые используют API безопасного хранилища. Исправление доступно в коммите 941a58d78c99c4754fbd4ec3079ec9e1d596af8f [1].
Источники:
- [1] https://github.com/OP-TEE/optee_os/security/advisories/GHSA-f35r-hm2m-p6c3
- [2] https://github.com/OP-TEE/optee_os/commit/941a58d78c99c4754fbd4ec3079ec9e1d596af8f
CVE-2026-40290OP-TEE - это доверенная среда исполнения (TEE), разработанная в качестве компаньона для небезопасного ядра Linux, работающего на Arm; ядра Cortex-A с использованием технологии TrustZone. Начиная с версии 3.16.0 и до 4.11.0, гоночное условие без пользователя (UAF) существует в логике разрушения общей памяти FF-A в потоках OP-TEE SPMC/SP. Это применимо только тогда, когда OP-TEE настроен как SPMC для S-EL0 SPs, то есть с `CFG_SECURE_PARTITION=y`. Функция `sp_mem_remove()`, отвечающая за освобождение записей в `smem->receivers` и `smem->regions, не может приобрести глобальный `sp_mem_lock` до выполнения операций `sp_mem_lock` Одновременно другие пути кода, такие как `sp_mem_get_receiver()`, итерируют эти же списки, не удерживая замок, или, как `sp_mem_is_shared()`, итерируют при удержании замка, но не сериализуются против незащищенного `free()` в `sp_mem_remove()`. Это создает кросс-поточный раса, где нить, итерирующую список, может получить указатель на запись (например, `structsp_mem_map_region` или `structsp_mem_receiver`), а затем другой поток вызывает `sp_mem_remove()`, освобождая объект. Когда первый поток возобновляется и указывает на указатель, это приводит к уязвимости Use-After-Free. Версия 4.11.0 исправляет проблему.
CVE-2021-44149Обнаружена проблема в Trusted Firmware OP-TEE Trusted OS до 3.15.0. Драйвер OPTEE-OS CSU для устройств NXP i.MX6UL SoC не имеет конфигурации доступа безопасности для регистров, связанных с пробуждением, что приводит к обходу TrustZone, поскольку NonSecure World может выполнять произвольные операции чтения/записи памяти в памяти Secure World. Это включает в себя v цикл.
CVE-2026-33662OP-TEE - это доверенная среда исполнения (TEE), разработанная в качестве компаньона для небезопасного ядра Linux, работающего на Arm; ядра Cortex-A с использованием технологии TrustZone. С 3.8.0 до 4.10, в функции emsa_pkcs1_v1_5_encode() в core/drivers/crypto/crypto_api/acipher/rsassa.c количество необходимого прокладки, "размер PS", рассчитывается путем вычитания размера дайджепа и других полей, необходимых для EMA-PKCS1-v1_5 кодирования, из размера модуля. При выборе достаточно маленького модуля это вычитание может переполняться. Набивка добавляется в виде строки байтов 0xFF с вызовом memset(), а недополученное целое число заставит вызов memset() перезаписать до тех пор, пока OP-TEE не рухнет. Это касается только платформ, регистрирующие ускорение RSA.
CVE-2019-1010294Linaro/OP-TEE OP-TEE 3.3.0 и более ранние версии подвержены уязвимости: Ошибка округления. Воздействие: потенциальная утечка кода и/или данных из предыдущего доверенного приложения. Компонент: optee_os. Исправленная версия: 3.4.0 и более поздние.
CVE-2017-1000412Решение Linaro с открытым исходным кодом TEE под названием OP-TEE, версия 2.4.0 (и более старые), уязвимо для атаки bellcore в коде LibTomCrypt, что приводит к компрометации закрытого ключа RSA.
CVE-2021-36133Драйвер OPTEE-OS CSU для устройств NXP i.MX SoC не имеет конфигурации доступа безопасности для нескольких моделей, что приводит к обходу TrustZone, поскольку NonSecure World может выполнять произвольные операции чтения/записи памяти в памяти Secure World. Это связано с периферийным устройством с поддержкой DMA.
CVE-2023-41325OP-TEE — это доверенная среда выполнения (TEE), разработанная как компаньон для небезопасного ядра Linux, работающего на ядрах Arm Cortex-A с использованием технологии TrustZone. Начиная с версии 3.20 и до версии 3.22, `shdr_verify_signature` может выполнять двойное освобождение. `shdr_verify_signature` использовался для проверки двоичного файла TA перед его загрузкой. Чтобы проверить его подпись, выделите память для ключа RSA. Функция выделения ключа RSA (`sw_crypto_acipher_alloc_rsa_public_key`) попытается выделить память (которая является кучей памяти optee). Ключ RSA состоит из экспоненты и модуля (представлены как переменные `e`, `n`), и его выделение не является атомарным, поэтому он может быть успешно выделен для `e`, но не для `n`. В этом случае `sw_crypto_acipher_alloc_rsa_public_key` освободит `e` и вернет его как неудачный, но переменная «e» останется как уже освобожденный адрес памяти. `shdr_verify_signature` снова освободит эту память (которая является `e`), даже если она была освобождена при неудачном выделении ключа RSA. Исправление доступно в версии 3.22. Известных обходных путей нет.
CVE-2022-47549Операция небезопасного доступа к памяти в optee_os в TrustedFirmware Open Portable Trusted Execution Environment (OP-TEE) до версии 3.20 позволяет физически приближенному злоумышленнику обойти проверку подписи и установить вредоносные доверенные приложения посредством электромагнитных инъекций ошибок.
CVE-2017-1000413Решение Linaro с открытым исходным кодом TEE под названием OP-TEE, версия 2.4.0 (и более старые), уязвимо для атаки по времени в частях Montgomery libMPA в OP-TEE, что приводит к компрометации закрытого ключа RSA.
CVE-2026-45702OP-TEE - это доверенное исполнение среды (TEE), разработанное в качестве компаньона для небезопасного ядра Linux, работающего на Arm; ядра Cortex-A с использованием технологии TrustZone. Начиная с версии 4.3.0 и до версии 4.11.0, уязвимость путаницы типа существует в ОП-TEE при обработке запроса FFA_MEM_SHARE из обычного мира. Это применимо только тогда, когда OP-TEE настроен как SPMC для S-EL0 SPs, то есть с `CFG_CORE_SEL1_SPMC=y` и `CFG_SECURE_PARTITION=y`. Версия 4.11.0 исправляет проблему.
CVE-2026-45614OP-TEE - это доверенное исполнение среды (TEE), разработанная в качестве компаньона для небезопасного ядра Linux, работая на Arm; ядра Cortex-A с использованием технологии TrustZone. До версии 4.11.0, на многих общих секретных путях ECDH, открытый ключ не проверяется как точка на правильной кривой. Передавая около 30-40 открытых ключей OP-TEE, закрытый ключ может быть реконструирован обычным мировым злоумышленником. При вызове TEE_DeriveKey открытый ключ обеспечивается полным значениями X и Y, но точка (X, Y) может не соответствовать математике `Y^2 == X^3 + aX + b mod P` для конкретной кривой, которая используется. Когда эти открытые ключи не отклоняются, злоумышленник может выбрать открытые ключи, так что каждый вызов DeriveKey будет просачиваться `d % r` где `d` находится закрытый ключ и `r` происходит из соотношения между правильной кривой и выбранной атакующим кривой. С достаточным количеством утечек теорема об остатках Китая может быть использована для восстановления полного закрытого ключа. Версия 4.11.0 исправляет проблему.