Safeguard 16.5: Use Up-to-Date and Trusted Third-Party Software Components
Safeguard 16.5 requires you to control third-party software components so only trusted sources are allowed and components stay current through timely patching and dependency updates. To operationalize it fast, inventory where third-party components exist, set acceptance rules (trusted repos, signed artifacts, approved licenses), continuously scan for known vulnerabilities, and enforce update SLAs with evidence.
Key takeaways:
- Treat third-party components as governed assets: approved sources in, outdated/vulnerable components out.
- Make it enforceable in engineering and IT workflows (CI/CD gates, endpoint/software management), not just policy.
- Audit-readiness depends on evidence: inventories, scan results, exceptions, and proof updates occurred.
“Safeguard 16.5: Use Up-to-Date and Trusted Third-Party Software Components requirement” is a supply-chain hygiene control in CIS Controls v8. It targets a common failure mode: organizations inherit risk through outdated libraries, unvetted packages, and components pulled from untrusted sources. For a Compliance Officer, CCO, or GRC lead, the job is to turn this into a repeatable operating model that engineering, IT, and procurement can follow without slowing delivery.
This requirement is easiest to implement when you split it into three enforceable outcomes: (1) you know where third-party components are used (inventory and visibility), (2) you restrict where components can come from (trust and provenance), and (3) you keep components current (patch and dependency update discipline). Your auditors will look for proof that the process runs continuously, not a one-time cleanup.
CIS Controls v8 provides the safeguard expectation and common language to map across broader programs (secure SDLC, vulnerability management, and third-party risk management). Your control design should show how those programs connect, and your evidence should show they operate. 1
Regulatory text
CIS Controls v8 safeguard 16.5 implementation expectation (Use Up-to-Date and Trusted Third-Party Software Components). 1
Operator interpretation: You must ensure third-party software components (libraries, packages, container images, installers, browser extensions, agent software, embedded components) are obtained from trusted sources and kept current. “Current” means you have a defined method to identify needed updates (security and non-security where relevant), evaluate impact, and deploy within a defined timeframe or documented exception path.
What an assessor expects to see: a documented control, assigned ownership, technical enforcement points (where feasible), and recurring evidence capture tied to real systems and real applications. 1
Plain-English interpretation (what this requires in practice)
You are controlling two risk variables:
- Trust: Components must come from sources you approve (publisher reputation, signing, integrity checks, private registries, authorized marketplaces). You can’t allow “random package from the internet” to enter production.
- Freshness: Components must be kept up to date, with a process that finds outdated or vulnerable components and drives remediation or formal exceptions.
This is not limited to code dependencies. Include: commercial off-the-shelf software, SaaS agents, endpoint tools, browser plug-ins used for business, container base images, infrastructure images, and embedded components in internally developed applications.
Who it applies to (entity and operational context)
Applies to: enterprises and technology organizations implementing CIS Controls v8. 1
Operational scope that usually matters most:
- Software development and CI/CD: open-source and commercial dependencies, build artifacts, container images, artifact repositories.
- IT operations: packaged software, OS components, device drivers, management agents, scripts pulled from public repos.
- Procurement and third-party management: software publishers, marketplaces, resellers, managed service providers that introduce components.
- Security operations: vulnerability management processes that must include third-party component findings.
High-risk environments: internet-facing services, regulated data processing, and any environment with rapid release cycles where dependency drift is common.
What you actually need to do (step-by-step)
1) Define “third-party component” and scope it
Write a one-page standard that defines which artifacts are in scope:
- Application dependencies (language packages, libraries)
- Container base images and OS packages
- Build tools and CI runners
- Commercial components and SDKs
- Endpoint-installed third-party software relevant to business operations
Tie scope to your asset inventory and SDLC boundaries so you can prove completeness.
2) Build and maintain an inventory of third-party components (where they exist)
You need two inventories, mapped together:
- Application/CI inventory: Which apps and pipelines exist; where dependencies are declared (package manifests, containerfiles, lock files).
- Component evidence inventory: SBOMs or dependency lists per build/release, plus where artifacts are stored (artifact repo, container registry).
Minimum viable: per “production-bound release,” you can reconstruct the set of third-party components used.
3) Establish “trusted source” acceptance rules
Codify rules that engineering and IT can follow:
- Approved package registries and mirrors (public registries allowed only through controlled proxies when possible)
- Approved container registries/base images
- Signature/integrity expectations (checksums, signing verification where supported)
- License allow/deny list (if your org enforces license compliance)
- “No direct downloads” rule for production builds except through approved repositories
Make exceptions explicit: who approves, for how long, and what compensating controls apply.
4) Implement technical enforcement points (where you can)
Policy alone will not pass a serious assessment. Add control points such as:
- CI/CD gates: fail builds on known critical/high vulnerability findings per your risk policy, or require an approved exception record.
- Repository controls: force dependency retrieval through an approved artifact manager; block unknown registries.
- Container controls: allow only signed images from approved registries; block “latest” tags in production deployments unless explicitly approved.
- Endpoint controls: application allowlisting or managed software catalogs to reduce unapproved installs.
Pick controls that fit your environment; document when you cannot enforce technically and how you compensate.
5) Continuously identify outdated or risky components
Operationalize detection via:
- Dependency and container scanning integrated into pipelines and registries
- Vulnerability management intake that includes third-party component findings
- Alerting and ticketing workflow that assigns remediation owners
Your goal is not “scan once.” Your goal is: “find, triage, remediate, verify,” repeatedly, with timestamps.
6) Define remediation SLAs and an exception process
Create a simple decision matrix:
- Security updates: drive faster remediation based on severity/exposure, with documented timelines and escalation.
- Non-security updates: set expectations for lifecycle refresh to reduce end-of-life drift.
- Exceptions: require business justification, risk acceptance owner, expiration date, and compensating controls (segmentation, WAF rules, monitoring, feature flags, temporary disabling of vulnerable functionality).
Avoid open-ended exceptions; auditors will focus here.
7) Capture recurring evidence (make it audit-ready)
Map Safeguard 16.5 to a documented control operation and recurring evidence capture so you can demonstrate ongoing compliance. 1
A practical evidence cadence:
- Per release/build: SBOM or dependency manifest + scan results
- Monthly/quarterly: metrics and exception review
- Ad hoc: incident-driven validation when a major vulnerability drops
8) Assign ownership and RACI
Typical ownership model:
- Engineering: dependency hygiene, CI/CD gates, remediation
- Security: scanning standards, severity policy, exception governance
- IT: endpoint/software catalog controls
- GRC/Compliance: policy, evidence, audit response, control testing
Write the RACI into the control narrative so it survives org changes.
Required evidence and artifacts to retain
Keep artifacts that show design, operation, and outcomes:
Control design
- Secure software/component sourcing standard (trusted sources, signing expectations, exceptions)
- Dependency/vulnerability management procedure for third-party components
- RACI and escalation path
Control operation
- SBOMs or dependency lists for production releases (or for a representative sample if risk-based sampling is your audit method)
- CI/CD scan outputs (dependency, container, artifact scans) with timestamps
- Change records showing upgrades/patches applied for components
- Exception register (risk acceptance, expiry, compensating controls)
- Approved registry/artifact repository configuration evidence (screenshots/exports/config-as-code)
Control assurance
- Periodic reports: aging of vulnerable components, exception aging, remediation status
- Internal audit/GRC test steps and results (walkthroughs, sampling notes)
Common exam/audit questions and hangups
Auditors commonly probe these points:
-
“Show me how you prevent untrusted components from entering production.”
Have a diagram: developer → repo → CI → artifact registry → deploy, annotated with gates and allowed sources. -
“How do you know components are up to date?”
Scans plus proof of remediation. A scan without closure evidence looks like monitoring, not control. -
“What about transitive dependencies?”
Your SBOM/dependency tooling must include transitive libraries, or you need a documented limitation and plan. -
“How are exceptions approved and retired?”
They will ask for examples. Pick a few exception records that show good hygiene: expiry, review, compensating controls. -
“Does this apply to commercial software and endpoint apps?”
If you scope it only to SDLC, document why and show an equivalent IT software update control, or expand scope.
Frequent implementation mistakes (and how to avoid them)
| Mistake | Why it fails | How to avoid it |
|---|---|---|
| Relying on a policy statement without enforcement | Anyone can still pull arbitrary packages | Enforce via CI gates and approved registries; document exceptions |
| Inventory only at “app list” level | Auditors need component-level proof | Produce SBOMs or dependency manifests per release |
| Scanning without remediation workflow | Findings pile up; no closure | Connect scans to tickets, SLAs, and verification |
| Exceptions with no end date | Becomes permanent risk acceptance | Require expiry and periodic review; auto-escalate overdue exceptions |
| Only first-party code focus | Third-party agents and base images remain unmanaged | Include containers, base images, and IT-managed software in scope |
Enforcement context and risk implications
No public enforcement cases were provided in the source catalog for this safeguard, so treat CIS Controls v8 as a framework expectation rather than a cited enforcement basis here. 1
Risk implications remain concrete:
- Untrusted components create a supply chain entry point (tampered packages, typosquatting, malicious updates).
- Outdated components increase exposure to known vulnerabilities and drive incident response costs and downtime.
- Weak evidence is a control failure during audits: “we do this” without artifacts reads as non-operational control.
Practical 30/60/90-day execution plan
Use phases to avoid committing to calendar promises while still driving pace.
First 30 days (Immediate)
- Confirm scope: SDLC components, containers, endpoint software, third-party agents.
- Document trusted source rules and exception process (one page each).
- Stand up an evidence pack template: what you will collect per release and per reporting period.
- Select pilot applications and one CI pipeline to implement scanning and a basic gate.
Next 60 days (Near-term)
- Expand inventory coverage to all production applications and primary container registries.
- Route dependency and container findings into a single ticketing workflow with owners.
- Implement repository restrictions (approved registries, artifact proxy, approved base images list).
- Run first exception review meeting; retire or time-bound legacy exceptions.
Next 90 days (Operationalize and stabilize)
- Roll CI/CD gates to the remaining critical pipelines.
- Add periodic reporting for leadership: exception aging, vulnerable component aging, remediation throughput.
- Perform a control self-test: sample releases, trace from SBOM → scan → ticket → patch PR → deployment record.
- If you use Daydream for third-party risk and control evidence, map Safeguard 16.5 to a documented control operation and schedule recurring evidence capture so audit prep becomes a pull, not a scramble. 1
Implementation notes for GRC leads (how to “make it stick”)
- Write the control narrative as a system: inputs (component requests), controls (trusted sources, scanning, gates), outputs (approved artifacts), and monitoring (metrics and exception review).
- Keep the exception path narrow and reviewable. Most breakdowns happen here.
- Treat evidence capture as part of the control. If teams must assemble screenshots during an audit, your operating model is fragile.
Frequently Asked Questions
Does Safeguard 16.5 apply only to open-source dependencies?
No. Treat “third-party components” as any externally produced software your environment depends on, including commercial libraries, container base images, and endpoint-installed software. Define scope explicitly and map each component class to an owner and update method. 1
What counts as a “trusted” third-party component source?
“Trusted” means you have explicit acceptance criteria: approved registries/marketplaces, integrity checks or signatures where supported, and a documented exception path. Your evidence should show those rules are enforced in CI/CD or software distribution, not just written down. 1
Do we need SBOMs to meet this requirement?
CIS 16.5 expects you to control and keep components current; SBOMs are a practical way to prove you know what components are in a release. If you cannot generate SBOMs everywhere yet, retain dependency manifests and build artifact metadata as interim evidence while you close the gap.
How do we handle legacy applications that can’t easily update dependencies?
Put them on an exception track with named risk acceptance, compensating controls, and a modernization plan. Auditors respond better to a controlled exception with governance than to unmanaged backlog.
How strict should CI/CD gating be to start?
Start with visibility and an approval workflow for risky findings, then tighten gates as teams stabilize remediation. The key is consistency: same rules, same workflow, and retained evidence of decisions.
How does this relate to third-party risk management (TPRM)?
TPRM evaluates the third party as an entity; Safeguard 16.5 governs the software components entering your environment. Connect them by requiring publishers/providers to support patching, integrity controls, and disclosure, then verify in your own scanning and update workflows. 1
Footnotes
Frequently Asked Questions
Does Safeguard 16.5 apply only to open-source dependencies?
No. Treat “third-party components” as any externally produced software your environment depends on, including commercial libraries, container base images, and endpoint-installed software. Define scope explicitly and map each component class to an owner and update method. (Source: CIS Controls v8; CIS Controls Navigator v8)
What counts as a “trusted” third-party component source?
“Trusted” means you have explicit acceptance criteria: approved registries/marketplaces, integrity checks or signatures where supported, and a documented exception path. Your evidence should show those rules are enforced in CI/CD or software distribution, not just written down. (Source: CIS Controls v8; CIS Controls Navigator v8)
Do we need SBOMs to meet this requirement?
CIS 16.5 expects you to control and keep components current; SBOMs are a practical way to prove you know what components are in a release. If you cannot generate SBOMs everywhere yet, retain dependency manifests and build artifact metadata as interim evidence while you close the gap.
How do we handle legacy applications that can’t easily update dependencies?
Put them on an exception track with named risk acceptance, compensating controls, and a modernization plan. Auditors respond better to a controlled exception with governance than to unmanaged backlog.
How strict should CI/CD gating be to start?
Start with visibility and an approval workflow for risky findings, then tighten gates as teams stabilize remediation. The key is consistency: same rules, same workflow, and retained evidence of decisions.
How does this relate to third-party risk management (TPRM)?
TPRM evaluates the third party as an entity; Safeguard 16.5 governs the software components entering your environment. Connect them by requiring publishers/providers to support patching, integrity controls, and disclosure, then verify in your own scanning and update workflows. (Source: CIS Controls v8; CIS Controls Navigator v8)
Operationalize this requirement
Map requirement text to controls, owners, evidence, and review workflows inside Daydream.
See Daydream