2145
MemberOf Relationships
This MemberOf relationships table shows additional CWE Catgeories and Views that reference this
weakness as a member. This information is often useful in understanding where a weakness fits
within the context of external information sources.
Nature Type ID Name Page
MemberOf 1396 Comprehensive Categorization: Access Control 1400 2519
CWE-1291: Public Key Re-Use for Signing both Debug and Production Code
Weakness ID : 1291
Structure : Simple
Abstraction : Base
Description
The same public key is used for signing both debug and production code.
Extended Description
A common usage of public-key cryptography is to verify the integrity and authenticity of another
entity (for example a firmware binary). If a company wants to ensure that its firmware runs only
on its own hardware, before the firmware runs, an encrypted hash of the firmware image will be
decrypted with the public key and then verified against the now-computed hash of the firmware
image. This means that the public key forms the root of trust, which necessitates that the public key
itself must be protected and used properly.
During the development phase, debug firmware enables many hardware debug hooks, debug
modes, and debug messages for testing. Those debug facilities provide significant, additional views
about the firmware's capability and, in some cases, additional capability into the chip or SoC. If
compromised, these capabilities could be exploited by an attacker to take full control of the system.
Once the product exits the manufacturing stage and enters production, it is good practice to use a
different public key. Debug firmware images are known to leak. With the debug key being reused
as the production key, the debug image will also work on the production image. Thus, it will open all
the internal, debug capabilities to the attacker.
If a different public key is used for the production image, even if the attacker gains access to the
debug firmware image, they will not be able to run it on a production machine. Thus, damage will
be limited to the intellectual property leakage resulting from the debug image.
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this
weakness. These relationships are defined as ChildOf, ParentOf, MemberOr and give insight to
similar items that may exist at higher and lower levels of abstraction. In addition, relationships such
as PeerOf and CanAlsoBe are defined to show similar weaknesses that may want to be explored.
Relevant to the view "Research Concepts" (CWE-1000)
Nature Type ID Name Page
ChildOf 693 Protection Mechanism Failure 1520
PeerOf 321 Use of Hard-coded Cryptographic Key 785
Applicable Platforms
Language : Not Language-Specific (Prevalence = Undetermined)
Operating_System : Not OS-Specific (Prevalence = Undetermined)
Architecture : Not Architecture-Specific (Prevalence = Undetermined)
CWE Version 4.14
CWE-1291: Public Key Re-Use for Signing both Debug and Production Code
CWE-1291: Public Key Re-Use for Signing both Debug and Production Code