Safeguard
Security Guides•

My dependency has a CVE: must my library publish an advisory?

When a dependency has a CVE, decide: affected, not affected, or unsure. Only affected cases need your own advisory. Decision steps for maintainers.

Safeguard Security Team
4 min read

Publish your own advisory only if your library is actually affected, meaning it calls the vulnerable code in a way an attacker can reach. If it is not affected, say so in a short statement. If you are unsure, say that, and keep investigating.

Three possible answers

When a dependency gets an advisory, your library falls into one of three states. These line up with the status values in the OpenVEX specification: not_affected, affected, and under_investigation, plus fixed once you have shipped a fix.

StateMeaningWhat to publish
Not affectedYour library includes the dependency but the flaw cannot be triggered through youA short statement with a reason
AffectedUsers of your library can be exposedYour own advisory and a patch release
Under investigationYou have not worked it out yetA holding note, then an update

How to decide

  1. Read the advisory carefully. Which functions, inputs or configurations are involved? Which versions are affected, and which is the first fixed one?
  2. Check your usage. Search your code for the vulnerable function or feature. Reachability tools exist for some ecosystems. Go's vulnerability tooling, for example, reports only vulnerabilities whose vulnerable functions are transitively called by your code, according to the Go documentation.
  3. Ask whether users can reach it through you. You might not call the flaw, yet expose a setting that lets users send input to it.
  4. Decide the state and write it down.

If you are affected

Publish an advisory through your normal flow, list the affected and patched versions of your own library, release the patch with the raised dependency floor, and credit the reporter if there was one. Link the upstream advisory so scanners and readers can connect the two. Related posts on this site cover advisory contents and the publishing checklist.

If you are not affected

You do not need a full advisory. Scanners will still flag your library because it depends on the vulnerable package, and users will ask. A short, dated statement helps. OpenVEX defines justification labels for a not affected status:

  • component_not_present
  • vulnerable_code_not_present
  • vulnerable_code_not_in_execute_path
  • vulnerable_code_cannot_be_controlled_by_adversary
  • inline_mitigations_already_exist

A plain sentence in your security policy can use the same reasoning, for example: "Version 3.2 of our library includes parser 2.3.0. We do not call the affected function, so we consider the library not affected. We will still raise the minimum version in our next release."

Even when not affected, raising the floor is cheap and removes the scanner noise.

If you are unsure

Say so, with a date. A statement that you are investigating is honest and better than silence. OpenVEX treats under investigation as a real status.

Do not do this

  • Do not claim you are not affected without checking.
  • Do not delete the alert and move on. Record the decision so you can show it later.
  • Do not publish an advisory that merely copies the upstream text. Your readers need to know about your versions.

Quick check

Does every dependency CVE need a CVE of my own?

No. Only when your library is affected, and then you decide whether to request an identifier for your own advisory.

Is it fine to update the dependency anyway?

Yes. Raising the floor is a low cost way to quiet scanners, even if you are not affected.

Safeguard's reachability analysis helps you answer the second step by showing whether your code reaches the vulnerable function. The free scan is a good place to start.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.