6.9 MEDIUM
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- 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): None (N)
- Vulnerable System Impact Integrity (VI): None (N)
- Vulnerable System Impact Availability (VA): None (N)
- Subsequent System Impact Confidentiality (SC): High (H)
- Subsequent System Impact Integrity (SI): None (N)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Network (N)
- 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): None (N)
- Modified Vulnerable System Impact Integrity (MVI): None (N)
- Modified Vulnerable System Impact Availability (MVA): None (N)
- Modified Subsequent System Impact Confidentiality (MSC): High (H)
- 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
ignored
6 packages
- smarty3-i18n
- haskellPackages.HSmarty
- python313Packages.pysmarty2
- python314Packages.pysmarty2
- python313Packages.smartypants
- python314Packages.smartypants
- @LeSuisse accepted
- @LeSuisse published on GitHub
Smarty: SSRF via redirect bypass of trusted_uri using {fetch}
Smarty is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application logic. Prior to 4.5.7 and 5.8.2, depending on the release line, Smarty's {fetch} handling in libs/plugins/function.fetch.php and src/FunctionHandler/Fetch.php used Security::isTrustedUri() to validate only the initial remote URL against trusted_uri when a security policy was active. For resources handled by file_get_contents(), including HTTPS URLs, PHP followed HTTP redirects by default. An attacker who could supply or influence a fetch target and had an open redirect on a trusted host could redirect the request to an attacker-chosen internal endpoint, bypass the trusted_uri allowlist, and perform server-side request forgery. This issue is fixed in versions 4.5.7 and 5.8.2.
References
-
https://github.com/smarty-php/smarty/security/advisories/GHSA-cq55-c7wv-pxmq x_refsource_CONFIRM
-
https://github.com/smarty-php/smarty/pull/1194 x_refsource_MISC
-
https://github.com/smarty-php/smarty/releases/tag/v4.5.7 x_refsource_MISC
-
https://github.com/smarty-php/smarty/releases/tag/v5.8.2 x_refsource_MISC
Affected products
- ==>= 5.0.0, < 5.8.2
- ==< 4.5.7
Matching in nixpkgs
Ignored packages (6)
pkgs.smarty3-i18n
gettext for the smarty3 framework
pkgs.haskellPackages.HSmarty
Small template engine
pkgs.python313Packages.pysmarty2
Python API for Salda Smarty Modbus TCP
pkgs.python314Packages.pysmarty2
Python API for Salda Smarty Modbus TCP
pkgs.python313Packages.smartypants
Translate plain ASCII quotation marks and other characters into “smart” typographic HTML entities