Prerequisites
- Target system, dependencies and environment configured.
Usage
Purpose
Every dependency and vendor you adopt is a piece of your attack surface you don't control. A poorly-maintained library, an abandoned project, or a vendor with weak security becomes your risk the moment you depend on it. Third-party risk assessment is evaluating that risk before you take it on — so you make an informed decision rather than inheriting problems. This skill covers assessing the security of third-party components and vendors, the "should we depend on this" question.
When to use it
Before adopting a significant new dependency, library, or vendor, and periodically re-assessing critical ones. It's a decision-support skill — the point is to make dependency and vendor choices deliberately, weighing the security risk, rather than adopting whatever's convenient.
Procedure
- Assess the health and maintenance of a dependency. An unmaintained or abandoned dependency won't get security fixes — a serious latent risk. Check: is it actively maintained (recent commits, releases)? How many maintainers (a single-maintainer critical dependency is a bus-factor and takeover risk)? Is it widely used and reviewed? How responsive are they to security issues? Tools like OpenSSF Scorecard and deps.dev automate much of this.
- Assess the security posture of the project. Does it follow security practices — signed releases, a security policy, dependency hygiene, a track record of handling vulnerabilities well? A project with good security practices is a lower-risk dependency; one that's careless with its own security is careless with yours.
- Consider the dependency's own dependencies. Adopting a component pulls in its transitive dependency tree — you inherit all of it. A component with a bloated or risky dependency tree brings that risk along. Assess the whole tree, not just the top-level package.
- For vendors/services, assess their security. A SaaS vendor or service you integrate becomes part of your supply chain; assess their security posture (certifications like SOC 2, their track record, their access to your data and systems). A vendor breach can become your breach (the ties to GRC third-party-risk-management).
- Weigh necessity against risk. The best way to reduce a dependency's risk is sometimes to not take it on — do you actually need this dependency, or could you avoid it? Every dependency is permanent risk surface; adopting fewer, higher-quality ones beats pulling in many.
- Make it a deliberate decision with a record. Adopting a significant dependency/vendor should be a considered choice with the risk assessment recorded, not an ad-hoc
npm install. For critical ones, this feeds the risk register (GRC domain).
- Re-assess periodically. A well-maintained dependency can become abandoned; a vendor's posture can change. Critical third parties warrant periodic re-assessment, not a one-time check at adoption.
Cheatsheet
every dependency/vendor = attack surface you DON'T control. assess BEFORE depending.
assess a DEPENDENCY
HEALTH/maintenance: active? recent releases? # maintainers (single = bus-factor + takeover risk)?
widely used/reviewed? responsive to security issues? (OpenSSF Scorecard, deps.dev)
SECURITY posture: signed releases? security policy? dependency hygiene? vuln track record?
its OWN dependency TREE (you inherit ALL of it — assess the whole tree, not just top-level)
assess a VENDOR/service
security posture (SOC 2 etc.), track record, their access to your data/systems
vendor breach -> your breach (GRC third-party-risk-management)
WEIGH necessity vs risk: best risk reduction = don't take it on (do you NEED it?)
fewer, higher-quality deps > many
DELIBERATE decision + RECORD (not ad-hoc npm install) ; critical -> risk register
RE-ASSESS periodically (maintained -> abandoned ; vendor posture changes)
Reading the assessment
- An unmaintained or abandoned dependency = it won't get security fixes; a serious latent risk you inherit. A critical dependency that's no longer maintained is a strong reason to avoid or replace it.
- A single-maintainer critical dependency = a bus-factor risk and a takeover target (a compromised or coerced sole maintainer can push malicious code — this has happened). Weigh the concentration risk.
- A dependency with a bloated or risky transitive tree = you inherit all of it; the top-level package may be fine but its dependencies aren't. Assess the whole tree.
- A vendor with weak security posture and access to your data = their breach becomes yours; the vendor's security is your risk. Assess it before integrating (ties to GRC).
- Adopting a dependency you don't really need = permanent, avoidable risk surface; the strongest risk reduction is sometimes not taking it on. Question necessity.
- A deliberate, recorded adoption decision weighing health, security, and necessity = third-party risk managed rather than inherited blindly.
Pitfalls
- Adopting dependencies without assessment. Every dependency is uncontrolled attack surface; adopting whatever's convenient inherits its problems (abandonment, poor security, risky tree). Assess before depending.
- Ignoring maintenance health. An unmaintained dependency won't get security fixes — a latent risk that surfaces when a CVE drops and there's no fix. Check activity and responsiveness.
- Overlooking the transitive tree. You inherit the whole dependency tree, not just the package you chose; a clean top-level with a risky tree is still risky.
- Not assessing vendors' security. A vendor with access to your data and weak security is a breach path into you; assess their posture (GRC).
- Adopting unnecessary dependencies. The best risk reduction is often not taking it on; question whether you need it. Fewer, higher-quality dependencies beat many.
- One-time assessment. Dependencies get abandoned and vendors change; re-assess critical third parties periodically.
References
- OpenSSF Scorecard and deps.dev (automated dependency health/security assessment)
- The GRC third-party-risk-management skill (vendor risk) and this domain's other skills
- OpenSSF and NIST supply-chain risk-management guidance (NIST SP 800-161)
- The vulnerable-dependency-triage and malicious-package-response skills
Inputs
- Relevant source code, logs, network traces, or system specifications.
Outputs
- Analysis findings, security audit report, or generated code artifacts.
1---2name: third-party-risk3description: Use when assessing the security risk of a third-party component, library, or vendor before depending on it — evaluating what you're taking on when you adopt someone else's code or service.4---5678## Prerequisites9- Target system, dependencies and environment configured.1011## Usage12### Purpose1314Every dependency and vendor you adopt is a piece of your attack surface you don't control. A poorly-maintained library, an abandoned project, or a vendor with weak security becomes your risk the moment you depend on it. Third-party risk assessment is evaluating that risk *before* you take it on — so you make an informed decision rather than inheriting problems. This skill covers assessing the security of third-party components and vendors, the "should we depend on this" question.1516### When to use it1718Before adopting a significant new dependency, library, or vendor, and periodically re-assessing critical ones. It's a decision-support skill — the point is to make dependency and vendor choices deliberately, weighing the security risk, rather than adopting whatever's convenient.1920### Procedure21221. **Assess the health and maintenance of a dependency.** An unmaintained or abandoned dependency won't get security fixes — a serious latent risk. Check: is it actively maintained (recent commits, releases)? How many maintainers (a single-maintainer critical dependency is a bus-factor and takeover risk)? Is it widely used and reviewed? How responsive are they to security issues? Tools like OpenSSF Scorecard and deps.dev automate much of this.232. **Assess the security posture of the project.** Does it follow security practices — signed releases, a security policy, dependency hygiene, a track record of handling vulnerabilities well? A project with good security practices is a lower-risk dependency; one that's careless with its own security is careless with yours.243. **Consider the dependency's own dependencies.** Adopting a component pulls in its transitive dependency tree — you inherit all of it. A component with a bloated or risky dependency tree brings that risk along. Assess the whole tree, not just the top-level package.254. **For vendors/services, assess their security.** A SaaS vendor or service you integrate becomes part of your supply chain; assess their security posture (certifications like SOC 2, their track record, their access to your data and systems). A vendor breach can become your breach (the ties to GRC third-party-risk-management).265. **Weigh necessity against risk.** The best way to reduce a dependency's risk is sometimes to not take it on — do you actually need this dependency, or could you avoid it? Every dependency is permanent risk surface; adopting fewer, higher-quality ones beats pulling in many.276. **Make it a deliberate decision with a record.** Adopting a significant dependency/vendor should be a considered choice with the risk assessment recorded, not an ad-hoc `npm install`. For critical ones, this feeds the risk register (GRC domain).287. **Re-assess periodically.** A well-maintained dependency can become abandoned; a vendor's posture can change. Critical third parties warrant periodic re-assessment, not a one-time check at adoption.2930### Cheatsheet3132```33every dependency/vendor = attack surface you DON'T control. assess BEFORE depending.3435assess a DEPENDENCY36 HEALTH/maintenance: active? recent releases? # maintainers (single = bus-factor + takeover risk)?37 widely used/reviewed? responsive to security issues? (OpenSSF Scorecard, deps.dev)38 SECURITY posture: signed releases? security policy? dependency hygiene? vuln track record?39 its OWN dependency TREE (you inherit ALL of it — assess the whole tree, not just top-level)4041assess a VENDOR/service42 security posture (SOC 2 etc.), track record, their access to your data/systems43 vendor breach -> your breach (GRC third-party-risk-management)4445WEIGH necessity vs risk: best risk reduction = don't take it on (do you NEED it?)46 fewer, higher-quality deps > many47DELIBERATE decision + RECORD (not ad-hoc npm install) ; critical -> risk register48RE-ASSESS periodically (maintained -> abandoned ; vendor posture changes)49```5051### Reading the assessment5253- **An unmaintained or abandoned dependency** = it won't get security fixes; a serious latent risk you inherit. A critical dependency that's no longer maintained is a strong reason to avoid or replace it.54- **A single-maintainer critical dependency** = a bus-factor risk and a takeover target (a compromised or coerced sole maintainer can push malicious code — this has happened). Weigh the concentration risk.55- **A dependency with a bloated or risky transitive tree** = you inherit all of it; the top-level package may be fine but its dependencies aren't. Assess the whole tree.56- **A vendor with weak security posture and access to your data** = their breach becomes yours; the vendor's security is your risk. Assess it before integrating (ties to GRC).57- **Adopting a dependency you don't really need** = permanent, avoidable risk surface; the strongest risk reduction is sometimes not taking it on. Question necessity.58- **A deliberate, recorded adoption decision weighing health, security, and necessity** = third-party risk managed rather than inherited blindly.5960### Pitfalls6162- **Adopting dependencies without assessment.** Every dependency is uncontrolled attack surface; adopting whatever's convenient inherits its problems (abandonment, poor security, risky tree). Assess before depending.63- **Ignoring maintenance health.** An unmaintained dependency won't get security fixes — a latent risk that surfaces when a CVE drops and there's no fix. Check activity and responsiveness.64- **Overlooking the transitive tree.** You inherit the whole dependency tree, not just the package you chose; a clean top-level with a risky tree is still risky.65- **Not assessing vendors' security.** A vendor with access to your data and weak security is a breach path into you; assess their posture (GRC).66- **Adopting unnecessary dependencies.** The best risk reduction is often not taking it on; question whether you need it. Fewer, higher-quality dependencies beat many.67- **One-time assessment.** Dependencies get abandoned and vendors change; re-assess critical third parties periodically.6869### References7071- OpenSSF Scorecard and deps.dev (automated dependency health/security assessment)72- The GRC third-party-risk-management skill (vendor risk) and this domain's other skills73- OpenSSF and NIST supply-chain risk-management guidance (NIST SP 800-161)74- The vulnerable-dependency-triage and malicious-package-response skills7576## Inputs77- Relevant source code, logs, network traces, or system specifications.7879## Outputs80- Analysis findings, security audit report, or generated code artifacts.