This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] CC254x OAD: AES-CBC MAC verification vulnerability

Guru 67811 points
Other Parts Discussed in Thread: CC2541, CC2540, BLE-STACK


In the CC254x OAD solution:

  • aesSignature() function in BEM/app/bem_main.c uses Message Authentication Code (MAC) to verify the OAD image signature.

The signature verification implementation uses a non-constant time memcmp function, which potentially enables the MAC check to be vulnerable to a timing attack.

CVSS base score: 8.1

CVSS Vector: (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)

Affected products

  • CC2540/CC2541 BLE_Stack v1.5.0 and earlier

Potentially Impacted features

  • The potential vulnerability can impact the OAD image signing and encryption functionality. 

Suggested fixes

The following service-pack release addresses the potential vulnerability with a constant time memcmp function in aesSignature():

Customers of affected products should apply this service-pack and consider further system-level security measures as appropriate. Customers are solely responsible for the security of their products and are encouraged to assess the possible risk of any potential security vulnerability.


We would like to thank researchers from COSIC, KU Leuven and imec for reporting this vulnerability to the TI Product Security Incident Response Team (PSIRT) and working toward a coordinated report.





TI PROVIDES THIS INFORMATION, INCLUDING THE CVSS (COMMON VULNERABILITY SCORING SYSTEM) SCORE, “AS IS” and with all faults, and disclaims all warranties, express and implied, including without limitation any implied warranties of merchantability, fitness for a particular purpose or non-infringement of third party intellectual property rights. THE CVSS SCORE WAS CALCULATED WITH THE CVSS 3.0 CALCULATOR AND IS BASED ON TI AVAILABLE INFORMATION AND TI ESTIMATES.

This resource is intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable standards, and any other safety, security, or other requirements. This resource is subject to change without notice. TI grants you permission to use this resource only for development of an application that uses the TI products described in the resource. Other reproduction and display of these resources is prohibited. No license is granted to any other TI intellectual property right or to any third party intellectual property right. TI disclaims responsibility for, and you will fully indemnify TI and its representatives against, any claims, damages, costs, losses, and liabilities arising out of your use of these resources.

TI’s products are provided subject to TI’s Terms of Sale ( or other applicable terms available either on or provided in conjunction with such TI products. TI’s provision of this resource does not expand or otherwise alter TI’s applicable warranties or warranty disclaimers for TI products.