# Semgrep Supply Chain glossary

Source: https://semgrep.dev/docs/semgrep-supply-chain/glossary#transitive-or-indirect-dependency

- [](/docs/)- [Scan](/docs/getting-started/quickstart)- References- Glossaries- Supply Chain glossary**On this page- [Semgrep Supply Chain](/docs/tags/semgrep-supply-chain)Semgrep Supply Chain glossary
The terms and definitions provided here are specific to Semgrep Supply Chain.

## Advisory[​](#advisory)
Announcement of a vulnerability, typically but not always with an associated [Common Vulnerabilities and Exposures (CVE)](https://www.cve.org/) number. All Advisories can be found by Semgrep Supply Chain rules. [Advisories](/docs/semgrep-supply-chain/advisories) can be seen on [**Rules &amp; Policies &gt; Advisories**](https://semgrep.dev/orgs/-/advisories).

## Dependency[​](#dependency)
Publicly available code used as a part of your application. Common examples include Flask, React, and Lodash. Each dependency is listed in a registry, such as npm for JavaScript and PyPI for Python.

## Exploitability[​](#exploitability)
Exploitability is the practical assessment of a vulnerability&#x27;s threat, typically proved with a real proof of exploit. Proving exploitability is often the last step of triaging a vulnerability.

## EPSS probability[​](#epss-probability)
The [Exploit prediction scoring system (EPSS) probability](https://www.first.org/epss/) represents the likelihood that the vulnerability will be exploited in the wild in the next 30 days. Its values range from 0% to 100%. The higher the score, the greater the probability the vulnerability will be exploited. Semgrep groups probabilities as follows:

- High**: 50 - 100%
- **Medium**: 10 - &lt;50%
- **Low**: &lt;10%

## Lockfile[​](#lockfile)
A lockfile describes a dependency tree to ensure that deployments and organizations install the same **dependencies and exact versions** for their codebase. Lockfile information includes versions of the dependency and any transitive (indirect) dependencies. Lockfiles are automatically generated by a package manager such as `pip` or `npm`.

Semgrep Supply Chain uses lockfiles as part of its analysis to determine the exact version of a dependency that a codebase is using.

## Rules without reachability analysis[​](#rules-without-reachability-analysis)
Some Semgrep Supply Chain rules do not perform reachability analysis. These rules only check a package&#x27;s version against versions with known vulnerabilities. These rules produce vulnerabilities similar to GitHub Dependabot&#x27;s results, and have a higher false positive rate than reachability rules.

Compare its opposite: [Reachability-rules](#reachability-rules).

## Manifest file[​](#manifest-file)
A manifest file describes the dependencies used in your codebase. In a manifest file, a dependency may indicate a range of versions. A package manager reads the manifest file when installing dependencies into a specific implementation of your codebase, then generates a manifest file specifying the exact version of each dependency installed and any transitive dependencies.

Semgrep Supply Chain uses manifest files to resolve transitive dependencies for some languages. For more information, see [Supported languages](/docs/supported-languages#semgrep-supply-chain).

## Package manager[​](#package-manager)
A software tool that interacts with a package registry to download, upload, or search for dependencies. Package managers typically generate manifest files or lockfiles by analyzing manifest files.

## Package registry[​](#package-registry)
A package registry stores dependencies and provides a means to upload or download dependencies. Each programming language has its own separate registry such as npm for JavaScript and PyPI for Python.

## Reachable finding (and reachable vulnerability)[​](#reachable-finding-and-reachable-vulnerability)
A reachable finding means that you are using both a vulnerable code pattern (the **usage**) and the vulnerable version of a dependency. Within Semgrep Supply Chain, specific findings (usages) are grouped together by their vulnerability.

CI scans with Semgrep Supply Chain rules can block pull requests or merge requests upon detecting any reachable findings.

See also [Reachability](#reachability).

## Reachability[​](#reachability)
Reachability refers to whether or not a vulnerable code pattern from a dependency is used in the codebase that imports it. In Semgrep Supply Chain, both a dependency&#x27;s vulnerable version and code pattern must match for a vulnerability to be considered reachable.

See [Overview of Semgrep Supply Chain](/docs/semgrep-supply-chain/overview) to learn how Semgrep leverages its code-scanning and rule syntax capabilities to provide high-signal rules that determine a finding&#x27;s reachability. This assists security engineers in remediation and triage processes.

## Reachability rules[​](#reachability-rules)
A type of Semgrep Supply Chain rule that performs reachability analysis. A reachability rule can determine if the vulnerable code pattern from a dependency is used in the codebase that imports it.

Compare its opposite: [rules without reachability analysis](#rules-without-reachability-analysis)

## Software bill of materials (SBOM)[​](#software-bill-of-materials-sbom)
Software Bill of Materials (also known as &#x27;Cyber Bill of Materials&#x27;, CBOM) is an artifact produced by many software composition analysis tools. It enumerates the various components of a software artifact such as dependencies, licenses, and security statuses. SBOMs are typically generated for compliance purposes. Regularly, a security engineer or related role signs-off on the SBOM, meaning that they accept the security and legal risk of the associated artifact.

Semgrep Supply Chain can export a CycloneDX 1.4 XML/JSON-formatted SBOM.

## Threat[​](#threat)
A threat is any malicious event that violates the security of an application or network. A threat can result in disrupted business operations and loss or theft of data.

See also [NIST definition of threat](https://csrc.nist.gov/glossary/term/threat).

## Transitive or indirect dependency[​](#transitive-or-indirect-dependency)
A transitive or indirect dependency is a dependency of a dependency. If your codebase uses a dependency A, and A is dependent on B, then B is a transitive dependency. An example would be a codebase that uses Cloudinary, which is dependent on Lodash. In this example, Lodash is a transitive dependency of the codebase.

For more information, see [Supported languages](/docs/supported-languages#semgrep-supply-chain).

## Transitivity[​](#transitivity)
Pertains to a dependency&#x27;s relationship to your codebase or first-party code.

- **Direct**: Your project depends directly on the dependency.
- **Transitive**: Your project&#x27;s dependency depends on a vulnerable dependency.
- **Undetermined**: Semgrep had no transitivity information for the dependency as it relates to your project.

## Usage[​](#usage)
In Semgrep Supply Chain scans, a **usage **is a specific finding in your codebase where Semgrep has found a vulnerability. A vulnerability may have more than one usage, such as when a library is imported and used in many code files.

## Unreachable finding (and unreachable vulnerability)[​](#unreachable-finding-and-unreachable-vulnerability)
An unreachable finding means that the dependency&#x27;s version contains a known vulnerability, but the vulnerable code is not used within your codebase. Within Semgrep Supply Chain, specific findings (usages) are grouped together by their vulnerability.

## Vulnerability[​](#vulnerability)
A vulnerability is an unintentional flaw in a dependency that can be exploited. Vulnerabilities are assigned a CVE by the [MITRE corporation](https://cve.mitre.org/). Semgrep Supply Chain uses GitHub Security Advisory (GHSA) in categorizing the severity of a vulnerability.

Not finding what you need in this doc? Ask questions in our [Community Slack group](https://go.semgrep.dev/slack), or see [Support](/docs/support/) for other ways to get help.

**Tags:**- [Semgrep Supply Chain](/docs/tags/semgrep-supply-chain)[Edit this page](https://github.com/semgrep/semgrep-docs/edit/main/docs/semgrep-supply-chain/glossary.md)Last updated on **Dec 19, 2025**