COMMON WEAKNESS ENUMERATIONIncomplete

CWE-1329

Reliance on Component That is Not Updateable

The product contains a component that cannot be updated or patched in order to remove vulnerabilities or significant bugs.

Abstraction

Base

Structure

Simple

Likelihood of Exploit

Medium

Understand the problem

What is the problem?

The product contains a component that cannot be updated or patched in order to remove vulnerabilities or significant bugs.

Extended description

If the component is discovered to contain a vulnerability or critical bug, but the issue cannot be fixed using an update or patch, then the product's owner will not be able to protect against the issue. The only option might be replacement of the product, which could be too financially or operationally expensive for the product owner. As a result, the inability to patch or update can leave the product open to attacker exploitation or critical operation failures. This weakness can be especially difficult to manage when using ROM, firmware, or similar components that traditionally have had limited or no update capabilities. In industries such as healthcare, "legacy" devices can be operated for decades. As a US task force report [REF-1197] notes, "the inability to update or replace equipment has both large and small health care delivery organizations struggle with numerous unsupported legacy systems that cannot easily be replaced (hardware, software, and operating systems) with large numbers of vulnerabilities and few modern countermeasures." While hardware can be prone to this weakness, software systems can also be affected, such as when a third-party driver or library is no longer actively maintained or supported but is still critical for the required functionality.

Root cause

How and when does the problem arise?

Lifecycle phase

Requirements

Requirements development might not consider the importance of updates over the lifetime of the product or might intentionally exclude this capability due to concerns such as expense or speed to market.

Lifecycle phase

Architecture and Design

Lack of planning during architecture development and design, or external pressures such as speed to market, could ignore the capability to update.

Lifecycle phase

Architecture and Design

Designers might omit capabilities for updating a component due to time pressures to release the product or assumptions about the stability of the component.

Lifecycle phase

Implementation

The weakness can appear through oversight during implementation.

Risk

What does successful exploitation lead to?

Gain Privileges or Assume IdentityBypass Protection MechanismExecute Unauthorized Code or CommandsDoS: Crash, Exit, or RestartQuality DegradationReduce Maintainability

Affected security scopes: Confidentiality, Integrity, Access Control, Authentication, Authorization, Other

If an attacker can identify an exploitable vulnerability in one product that has no means of patching, the attack may be used against all affected versions of that product.

Defence

How is it prevented and fixed?

Requirements

Security requirement

Detail
Specify requirements that each component should be updateable, including ROM, firmware, etc.

Architecture and Design

Architecture and design approach

Detail
Design the product to allow for updating of its components. Include the external infrastructure that might be necessary to support updates, such as distribution servers.

Architecture and Design · Implementation

Defence to apply across several lifecycle phases

Detail
With hardware, support patches that can be programmed in-field or during manufacturing through hardware fuses. This feature can be used for limited patching of devices after shipping, or for the next batch of silicon devices manufactured, without changing the full device ROM.

Effectiveness: Moderate

Some parts of the hardware initialization or signature verification done to authenticate patches will always be "not patchable." Hardware-fuse-based patches will also have limitations in terms of size and the number of patches that can be supported.

Implementation

Implementation-phase defence

Detail
Implement the necessary functionality to allow each component to be updated.

Verification

How is it detected?

Architecture or Design Review

Moderate
Check the consumer or maintainer documentation, the architecture/design documentation, or the original requirements to ensure that the documentation includes details for how to update the firmware.