CWE-1292 covers a conversion step that maps bus-transaction signals to security identifiers and gets it wrong. The result is the same as most access control failures: an untrusted agent reaches an asset it should not.
How it happens
In a System-on-Chip, a transaction carries a source identity, a destination identity and sometimes a security identifier. The identifier tells the destination what actions are allowed.
A bus often connects several leader and follower agents, and some followers implement bus protocols differently from the leaders. A bridge converts between them. MITRE's example is a leader using the Advanced High-performance Bus (AHB) protocol and a follower using the Open-Core Protocol (OCP), joined by an AHB-to-OCP bridge. The weakness is that this protocol conversion is implemented incorrectly, so the identifier on the far side no longer reflects who really sent the transaction.
What an attacker gains
MITRE rates the likelihood of exploit as high and lists the following consequences:
- Read and modify memory
- Execute unauthorized code or commands
- Gain privileges or assume identity
- Bypass access control
- Resource-consumption denial of service and quality degradation
How to find it
The record lists no detection methods. Work from the mitigations: review the conversion logic at each bridge, and exercise it with transactions from agents at every trust level. Confirm that no untrusted source converts to a trusted identifier, and that trusted sources are not downgraded in ways that break the design.
How to fix it
Two steps come from MITRE. During architecture and design, review security identifier decoders for design inconsistency and common weaknesses. During implementation, test access and programming flows in pre-silicon and post-silicon testing.
Quick check
Where does the conversion usually happen?
At a bridge that connects two bus protocols, such as the AHB-to-OCP example in the MITRE description.
How is this different from CWE-1290?
CWE-1290 is about decoding signals into identifiers. CWE-1292 is about converting between forms when mapping signals to identifiers. Both end with an untrusted agent gaining access.