5.4 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): Required (R)
- Scope (S): Unchanged (U)
- Confidentiality (C): None (N)
- Integrity (I): Low (L)
- Availability (A): Low (L)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): None (N)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): Low (L)
- Modified Availability (MA): Low (L)
by @LeSuisse Activity log
- Created suggestion
-
@LeSuisse
ignored
maintainer.ignore
2 maintainers
- @LeSuisse
- @developer-guy
-
@LeSuisse
ignored
8 packages
- vimPlugins.gitsigns-nvim
- luaPackages.gitsigns-nvim
- lua51Packages.gitsigns-nvim
- lua52Packages.gitsigns-nvim
- lua53Packages.gitsigns-nvim
- lua54Packages.gitsigns-nvim
- lua55Packages.gitsigns-nvim
- luajitPackages.gitsigns-nvim
- @LeSuisse accepted
- @LeSuisse published on GitHub
gitsign --verify panics on empty-certificate PKCS7 and exits 0, bypassing exit-code callers
Gitsign is a keyless Sigstore to signing tool for Git commits with your a GitHub / OIDC identity. From 0.4.0 to before 0.15.0, CertVerifier.Verify() in pkg/git/verifier.go unconditionally dereferences certs[0] after sd.GetCertificates() without checking the slice length. A CMS/PKCS7 signed message with an empty certificate set is a structurally valid DER payload; GetCertificates() returns an empty slice with no error, causing an immediate index-out-of-range panic. On the gitsign --verify code path (the GPG-compatible mode invoked by git verify-commit), the panic is silently recovered by internal/io/streams.go's Wrap() function, which returns nil instead of an error. main.go then exits with code 0, causing exit-code-only verification callers to interpret the failed verification as success. This vulnerability is fixed in 0.15.0.
References
-
https://github.com/sigstore/gitsign/security/advisories/GHSA-7c37-gx6w-8vc5 x_refsource_CONFIRMexploit
Affected products
- ==>= 0.4.0, < 0.15.0
Matching in nixpkgs
Ignored packages (8)
pkgs.vimPlugins.gitsigns-nvim
Git integration for buffers
-
nixos-unstable luajit2.1-gitsigns.nvim-2.1.0-1-unstable-2.1.0-1
- nixpkgs-unstable luajit2.1-gitsigns.nvim-2.1.0-1-unstable-2.1.0-1
- nixos-unstable-small luajit2.1-gitsigns.nvim-2.1.0-1-unstable-2.1.0-1
pkgs.luaPackages.gitsigns-nvim
Git integration for buffers
pkgs.lua51Packages.gitsigns-nvim
Git integration for buffers
pkgs.lua52Packages.gitsigns-nvim
Git integration for buffers
pkgs.lua53Packages.gitsigns-nvim
Git integration for buffers
pkgs.lua54Packages.gitsigns-nvim
Git integration for buffers
pkgs.lua55Packages.gitsigns-nvim
Git integration for buffers
pkgs.luajitPackages.gitsigns-nvim
Git integration for buffers
Package maintainers
Ignored maintainers (2)
-
@developer-guy Batuhan Apaydın <developerguyn@gmail.com>
-
@LeSuisse Thomas Gerbet <thomas@gerbet.me>