Class · High

CWE-1357: Reliance on Insufficiently Trustworthy Component

The product is built from multiple separate components, but it uses a component that is not sufficiently trusted to meet expectations for security, reliability, updateability, and maintainability.

CWE-1357 · Class Level ·1 CVEs ·3 Mitigations

Description

The product is built from multiple separate components, but it uses a component that is not sufficiently trusted to meet expectations for security, reliability, updateability, and maintainability.

Many modern hardware and software products are built by combining multiple smaller components together into one larger entity, often during the design or architecture phase. For example, a hardware component might be built by a separate supplier, or the product might use an open-source software library from a third party. Regardless of the source, each component should be sufficiently trusted to ensure correct, secure operation of the product. If a component is not trustworthy, it can produce significant risks for the overall product, such as vulnerabilities that cannot be patched fast enough (if at all); hidden functionality such as malware; inability to update or replace the component if needed for security purposes; hardware components built from parts that do not meet specifications in ways that can lead to weaknesses; etc. Note that a component might not be trustworthy even if it is owned by the product vendor, such as a software component whose source code is lost and was built by developers who left the company, or a component that was developed by a separate company that was acquired and brought into the product's own company. Note that there can be disagreement as to whether a component is sufficiently trustworthy, since trust is ultimately subjective. Different stakeholders (e.g., customers, vendors, governments) have various threat models and ways to assess trust, and design/architecture choices might make tradeoffs between security, reliability, safety, privacy, cost, and other characteristics.

Potential Impact

Other

Reduce Maintainability

Demonstrative Examples

A refrigerator has an Internet interface for the official purpose of alerting the manufacturer when that refrigerator detects a fault. Because the device is attached to the Internet, the refrigerator is a target for hackers who may wish to use the device other potentially more nefarious purposes.
Bad
The refrigerator has no means of patching and is hacked, becoming a spewer of email spam.
Good
The device automatically patches itself and provides considerable more protection against being hacked.

Mitigations & Prevention

RequirementsArchitecture and DesignImplementation

For each component, ensure that its supply chain is well-controlled with sub-tier suppliers using best practices. For third-party software components such as libraries, ensure that they are developed and actively maintained by reputable vendors.

Architecture and DesignImplementationIntegrationManufacturing

Maintain a Bill of Materials for all components and sub-components of the product. For software, maintain a Software Bill of Materials (SBOM). According to [REF-1247], "An SBOM is a formal, machine-readable inventory of software components and dependencies, information about those components, and their hierarchical relationships."

OperationPatching and Maintenance

Continue to monitor changes in each of the product's components, especially when the changes indicate new vulnerabilities, end-of-life (EOL) plans, supplier practices that affect trustworthiness, etc.

Detection Methods

  • Automated Static Analysis High — Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then sea

Real-World CVE Examples

CVE IDDescription
CVE-2020-9054Chain: network-attached storage (NAS) device has a critical OS command injection (CWE-78) vulnerability that is actively exploited to place IoT devices into a botnet, but some products are "end-of-sup

Taxonomy Mappings

  • ISA/IEC 62443: Part 2-4 — Req SP.03.02 RE(1)
  • ISA/IEC 62443: Part 2-4 — Req SP.03.02 RE(2)
  • ISA/IEC 62443: Part 3-3 — Req SR 1.13
  • ISA/IEC 62443: Part 4-2 — Req EDR 3.12
  • ISA/IEC 62443: Part 4-2 — Req HDR 3.12
  • ISA/IEC 62443: Part 4-2 — Req NDR 3.12
  • ISA/IEC 62443: Part 4-2 — Req EDR 3.13
  • ISA/IEC 62443: Part 4-2 — Req HDR 3.13
  • ISA/IEC 62443: Part 4-2 — Req NDR 3.13
  • ISA/IEC 62443: Part 4-2 — Req CR-7.8
  • ISA/IEC 62443: Part 4-1 — Req SM-6
  • ISA/IEC 62443: Part 4-1 — Req SM-9
  • ISA/IEC 62443: Part 4-1 — Req SM-10

Frequently Asked Questions

What is CWE-1357?

CWE-1357 (Reliance on Insufficiently Trustworthy Component) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Class-level weakness. The product is built from multiple separate components, but it uses a component that is not sufficiently trusted to meet expectations for security, reliability, updateability, and maintainability.

How can CWE-1357 be exploited?

Attackers can exploit CWE-1357 (Reliance on Insufficiently Trustworthy Component) to reduce maintainability. This weakness is typically introduced during the Requirements, Architecture and Design phase of software development.

How do I prevent CWE-1357?

Key mitigations include: For each component, ensure that its supply chain is well-controlled with sub-tier suppliers using best practices. For third-party software components such as libraries, ensure that they are developed

What is the severity of CWE-1357?

CWE-1357 is classified as a Class-level weakness (High abstraction). It has been observed in 1 real-world CVEs.