diff --git a/advisories/github-reviewed/2025/02/GHSA-fgw4-v983-mgp8/GHSA-fgw4-v983-mgp8.json b/advisories/github-reviewed/2025/02/GHSA-fgw4-v983-mgp8/GHSA-fgw4-v983-mgp8.json new file mode 100644 index 00000000000..9fa263a5582 --- /dev/null +++ b/advisories/github-reviewed/2025/02/GHSA-fgw4-v983-mgp8/GHSA-fgw4-v983-mgp8.json @@ -0,0 +1,65 @@ +{ + "schema_version": "1.4.0", + "id": "GHSA-fgw4-v983-mgp8", + "modified": "2025-02-14T17:19:15Z", + "published": "2025-02-14T17:19:14Z", + "aliases": [ + "CVE-2025-25204" + ], + "summary": "`gh attestation verify` returns incorrect exit code during verification if no attestations are present", + "details": "### Summary\n\nA bug in GitHub's Artifact Attestation CLI tool, `gh attestation verify`, may return an incorrect zero exit status when no matching attestations are found for the specified `--predicate-type ` or the default `https://slsa.dev/provenance/v1` if not specified. This issue only arises if an artifact has an attestation with a predicate type different from the one provided in the command. As a result, users relying solely on these exit codes may mistakenly believe the attestation has been verified, despite the absence of an attestation with the specified predicate type and the tool printing a verification failure.\n\nUsers are advised to update `gh` to version `v2.67.0` as soon as possible.\n\nInitial report: https://github.com/cli/cli/issues/10418\nFix: https://github.com/cli/cli/pull/10421\n\n### Details\n\nThe gh attestation verify command fetches, loads, and attempts to verify attestations associated with a given artifact for a specified predicate type. If an attestation is found, but the predicate type does not match the one specified in the `gh attestation verify` command, the verification fails, but the program exits early.\n\nDue to a re-used uninitialized error variable, when no matching attestations are found, the relevant function returns `nil` instead of an error, causing the program to exit with a status code of `0`, which incorrectly suggests successful verification.\n\n### PoC\n\nRun `gh attestation verify` with local attestations using the `--bundle` flag and specify a predicate type with `--predicate-type` that you know will not match any of the attestations the command will attempt to verify. Confirm that the command exits with a zero status code.\n\n### Impact\n\nUsers who rely exclusively on the exit status code of `gh attestation verify` may incorrectly verify an attestation when the attestation's predicate type does not match the specified predicate type in the command.", + "severity": [ + { + "type": "CVSS_V3", + "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:N" + } + ], + "affected": [ + { + "package": { + "ecosystem": "Go", + "name": "github.com/cli/cli/v2" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "2.49.0" + }, + { + "fixed": "2.67.0" + } + ] + } + ] + } + ], + "references": [ + { + "type": "WEB", + "url": "https://github.com/cli/cli/security/advisories/GHSA-fgw4-v983-mgp8" + }, + { + "type": "WEB", + "url": "https://github.com/cli/cli/issues/10418" + }, + { + "type": "WEB", + "url": "https://github.com/cli/cli/pull/10421" + }, + { + "type": "PACKAGE", + "url": "https://github.com/cli/cli" + } + ], + "database_specific": { + "cwe_ids": [ + "CWE-390" + ], + "severity": "MODERATE", + "github_reviewed": true, + "github_reviewed_at": "2025-02-14T17:19:14Z", + "nvd_published_at": null + } +} \ No newline at end of file