Summary
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.
Impact
An attacker can perform a downgrade attack by replacing a TA with a version signed by a previously revoked or weaker subkey chain, effectively bypassing revocation and breaking the TA trust chain.
Patches
0001-core-copy-subkey_version-in-shdr_load_pub_key.patch
Workarounds
N/A
Reported by
Integrity : Arm / Trusted Firmware
Timeline
2026-03-30 Report received
2026-03-31 Confirmed security issue and severity
2026-04-29: Fix reviewed
2026-04-29: Propose disclosure date and share with stakeholders
2026-06-30: Publish fix
2026-06-30: Publish advisory
Summary
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 functionshdr_load_pub_key()parses subkey headers but does not assign thesubkey_versionto the runtimeshdr_pub_keystructure.As a result, the
key->versionfield remains at zero regardless of the version specified in the header. Whenree_fs_ta_open()incore/kernel/ree_fs_ta.ccallscheck_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.
Impact
An attacker can perform a downgrade attack by replacing a TA with a version signed by a previously revoked or weaker subkey chain, effectively bypassing revocation and breaking the TA trust chain.
Patches
0001-core-copy-subkey_version-in-shdr_load_pub_key.patch
Workarounds
N/A
Reported by
Integrity : Arm / Trusted Firmware
Timeline
2026-03-30 Report received
2026-03-31 Confirmed security issue and severity
2026-04-29: Fix reviewed
2026-04-29: Propose disclosure date and share with stakeholders
2026-06-30: Publish fix
2026-06-30: Publish advisory