OP-TEE — это доверенная среда выполнения (TEE), разработанная в качестве дополнения к незащищенному ядру Linux, работающему на Arm; Ядра Cortex-A с использованием технологии TrustZone. Начиная с версии 3.20.0 и до версии 4.11.0, уязвимость в защите от отката подраздела OP-TEE позволяет использовать отозванные или более старые версии подраздела, поскольку система не может распространять данные управления версиями во время процесса загрузки доверенного приложения (TA). В `core/crypto/signed_hdr.c` функция `shdr_load_pub_key()` анализирует заголовки подразделов, но не присваивает `subkey_version` структуре `shdr_pub_key` среды выполнения.
В результате поле `key->version` остается нулевым независимо от версии, указанной в заголовке. Когда `ree_fs_ta_open()` в `core/kernel/ree_fs_ta.c` вызывает `check_update_version()`, он передает эту обнуленную версию в базу данных отката. Поскольку база данных никогда не получает для записи ненулевую версию, она никогда не продвигается вперед, эффективно обходя проверку отката и позволяя успешно загружаться ТА, подписанным с более ранними цепочками подразделов.
Это влияет на конфигурации основной линии OP-TEE, которые используют цепочки подписи на основе подразделов для аутентификации доверенного приложения (TA). Версия 4.11.0 содержит патч. Никаких известных обходных путей не существует.
Показать оригинальное описание (EN)
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.20.0 and prior to version 4.11.0, a vulnerability in OP-TEE’s subkey rollback protection allows the use of revoked or older subkey versions because the system fails to propagate versioning data during the Trusted Application (TA) loading process. In `core/crypto/signed_hdr.c`, the function `shdr_load_pub_key()` parses subkey headers but does not assign the `subkey_version` to the runtime `shdr_pub_key` structure. As a result, the `key->version` field remains at zero regardless of the version specified in the header. When `ree_fs_ta_open()` in `core/kernel/ree_fs_ta.c` calls `check_update_version()`, it passes this zeroed version to the rollback database. Because the database never receives a non-zero version to record, it never advances, effectively bypassing the rollback check and allowing TAs signed with downgraded subkey chains to load successfully. This impacts OP-TEE mainline configurations that utilize subkey-based signing chains for Trusted Application (TA) authentication. Version 4.11.0 contains a patch. No known workarounds are available.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Trustedfirmware Op-Tee
cpe:2.3:o:trustedfirmware:op-tee:*:*:*:*:*:*:*:*
|
3.20.0
|
<= 4.10.0
|