l3montree-dev / l3montree-dev/devguard

GHSA-cvxm-645q-p574 found in golang/github.com/containerd/containerd/v2@v2.3.1

Open Beginner friendly
#2,731 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cvss-severity:critical devguard l3montree-cybersecurity/...ard-k8s-image-inventory pkg:oci/devguard-k8s-ima...ch=amd64&tag=main-amd64 pkg:oci/devguard-k8s-ima...ch=arm64&tag=main-arm64 risk:medium state:open
Dominant language
Go
Stars
161
Forks
43
Avg merge
1d 8h
Merged PRs (30d)
37

Description

GHSA-cvxm-645q-p574 found in golang/github.com/containerd/containerd/v2@v2.3.1

[!important]
Risk: 4.56 (Medium)
CVSS: 9.9

Description

Impact

containerd's CRI checkpoint import process contains a vulnerability where it fails to validate the image references specified within a checkpoint image's configuration. An attacker with permissions to create pods can use a crafted checkpoint image to force containerd to pull a malicious image and assign it an arbitrary local tag, thereby poisoning the node's local image cache. Subsequently, if other pods on the same node attempt to use the poisoned tag with an IfNotPresent (or Never) pull policy, they will unknowingly execute the attacker's malicious image instead of the legitimate one. This can lead to a compromise of the affected pods, allowing the attacker to execute arbitrary code under the victim pod's identity.

Patches

This bug has been fixed in the following containerd versions:

  • 2.3.2
  • 2.2.5
  • 2.1.9

Users should update to these versions to resolve the issue.

Workarounds

Users should only allow trusted images to be pulled.

Credits

The containerd project would like to thank Henry Beberman (@hbeberman) of Microsoft, the GKE Security Team using Gemini, Anthropic Research, in collaboration with Claude, and Robert Prast (@robertprast) who independently discovered and responsibly disclosed this issue in accordance with the containerd security policy.

For more information

If you have any questions or comments about this advisory:

  • Open an issue in containerd
  • Email us at security@containerd.io

To report a security issue in containerd:

Affected component

The vulnerability is in pkg:golang/github.com/containerd/containerd/v2@v2.3.1, found in artifacts pkg:oci/devguard-k8s-image-inventory?repository_url=ghcr.io/l3montree-dev/devguard-k8s-image-inventory&arch=amd64&tag=main-amd64, pkg:oci/devguard-k8s-image-inventory?repository_url=ghcr.io/l3montree-dev/devguard-k8s-image-inventory&arch=arm64&tag=main-arm64.

Recommended fix

Upgrade to version v2.3.2 or later.

# Update all golang packages
go get -u ./... 
# Update only this package
go get v2@v2.3.2 
Additional guidance for mitigating vulnerabilities

Visit our guides on devguard.org

See more details...
Path to component
 %%{init: { 'theme':'base', 'themeVariables': {
'primaryColor': '#F3F3F3',
'primaryTextColor': '#0D1117',
'primaryBorderColor': '#999999',
'lineColor': '#999999',
'secondaryColor': '#ffffff',
'tertiaryColor': '#ffffff'
} }}%%
 flowchart TD
Your_application(["Your application"]) --- pkg_golang_github_com_containerd_containerd_v2_v2_3_1(["pkg:golang/github.com/containerd/containerd/v2\@v2.3.1"])

classDef default stroke-width:2px
Risk Factor Value Description
Vulnerability Depth 1 The vulnerability is in a direct dependency of your project.
EPSS 0.30 % The exploit probability is very low. The vulnerability is unlikely to be exploited in the next 30 days.
EXPLOIT Not available We did not find any exploit available. Neither in GitHub repositories nor in the Exploit-Database. There are no script kiddies exploiting this vulnerability.
CVSS-BE 10.0 - Exploiting this vulnerability significantly impacts availability.
- Exploiting this vulnerability significantly impacts integrity.
- Exploiting this vulnerability significantly impacts confidentiality.
CVSS-B 9.9 - The vulnerability can be exploited over the network without needing physical access.
- It is easy for an attacker to exploit this vulnerability.
- An attacker needs basic access or low-level privileges.
- No user interaction is needed for the attacker to exploit this vulnerability.
- The vulnerability can affect other systems as well, not just the initial system.
- There is a high impact on the confidentiality of the information.
- There is a high impact on the integrity of the data.
- There is a high impact on the availability of the system.

More details can be found in DevGuard


Interact with this vulnerability

You can use the following slash commands to interact with this vulnerability:

👍 Reply with this to acknowledge and accept the identified risk.
/accept I accept the risk of this vulnerability, because ...
⚠️ Mark the risk as false positive: Use one of these commands if you believe the reported vulnerability is not actually a valid issue.
/component-not-present The vulnerable component is not included in the artifact.
/vulnerable-code-not-present The component is present, but the vulnerable code is not included or compiled.
/vulnerable-code-not-in-execute-path The vulnerable code exists, but is never executed at runtime.
/vulnerable-code-cannot-be-controlled-by-adversary Built-in protections prevent exploitation of this vulnerability.
/inline-mitigations-already-exist The vulnerable code cannot be controlled or influenced by an attacker.
🔁 Reopen the risk: Use this command to reopen a previously closed or accepted vulnerability.
/reopen ... 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Go dependency manifest and the references to github.com/containerd/containerd/v2 at v2.3.1. Update the dependency to v2.3.2 or later, then run the project's dependency or vulnerability scan against the affected artifacts to confirm the advisory is resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
security
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.