Skip to content

Subkey rollback protection can be bypassed with older subkey versions

Moderate
jenswikl published GHSA-fhcg-pp56-8v75 Jun 30, 2026

Package

OP-TEE Core (OP-TEE)

Affected versions

>= 3.20.0

Patched versions

4.11.0 and later

Description

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

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

CVE ID

CVE-2026-44362

Weaknesses

Improper Authorization

The product does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action. Learn more on MITRE.