Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions docs/organizations/managing-security-and-risk.md
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,42 @@

The dependency overview page offers a quick bird's-eye view of that particular dependency. You'll be able to see all different versions that are being used, including which repository is using them, the oldest and most recent versions you're leveraging, as well as the highest criticality of security issues, the license <a href="#license-scanning"><sup>5</sup></a> applied to any particular version of that dependency, and the [OSSF Scorecard](#ossf-scorecard) security assessment.

### Transitive dependencies {: id="transitive-dependencies"}

A **transitive dependency** is a package your repository doesn't import directly — it's pulled in through another package you depend on. When a vulnerability lives in a transitive dependency, the package you need to upgrade is often *not* the vulnerable one itself, but an ancestor higher up the chain that has a patched release available.

Check failure on line 590 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 590, "column": 81}}}, "severity": "ERROR"}

Codacy surfaces the full import chain for every finding caused by a transitive dependency, so you can see exactly which package to bump.

#### Where you see it

Open the **Findings** tab under **Security and risk management**. Findings caused by a transitive dependency are labelled **Transitive Dependency** in the header.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚪ LOW RISK

Nitpick: Use the American English spelling for consistency with the rest of the documentation.

Suggested change
Open the **Findings** tab under **Security and risk management**. Findings caused by a transitive dependency are labelled **Transitive Dependency** in the header.
Open the **Findings** tab under **Security and risk management**. Findings caused by a transitive dependency are labeled **Transitive Dependency** in the header.


![Security and risk management transitive dependency finding](images/security-risk-management-transitive-chain.png)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 MEDIUM RISK

The image 'security-risk-management-transitive-chain.png' is referenced but not included in the PR, which will result in a broken image in the rendered documentation.


When you expand a transitive finding, the import chain appears at the top of the finding card. It shows every hop from your repository down to the vulnerable package, ending with the CVE identifier.

#### Reading the chain

Each segment is one package in the resolution path. The chain reads left to right:

- **First segment** — your repository.

Check failure on line 606 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 606, "column": 20}}}, "severity": "ERROR"}
- **Middle segments** — the intermediate packages that pull in the vulnerable one.

Check failure on line 607 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 607, "column": 22}}}, "severity": "ERROR"}
- **Upgrade label** — when an intermediate package has a patched release available, an "Upgrade to *version*" marker appears on it. This is the package you bump to fix the vulnerability across this path.

Check failure on line 608 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 608, "column": 20}}}, "severity": "ERROR"}
- **Last package segment** — the vulnerable package and version.

Check failure on line 609 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 609, "column": 27}}}, "severity": "ERROR"}
- **CVE identifier** — the specific vulnerability.

Check failure on line 610 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 610, "column": 21}}}, "severity": "ERROR"}

In the example above, the vulnerable package is `Torch@2.4.0`, but the fix is to upgrade `accelerate` to `1.1.1` — that release of `accelerate` no longer resolves to the affected `Torch` version.

Check failure on line 612 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Dashes] Remove the spaces around ' — '. Raw Output: {"message": "[Microsoft.Dashes] Remove the spaces around ' — '.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 612, "column": 113}}}, "severity": "ERROR"}

#### When no upgrade is available

If no package in the chain has a patched release yet, the chain shows the full path without an upgrade label. In that case the vulnerability cannot be resolved by a version bump alone; you may need to wait for an upstream fix, apply a workaround, or accept the risk per your organization's policy.

Check failure on line 616 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Contractions] Use 'can't' instead of 'cannot'. Raw Output: {"message": "[Microsoft.Contractions] Use 'can't' instead of 'cannot'.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 616, "column": 142}}}, "severity": "ERROR"}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Add a comma after "In that case" to improve the readability and flow of the sentence.

Suggested change
If no package in the chain has a patched release yet, the chain shows the full path without an upgrade label. In that case the vulnerability cannot be resolved by a version bump alone; you may need to wait for an upstream fix, apply a workaround, or accept the risk per your organization's policy.
If no package in the chain has a patched release yet, the chain shows the full path without an upgrade label. In that case, the vulnerability cannot be resolved by a version bump alone; you may need to wait for an upstream fix, apply a workaround, or accept the risk per your organization's policy.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚪ LOW RISK

Nitpick: Add a comma after the introductory phrase.

Suggested change
If no package in the chain has a patched release yet, the chain shows the full path without an upgrade label. In that case the vulnerability cannot be resolved by a version bump alone; you may need to wait for an upstream fix, apply a workaround, or accept the risk per your organization's policy.
If no package in the chain has a patched release yet, the chain shows the full path without an upgrade label. In that case, the vulnerability cannot be resolved by a version bump alone; you may need to wait for an upstream fix, apply a workaround, or accept the risk per your organization's policy.


#### Limitations

- The import chain is shown only for findings that come from dependency scanning. Findings from other scan types (container scanning, app scanning) do not show a chain.

Check failure on line 620 in docs/organizations/managing-security-and-risk.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Microsoft.Contractions] Use 'don't' instead of 'do not'. Raw Output: {"message": "[Microsoft.Contractions] Use 'don't' instead of 'do not'.", "location": {"path": "docs/organizations/managing-security-and-risk.md", "range": {"start": {"line": 620, "column": 149}}}, "severity": "ERROR"}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To maintain consistency with the "Scan types" table (line 338) and other sections of the documentation (e.g., line 184), use the formal term "Software Composition Analysis (SCA)" instead of "dependency scanning".

Suggested change
- The import chain is shown only for findings that come from dependency scanning. Findings from other scan types (container scanning, app scanning) do not show a chain.
- The import chain is shown only for findings that come from Software Composition Analysis (SCA). Findings from other scan types (container scanning, app scanning) do not show a chain.

- Each finding shows a single representative path. If a repository reaches the same vulnerable package through more than one chain, only one is displayed.
- The upgrade label reflects the nearest ancestor with a known patched release at scan time. If multiple ancestors could be upgraded, the closest one to the vulnerable package is suggested.

### OSSF Scorecard {: id="ossf-scorecard"}

The **OSSF Scorecard** feature provides additional security insights for your dependencies by displaying security assessment data from the Open Source Security Foundation (OSSF) Scorecard project.
Expand Down
Loading