SBOM Compliance & License Policies Explained
Last updated November 2026
Software Bills of Materials (SBOMs) are increasingly required for compliance, supply chain security, and license management. This guide covers regulatory requirements, common license policies, and how to implement automated checks.
Regulatory Compliance Requirements
1. U.S. Executive Order 14028 (2021)
President Biden's cybersecurity executive order mandates SBOMs for software sold to federal agencies. Key requirements:
- All software vendors must provide SBOMs to federal customers
- SBOMs must include components, versions, and dependencies
- Focus on supply chain security and vulnerability management
2. NTIA Minimum Elements (2021)
The National Telecommunications and Information Administration (NTIA) defined seven minimum required fields for SBOMs:
| Field | Description | CycloneDX | SPDX |
|---|---|---|---|
| Component Name | Human-readable name | name |
name |
| Component Version | Version identifier | version |
versionInfo |
| Unique Identifier | PURL, CPE, or SWID | purl |
externalRefs |
| Dependency Relationships | How components relate | dependencies |
relationships |
| Author | Component creator | author |
originator |
| Timestamp | SBOM creation time | metadata.timestamp |
created |
| Supplier | Component source | supplier |
supplier |
3. CISA Guidelines
The Cybersecurity and Infrastructure Security Agency (CISA) provides guidance on SBOM implementation. In 2026 it published updated minimum elements that replace NTIA's 2021 list, adding fields such as component hash, component license, the name of the tool that generated the SBOM, and the generation context. General practice it recommends:
- Machine-readable formats: JSON, XML, or YAML (not PDFs or spreadsheets)
- Automation: SBOMs should be generated automatically, not manually
- Continuous updates: Generate new SBOMs with each release
- Vulnerability correlation: Link SBOMs to CVE databases for real-time risk assessment
4. EU Cyber Resilience Act (Regulation (EU) 2024/2847)
The CRA is in force. Manufacturers' duty to report actively exploited vulnerabilities and severe incidents applies from 11 September 2026; the remaining obligations, including the SBOM requirement, apply from 11 December 2027. It requires:
- A machine-readable SBOM covering at least the top-level dependencies of "products with digital elements" sold in the EU (kept in the technical documentation; publishing it is not required)
- Continuous security updates and vulnerability disclosure
- CE marking for cybersecurity compliance
Open Source License Policies
License compliance is a critical reason for generating SBOMs. Here are common license policies and their implications:
1. No GPL Policy
What it means: Block all GNU General Public License (GPL) versions.
Why: GPL requires derivative works to be open-sourced under GPL. If you link GPL code into proprietary software, you may be legally required to release your source code.
Variants:
GPL-2.0- Original GPLGPL-3.0- Updated version with anti-tivoization and patent clausesGPL-2.0-or-later- Allows upgrading to GPL-3.0
2. No AGPL Policy
What it means: Block all Affero General Public License (AGPL) versions.
Why: AGPL extends GPL's copyleft to network services. If you modify AGPL code and run it as a web service, you must release your modifications—even if you don't distribute the software.
Impact: AGPL is particularly restrictive for SaaS companies. Many enterprises ban AGPL entirely.
3. No Copyleft Policy
What it blocks: GPL, AGPL, LGPL (Lesser GPL), MPL (Mozilla Public License), EPL (Eclipse Public License), and similar "share-alike" licenses.
Why: Maximum flexibility for proprietary software. Avoid any obligation to share source code.
4. No SSPL Policy
What it means: Block Server Side Public License (used by MongoDB, Elastic).
Why: SSPL requires cloud providers to open-source their entire service stack if they offer the software as a service. Even more restrictive than AGPL.
5. Permissive Only Policy
What it allows: Only MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, Unlicense, and similar permissive licenses.
Why: Maximum freedom to use, modify, and distribute without source code disclosure obligations.
How to Implement License Policies
Option 1: Use Our SBOM Diff Tool
- Generate your SBOM (see How to Generate SBOM)
- Load it into SBOM Diff (it runs in your browser; nothing is uploaded)
- Enable "License Policy" and select a preset (No GPL, No AGPL, etc.)
- Review violations and remediate by replacing libraries
Option 2: Automate in CI/CD
Integrate license checking into your build pipeline:
# Example: GitHub Actions with Syft + Grype
name: License Check
on: [push]
jobs:
license-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate SBOM
run: syft dir:. -o cyclonedx-json > sbom.json
- name: Check for GPL
run: |
if grep -q "GPL-" sbom.json; then
echo "GPL license detected"
exit 1
fi
Option 3: Use Dedicated Tools
- Dependency-Track: Open-source SBOM analysis platform with policy engine
- FOSSA: Commercial license compliance and vulnerability management
- Snyk: Developer-focused security with license scanning
- WhiteSource (Mend): Enterprise license and security management
Common License Violations & Remediation
Scenario 1: GPL in Proprietary Software
Problem: You're building a proprietary desktop app and discover a GPL-licensed library in your SBOM.
Solutions:
- Replace it: Find a permissive alternative (e.g., replace GPL library with MIT-licensed equivalent)
- Isolate it: If possible, use the GPL library in a separate process (not linked) to avoid copyleft
- Negotiate: Some GPL projects offer dual licensing (open-source GPL + commercial license)
- Go open-source: If you can't avoid GPL, consider open-sourcing your project
Scenario 2: AGPL in SaaS Platform
Problem: You're running a SaaS product and find an AGPL library in your SBOM.
Solutions:
- Replace immediately: AGPL's network copyleft is very broad—find a permissive alternative
- External service: If the library provides an API, use a hosted version instead of self-hosting
- Legal review: In rare cases, the AGPL may not apply (e.g., you don't modify the code). Get legal advice.
Scenario 3: Unknown Licenses
Problem: Your SBOM shows components with "UNKNOWN" or "NOASSERTION" licenses.
Solutions:
- Manual research: Check the component's GitHub repo or npm page for license info
- Contact author: Ask the maintainer to add a LICENSE file
- Assume proprietary: If no license is specified, the code is copyrighted and cannot be used legally
- Replace it: Use a component with a clear, permissive license
Best Practices
- Generate SBOMs early: Add SBOM generation to your CI/CD pipeline from day one
- Automate policy checks: Block builds that violate license policies
- Track changes: Compare SBOMs between versions to catch new violations (use our diff tool)
- Educate developers: Teach teams to check licenses before adding dependencies
- Document exceptions: If you must use a restricted license, document why and get legal approval
- Update regularly: Re-generate SBOMs with each release to catch transitive dependency changes
Industry-Specific Guidelines
Healthcare (HIPAA, FDA)
- FDA requires SBOMs for medical devices (Cybersecurity in Medical Devices guidance)
- Focus on vulnerability tracking and patching timelines
- Prefer SPDX for regulatory submissions (ISO standard)
Financial Services (PCI-DSS, SOX)
- PCI-DSS 4.0 emphasizes supply chain security
- SBOMs help demonstrate compliance with third-party risk management
- Focus on GPL/AGPL avoidance to protect proprietary trading algorithms
Government Contracting
- Federal contracts increasingly require NTIA-compliant SBOMs
- Use CycloneDX or SPDX (agencies accept both)
- Provide SBOMs at contract award and with each software update