External Resource Links

Introduction

External references in CycloneDX enhance the usability and flexibility of BOMs by linking objects, such as components or services, to external resources or contextual information. In this context, "external" means external to the object they describe, not necessarily the BOM itself. These references establish relationships within the same BOM or across BOMs, enabling traceability and modularity. By linking to URLs, documentation, or other BOMs, external references provide richer context and structure, supporting better risk management, compliance tracking, and integration with tools and workflows.

External references in CycloneDX leverage URIs to provide robust connectivity and context for described objects. These references accept a wide variety of schemes, including https for secure web links, mailto for email addresses, tel for phone numbers, and dns for domain names, offering flexibility to link to nearly any resource. Additionally, hashes can be included with these references to ensure the integrity of the linked content. This combination of diverse URI schemes and hash validation strengthens traceability and trust.

External Reference Types

NameDescription
vcsVersion Control System
issue-trackerIssue or defect tracking system, or an Application Lifecycle Management (ALM) system
websiteWebsite
advisoriesSecurity advisories
bomBill of Materials (SBOM, OBOM, HBOM, SaaSBOM, etc)
mailing-listMailing list or discussion group
socialSocial media account
chatReal-time chat platform
documentationDocumentation, guides, or how-to instructions
supportCommunity or commercial support
source-distributionThe location where the source code distributable can be obtained. This is often an archive format such as zip or tgz. The source-distribution type complements use of the version control (vcs) type.
distributionDirect or repository download location
distribution-intakeThe location where a component was published to. This is often the same as "distribution" but may also include specialized publishing processes that act as an intermediary.
licenseThe reference to the license file. If a license URL has been defined in the license node, it should also be defined as an external reference for completeness.
build-metaBuild-system specific meta file (i.e. pom.xml, package.json, .nuspec, etc)
build-systemReference to an automated build system
release-notesReference to release notes
security-contactSpecifies a way to contact the maintainer, supplier, or provider in the event of a security incident. Common URIs include links to a disclosure procedure, a mailto (RFC-2368) that specifies an email address, a tel (RFC-3966) that specifies a phone number, or dns (RFC-4501) that specifies the records containing DNS Security TXT.
model-cardA model card describes the intended uses of a machine learning model, potential limitations, biases, ethical considerations, training parameters, datasets used to train the model, performance metrics, and other relevant data useful for ML transparency.
logA record of events that occurred in a computer system or application, such as problems, errors, or information on current operations.
configurationParameters or settings that may be used by other components or services.
evidenceInformation used to substantiate a claim.
formulationDescribes how a component or service was manufactured or deployed.
attestationHuman or machine-readable statements containing facts, evidence, or testimony.
threat-modelAn enumeration of identified weaknesses, threats, and countermeasures, dataflow diagram (DFD), attack tree, and other supporting documentation in human-readable or machine-readable format.
adversary-modelThe defined assumptions, goals, and capabilities of an adversary.
risk-assessmentIdentifies and analyzes the potential of future events that may negatively impact individuals, assets, and/or the environment. Risk assessments may also include judgments on the tolerability of each risk.
vulnerability-assertionA Vulnerability Disclosure Report (VDR) which asserts the known and previously unknown vulnerabilities that affect a component, service, or product including the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on a component, service, or product.
exploitability-statementA Vulnerability Exploitability eXchange (VEX) which asserts the known vulnerabilities that do not affect a product, product family, or organization, and optionally the ones that do. The VEX should include the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on the product, product family, or organization.
pentest-reportResults from an authorized simulated cyberattack on a component or service, otherwise known as a penetration test.
static-analysis-reportSARIF or proprietary machine or human-readable report for which static analysis has identified code quality, security, and other potential issues with the source code.
dynamic-analysis-reportDynamic analysis report that has identified issues such as vulnerabilities and misconfigurations.
runtime-analysis-reportReport generated by analyzing the call stack of a running application.
component-analysis-reportReport generated by Software Composition Analysis (SCA), container analysis, or other forms of component analysis.
maturity-reportReport containing a formal assessment of an organization, business unit, or team against a maturity model.
certification-reportIndustry, regulatory, or other certification from an accredited (if applicable) certification body.
codified-infrastructureCode or configuration that defines and provisions virtualized infrastructure, commonly referred to as Infrastructure as Code (IaC).
quality-metricsReport or system in which quality metrics can be obtained.
poamPlans of Action and Milestones (POA&M) complement an "attestation" external reference. POA&M is defined by NIST as a "document that identifies tasks needing to be accomplished. It details resources required to accomplish the elements of the plan, any milestones in meeting the tasks and scheduled completion dates for the milestones".
electronic-signatureAn e-signature is commonly a scanned representation of a written signature or a stylized script of the person's name.
digital-signatureA signature that leverages cryptography, typically public/private key pairs, which provides strong authenticity verification.
rfc-9116Document that complies with [RFC 9116](https://www.ietf.org/rfc/rfc9116.html) (A File Format to Aid in Security Vulnerability Disclosure)
otherUse this if no other types accurately describe the purpose of the external reference.
This BOM example demonstrates the use of external references to provide additional context for a software component. It includes references to security advisories, an external BOM with integrity hashes for verification, and vendor-provided documentation.

Examples

{
  "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
  "version": 1,
  "components": [
    {
      "type": "application",
      "group": "org.example",
      "name": "portal-server",
      "version": "1.0.0",
      "externalReferences": [
        {
          "type": "advisories",
          "url": "https://example.org/security/feed/csaf",
          "comment": "Security advisories from the vendor"
        },
        {
          "type": "bom",
          "url": "https://example.org/support/sbom/portal-server/1.0.0",
          "comment": "An external SBOM that describes what this component includes. Integrity verification should be performed to ensure the BOM has not been tampered with.",
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "708f1f53b41f11f02d12a11b1a38d2905d47b099afc71a0f1124ef8582ec7313"
            },
            {
              "alg": "SHA-384",
              "content": "d4835048a0f57c74b8fb617d5366ab81376fc92bebe9a93bf24ba7f9da6c9aeeb6179f5d1361f6533211b15f3224cbad"
            },
            {
              "alg": "SHA-512",
              "content": "74a51ff45e4c11df9ba1f0094282c80489649cb157a75fa337992d2d4592a5a1b8cb4525de8db0ae25233553924d76c36e093ea7fa9df4e5b8b07fd2e074efd6"
            }
          ]
        },
        {
          "type": "documentation",
          "url": "https://example.org/support/documentation/portal-server/1.0.0",
          "comment": "Vendor provided documentation for the product"
        }
      ]
    }
  ]
}