← CRA Glossary
Software Supply Chain

Transitive Dependency

A transitive dependency is a software component that a product depends on indirectly - through another component that directly depends on it. Transitive dependencies are often numerous, poorly monitored, and the source of critical vulnerabilities in CRA-covered products.

A transitive dependency is a software component that a product depends on indirectly - through another component that directly depends on it. Transitive dependencies are often numerous, poorly monitored, and the source of critical vulnerabilities in CRA-covered products.

Software Supply Chain

What Is a Transitive Dependency?

A transitive dependency is a component that your product depends on indirectly. If your product directly uses Library A, and Library A internally uses Library B, then Library B is a transitive dependency of your product. In modern software development, the ratio of transitive to direct dependencies is typically very high - an application with 50 direct dependencies may have 500 or more transitive dependencies when the full dependency graph is resolved. Transitive dependencies are the source of a significant proportion of exploited vulnerabilities in real-world attacks: the Log4Shell vulnerability (CVE-2021-44228) was a transitive dependency for many organisations - they had no direct dependency on Log4j but relied on libraries that did. Many security teams have no visibility into transitive dependencies without dedicated tooling.

CRA reference:Annex I, Annex VII

CRA Obligations and Transitive Dependencies

The CRA's essential requirements apply to the product as a whole - including vulnerabilities in transitive dependencies. Annex I requires manufacturers to identify and address security risks in their products, which necessarily includes risk from transitive components. The Annex VII SBOM must capture the full component inventory for the SBOM to be useful for vulnerability management. A 'direct dependencies only' SBOM misses the large majority of the software attack surface. Market surveillance authorities reviewing the technical file would likely consider an SBOM that omits transitive dependencies as failing to accurately represent the product's software composition. SBOM generation tools (Syft, CycloneDX plugins, SPDX generators) are configured by default to capture the full dependency graph including transitive dependencies.

CRA reference:Annex I, Annex VII

Managing Transitive Dependency Vulnerabilities

Transitive dependency vulnerabilities present unique management challenges:

  • Indirect control: The manufacturer cannot directly update a transitive dependency - they must update a direct dependency to a version that uses an updated transitive version.
  • Dependency lock conflicts: Updating a direct dependency to pull in a fixed transitive version may break other direct dependencies that require an incompatible version.
  • Vendor-managed components: When a transitive dependency is embedded in a commercial SDK or firmware component from a third-party vendor, the manufacturer must wait for the vendor to release an updated version.

Effective management requires: a complete SBOM including all transitive dependencies; automated CVE correlation against the full SBOM; a process for assessing whether a vulnerable transitive dependency is reachable in the product's specific execution paths; and vendor notification procedures for transitive vulnerabilities embedded in third-party components.

CRA reference:Annex I

VEX and Reachability Analysis for Transitive Dependencies

A powerful tool for managing transitive dependency vulnerability noise is reachability analysis combined with VEX documentation. For many transitive dependency CVEs, the vulnerable code path is not invoked in the product's actual execution - the product uses a component that depends on Library B, but the product's use case does not call the specific function in Library B that contains the vulnerability. Static analysis tools (including some SCA platforms) can assess reachability by analysing the call graph. When analysis confirms a transitive vulnerability is not reachable, the manufacturer should document this as a VEX 'not-affected' assertion. This: reduces internal triage burden; informs users that they do not need to treat the vulnerability as urgent; and demonstrates to MSAs that vulnerability monitoring is active and findings are genuinely assessed, not ignored.

CVD Portal makes Transitive Dependency compliance straightforward.

Public CVD submission portal, acknowledgment tracking, Article 14 deadline alerts, and CSAF advisory generation. Receiving and tracking reports is free for all manufacturers placing products with digital elements on the EU market. Article 14 filing with the SRP-ready package is on Pro.

Start your free portal

Frequently asked

Does the CRA SBOM requirement cover transitive dependencies?+

The CRA's Annex VII requires the SBOM to identify the software components in the product. While the CRA does not use the term 'transitive dependency', a useful SBOM for vulnerability management must include the full component graph. An SBOM that omits transitive dependencies fails to support the vulnerability monitoring activities required by Annex I. All standard SBOM generation tools capture transitive dependencies by default - manufacturers should ensure their tooling is not configured to suppress transitive entries.

How many transitive dependencies does a typical IoT product have?+

The number varies enormously by technology stack and application complexity. A simple embedded C application may have very few transitive dependencies. A firmware image based on embedded Linux with a Node.js application layer could have thousands - Node.js application ecosystems are particularly known for deep transitive dependency graphs. A container-based application may have hundreds of OS-level packages plus application transitive dependencies. Manufacturers are often surprised when their first SBOM reveals their true component count.

If a vendor won't update a transitive dependency in their SDK, what should a manufacturer do?+

When a third-party SDK or component includes a vulnerable transitive dependency that the vendor has not updated, the manufacturer should: formally notify the vendor of the vulnerability and request an updated release; document this notification and the vendor's response for the Annex VII technical file; assess whether the vulnerable code path is reachable in the product's use of the SDK and document this analysis; publish a security advisory informing users of the vulnerability status and available mitigations if the vulnerability is assessed as posing real risk; and consider replacing the vendor component if no update is forthcoming within a reasonable period.

Related terms

Software Bill of Materials (SBOM)An SBOM is a formal, machine-readable inventory of all software components - including open-source libraries, third-party dependencies, and firmware packages - that make up a product. The EU Cyber Resilience Act requires manufacturers to maintain an SBOM as part of their technical documentation.Open Source ComponentAn open source component is software made available under an open source licence that is incorporated into a product. CRA manufacturers are fully responsible for the security of open source components in their products - the open source origin does not transfer liability to the component's maintainers.Software Supply Chain SecuritySoftware supply chain security encompasses the practices and controls that ensure the integrity, authenticity, and security of all software components - open-source libraries, commercial off-the-shelf modules, and development toolchains - that are integrated into a product. The CRA places explicit obligations on manufacturers to manage supply chain security throughout the product lifecycle.Software Composition Analysis (SCA)Software Composition Analysis (SCA) is the automated process of identifying open-source and third-party components in a codebase and checking them against known vulnerability databases to detect security risks. SCA is the primary technical mechanism for meeting the CRA's requirement that manufacturers identify and manage vulnerabilities in their products' components.VEX - Vulnerability Exploitability eXchangeVEX (Vulnerability Exploitability eXchange) is a machine-readable security advisory format that allows manufacturers to communicate the exploitability status of known CVEs in their products - specifically whether a CVE that appears in a component is actually exploitable in the context of how the component is used. VEX is essential for managing the false-positive burden of SBOM-based vulnerability scanning.Dependency-TrackDependency-Track is an open-source Software Composition Analysis (SCA) platform maintained by OWASP that continuously monitors SBOM component inventories for known vulnerabilities. It is widely used by CRA manufacturers to operationalise their SBOM-driven vulnerability management obligations.

Browse the full CRA Compliance Checklist

See how Transitive Dependency fits into your complete CRA compliance programme.

View checklists →