Vulnerabilities in pkg:golang/github.com/notaryproject/notation

PACKAGE
Advisory Identifier: GHSA-57wx-m636-g3g8
Advisory Summary

CVE-2024-23332 is a MODERATE (CVSS 4.0) go package github.com/notaryproject/notation configured with vulnerability (CWE-672: Operation on a Resource after Expiration or Release) affecting Github.com/notaryproject/notation libraries in the Go ecosystem. The issue involves go package github.com/notaryproject/notation configured with permissive trust policies potentially susceptible to rollback attack from compromised registry. Remediation is available in the latest vendor maintenance releases.

3 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:golang/github.com/notaryproject/notation

3 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:golang/github.com/notaryproject/notation. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-57wx-m636-g3g8 CVE-2024-23332 MODERATE Go package github.com/notaryproject/notation configured with permissive trust policies potentially susceptible to rollback attack from compromised registry
GHSA-9m3v-v4r5-ppx7 CVE-2023-33957 MODERATE Notation vulnerable to denial of service from high number of artifact signatures
GHSA-rvrx-rrwh-r9p6 CVE-2023-33958 MODERATE Notation's default `maxSignatureAttempts` in `notation verify` enables an endless data attack

CVE-2024-23332 at a Glance

CVE Identifier CVE-2024-23332
GHSA Identifier GHSA-57wx-m636-g3g8
Severity MODERATE
CVSS v3.1 Base Score 4.0
CWE Classification CWE-672: Operation on a Resource after Expiration or Release
Affected Product Github.com/notaryproject/notation
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 4.0

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:N/I:L/A:L).

Attack Vector Network (AV:N)
Attack Complexity High (AC:H)
Privileges Required High (PR:H)
User Interaction Required (UI:R)
Scope Changed (S:C)
Confidentiality None (C:N)
Integrity Low (I:L)
Availability Low (A:L)

How to Fix CVE-2024-23332

To remediate this vulnerability, upgrade all affected Github.com/notaryproject/notation dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/notaryproject/notation fixed: Latest secure release
Upgrade github.com/notaryproject/notation to Latest secure release
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/notaryproject/notation

How to Check if You Are Affected

To determine whether your application is affected by CVE-2024-23332, inspect your project dependencies for Github.com/notaryproject/notation:

inspect dependencies for github.com/notaryproject/notation

Analyze the terminal output to locate any version of Github.com/notaryproject/notation in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than the patched release), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-672: Operation on a Resource after Expiration or Release, where the product uses, accesses, or otherwise operates on a resource after that resource has been expired, released, or revoked. In Github.com/notaryproject/notation, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Impact An external actor with control of a compromised container registry can provide outdated versions of OCI artifacts, such as Images. This could lead artifact consumers with relaxed trust policies (such as `permissive` instead of `strict`) to potentially use artifacts with signatures that are no longer valid, making them susceptible to any exploits those artifacts may contain. ### Mitigation In Notary Project, an artifact publisher can control the validity period of artifact by specifying signature expiry during the signing process. Using shorter signature validity periods along with processes to periodically resign artifacts, allows artifact producers to ensure that their consumers will only receive up-to-date artifacts. Artifact consumers should correspondingly use a `strict` or equivalent trust policy that enforces signature expiry. Together these steps enable use of up-to-date artifacts and safeguard against rollback attack in the event of registry compromise. The Notary Project offers various signature validation options such as `permissive`, `audit` and `skip` to support various scenarios. These scenarios includes 1) situations demanding urgent workload deployment, necessitating the bypassing of expired or revoked signatures; 2) auditing of artifacts lacking signatures without interrupting workload; and 3) skipping of verification for specific images that might have undergone validation through alternative mechanisms. Additionally, the Notary Project supports revocation to ensure the signature freshness. Artifact publishers can sign with short-lived certificates and revoke older certificates when necessary. This revocation serves as a signal to inform artifact consumers that the corresponding unexpired artifact is no longer approved by the publisher. This enables the artifact publisher to control the validity of the signature independently of their ability to manage artifacts in a compromised registry. ### Credit The Notary Project extends its gratitude to Justin Cappos (@JustinCappos) for responsibly disclosing the issue. _**Note:** we have updated [threat model](https://github.com/notaryproject/specifications/blob/main/threatmodels/notation-threatmodel.md) to include considerations for rollback attack.

