Sandbox Escape by math function in smarty
Published 12 Jan 2022 · Updated 8 Jul 2026
Affected packages
- Affected
- <3.1.42
- Fixed in
- 3.1.42
composer require smarty/smarty:^3.1.42- Affected
- >=4.0.0 <4.0.2
- Fixed in
- 4.0.2
composer require smarty/smarty:^4.0.2Details
Impact
Template authors could run arbitrary PHP code by crafting a malicious math string. If a math string is passed through as user provided data to the math function, external users could run arbitrary PHP code by crafting a malicious math string.
Patches
Please upgrade to 4.0.2 or 3.1.42 or higher.
References
See documentation on Math function.
For more information
If you have any questions or comments about this advisory please open an issue in the Smarty repo
Is GHSA-29gp-2c3m-3j6m in any of your client repos?
Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected smarty/smarty, and gives you the command that fixes it.
References
- Linkgithub.com/smarty-php/smarty/security/advisories/GHSA-29gp-2c3m-3j6m
- Advisorynvd.nist.gov/vuln/detail/CVE-2021-29454
- Linkgithub.com/smarty-php/smarty/commit/215d81a9fa3cd63d82fb3ab56ecaf97cf1e7db71
- Linkgithub.com/FriendsOfPHP/security-advisories/blob/master/smarty/smarty/CVE-2021-29454.yaml
- Packagegithub.com/smarty-php/smarty
- Linkgithub.com/smarty-php/smarty/releases/tag/v3.1.42
- Linkgithub.com/smarty-php/smarty/releases/tag/v4.0.2
- Linklists.debian.org/debian-lts-announce/2022/05/msg00005.html
- Linklists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/BRAJVDRGCIY5UZ2PQHKDTT7RMKG6WJQQ
- Linklists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/L777JIBIWJV34HS7LXPIDWASG7TT4LNI
- Linkpackagist.org/packages/smarty/smarty
- Linksecurity.gentoo.org/glsa/202209-09
- Linkwww.debian.org/security/2022/dsa-5151
- Linkwww.smarty.net/docs/en/language.function.math.tpl
Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.