7.5 HIGH
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Local (L)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): Present (P)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Vulnerable System Impact Confidentiality (VC): High (H)
- Vulnerable System Impact Integrity (VI): High (H)
- Vulnerable System Impact Availability (VA): High (H)
- Subsequent System Impact Confidentiality (SC): None (N)
- Subsequent System Impact Integrity (SI): None (N)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Local (L)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): Present (P)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Vulnerable System Impact Confidentiality (MVC): High (H)
- Modified Vulnerable System Impact Integrity (MVI): High (H)
- Modified Vulnerable System Impact Availability (MVA): High (H)
- Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
- Modified Subsequent System Impact Integrity (MSI): Negligible (N)
- Modified Subsequent System Impact Availability (MSA): Negligible (N)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse dismissed (not in Nixpkgs)
Snappy: Binary path is never shell-escaped due to an inverted is_executable check
Snappy is a PHP library allowing thumbnail, snapshot or PDF generation from a url or a html page. Prior to version 1.7.1, on POSIX, escapeshellarg(‘/usr/bin/wkhtmltopdf’) returns the literal string ‘/usr/bin/wkhtmltopdf’ with the single-quote characters included. is_executable() then looks for a file whose actual name contains those quote characters, which essentially never exists. The safe branch is dead code and $command always falls through to the raw, unescaped value. The rest of the arguments (options, input, output) are escaped correctly, so injection has to land in the binary string itself. That happens whenever the binary path is sourced from configuration that is user-influenced, derived from environment variables that ultimately come from request data, or concatenated with any user-controlled fragment. This issue has been patched in version 1.7.1.
References
-
https://github.com/KnpLabs/snappy/security/advisories/GHSA-vpr4-p6fq-85jc x_refsource_CONFIRM
-
https://github.com/KnpLabs/snappy/releases/tag/v1.7.1 x_refsource_MISC
Affected products
- ==< 1.7.1
Matching in nixpkgs
pkgs.snappy
Compression/decompression library for very high speeds
pkgs.snappymail
Simple, modern & fast web-based email client
pkgs.snappy-topology
Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures
pkgs.rubyPackages.snappy
None
pkgs.haskellPackages.snappy
Fast Haskell bindings to Google’s Snappy compression library
pkgs.rubyPackages_3_3.snappy
None
pkgs.rubyPackages_3_4.snappy
None
pkgs.rubyPackages_4_0.snappy
None
pkgs.haskellPackages.snappy-c
Bindings to Google's Snappy: A fast compression library
pkgs.python313Packages.snappy
Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures
pkgs.python314Packages.snappy
Studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures
pkgs.haskellPackages.snappy-hs
Snappy compression library
pkgs.haskellPackages.snappy-lazy
Lazy bytestring compression and decompression
pkgs.haskellPackages.snappy-framing
Snappy Framing Format in Haskell
pkgs.python313Packages.python-snappy
Python library for the snappy compression library from Google
pkgs.python314Packages.python-snappy
Python library for the snappy compression library from Google
pkgs.python313Packages.snappy-15-knots
Database of snappy manifolds
-
nixos-unstable 15-knots-1.2.1
- nixpkgs-unstable 15-knots-1.2.1
- nixos-unstable-small 15-knots-1.2.1
-
nixos-26.05 15-knots-1.2.1
- nixos-26.05-small 15-knots-1.2.1
- nixpkgs-26.05-darwin 15-knots-1.2.1
pkgs.python314Packages.snappy-15-knots
Database of snappy manifolds
-
nixos-unstable 15-knots-1.2.1
- nixpkgs-unstable 15-knots-1.2.1
- nixos-unstable-small 15-knots-1.2.1
-
nixos-26.05 15-knots-1.2.1
- nixos-26.05-small 15-knots-1.2.1
- nixpkgs-26.05-darwin 15-knots-1.2.1
pkgs.python313Packages.snappy-manifolds
Database of snappy manifolds
Package maintainers
-
@noiioiu noiioiu
-
@alejo7797 Alex Epelde <alex@epelde.net>
-
@Mic92 Jörg Thalheim <joerg@thalheim.io>