CVE-2024-23332 Affected Github.com/notaryproject/notation Versions

1 component(s)
Product / Package Ecosystem Affected Versions Fixed Version
github.com/notaryproject/notation
Go
≤ 1.0.0

References

Frequently Asked Questions

What is CVE-2024-23332?
CVE-2024-23332 is a security vulnerability in Github.com/notaryproject/notation involving Go package github.com/notaryproject/notation configured with permissive trust policies potentially susceptible to rollback attack from compromised registry under CWE-672: Operation on a Resource after Expiration or Release.
Which Github.com/notaryproject/notation versions are affected?
Affected versions include releases prior to current release patches across affected packages: github.com/notaryproject/notation.
What version fixes CVE-2024-23332?
Upgrading to current release patches (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/notaryproject/notation affected?
Yes, github.com/notaryproject/notation is affected in releases prior to Latest secure release. Upgrade your dependency to Latest secure release or later.
What is the CVSS score of CVE-2024-23332?
CVE-2024-23332 has a CVSS v3.1 base score of 4.0 (MODERATE) with vector string CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:N/I:L/A:L.
What CWE is associated with CVE-2024-23332?
CVE-2024-23332 is classified under CWE-672: Operation on a Resource after Expiration or Release (The product uses, accesses, or otherwise operates on a resource after that resource has been expired, released, or revoked.).
How can I check Go dependencies for CVE-2024-23332?
Run the dependency tree command: 'inspect dependencies for github.com/notaryproject/notation'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-57wx-m636-g3g8",
  "modified" : "2024-03-01T15:19:13Z",
  "published" : "2024-01-19T22:12:22Z",
  "aliases" : [ "CVE-2024-23332" ],
  "summary" : "Go package github.com/notaryproject/notation configured with permissive trust policies potentially susceptible to rollback attack from compromised registry",
  "details" : "### Impact\nAn external actor with control of a compromised container registry can provide outdated versions of OCI artifacts, such as Images. This could lead artifact consumers with relaxed trust policies (such as `permissive` instead of `strict`) to potentially use artifacts with signatures that are no longer valid, making them susceptible to any exploits those artifacts may contain.\n\n### Mitigation\nIn Notary Project, an artifact publisher can control the validity period of artifact by specifying signature expiry during the signing process. Using shorter signature validity periods along with processes to periodically resign artifacts, allows artifact producers to ensure that their consumers will only receive up-to-date artifacts. Artifact consumers should correspondingly use a `strict` or equivalent trust policy that enforces signature expiry. Together these steps enable use of up-to-date artifacts and safeguard against rollback attack in the event of registry compromise. The Notary Project offers various signature validation options such as `permissive`, `audit` and `skip` to support various scenarios. These scenarios includes 1) situations demanding urgent workload deployment, necessitating the bypassing of expired or revoked signatures; 2) auditing of artifacts lacking signatures without interrupting workload; and 3) skipping of verification for specific images that might have undergone validation through alternative mechanisms.\n\nAdditionally, the Notary Project supports revocation to ensure the signature freshness. Artifact publishers can sign with short-lived certificates and revoke older certificates when necessary. This revocation serves as a signal to inform artifact consumers that the corresponding unexpired artifact is no longer approved by the publisher. This enables the artifact publisher to control the validity of the signature independently of their ability to manage artifacts in a compromised registry.\n\n### Credit\nThe Notary Project extends its gratitude to Justin Cappos (@JustinCappos) for responsibly disclosing the issue.\n\n_**Note:** we have updated [threat model](https://github.com/notaryproject/specifications/blob/main/threatmodels/notation-threatmodel.md) to include considerations for rollback attack.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:N/I:L/A:L"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/notaryproject/notation"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "last_affected" : "1.0.0"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/notaryproject/specifications/security/advisories/GHSA-57wx-m636-g3g8"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2024-23332"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/notaryproject/specifications/commit/cdabdd1042de2999c685fa5d422a785ded9c983a"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/notaryproject/specifications"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-672" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2024-01-19T22:12:22Z",
    "nvd_published_at" : "2024-01-19T23:15:07Z"
  }
}