CWE-420: Unprotected Alternate Channel | Glexia
CWE-420 (Unprotected Alternate Channel) weakness overview with consequences, detection methods, mitigations, related CVEs and MITRE ATT&CK context.
Glexia's Take · Automated analysis
CWE-420: Unprotected Alternate Channel
Unprotected Alternate Channel represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Executive Impact
- Access Control: Gain Privileges or Assume Identity Bypass Protection Mechanism
Developer Pattern
CWE-420 is the kind of defect developers can usually prevent with explicit validation, safer framework defaults, and tests that exercise hostile input or unsafe state transitions.
Automation confidence
high confidence from CWE-420, 4.20.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Official CWE Definition
CWE-420: Unprotected Alternate Channel
The product protects a primary channel, but it does not use the same level of protection for an alternate channel.
Developer And Remediation Guidance
How teams prevent and detect this weakness
Causes
- Register SECURE_ME is located at address 0xF00. A mirror of this register called COPY_OF_SECURE_ME is at location 0x800F00. The register SECURE_ME is protected from malicious agents and only allows access to select, while COPY_OF_SECURE_ME is not. Access control is implemented using an allowlist (as indicated by acl_oh_allowlist). The identity of the initiator of the transaction is indicated by the one hot input, incoming_id. This is checked against the acl_oh_allowlist (which contains a list of initiators that are allowed to access the asset). Though this example is shown in Verilog, it will apply to VHDL as well. The bugged line of code is repeated in the Bad example above. The weakness arises from the fact that the SECURE_ME register can be modified by writing to the shadow register COPY_OF_SECURE_ME. The address of COPY_OF_SECURE_ME should also be included in the check. That buggy line of code should instead be replaced as shown in the Good Code Snippet below.
Remediation
- Architecture and Design: Identify all alternate channels and use the same protection mechanisms that are used for the primary channels.
Detection
- Code review
- SAST
- DAST
- Focused regression tests
Mappings
Related CVEs, CWEs, and ATT&CK context
Related CWEs
- CWE-1299: Missing Protection Mechanism for Alternate Hardware Interface
- CWE-288: Authentication Bypass Using an Alternate Path or Channel
- CWE-923: Improper Restriction of Communication Channel to Intended Endpoints
- CWE-421: Race Condition During Access to Alternate Channel
- CWE-422: Unprotected Windows Messaging Channel ('Shatter')
ATT&CK Relevance
ATT&CK relevance is shown only when reviewed or responsibly inferred.
