Grav's Twig processing allowing dangerous PHP functions by default
Impact
Twig processing of static pages can be enabled in the front matter by any administrative user allowed to create or edit pages. As the Twig processor runs unsandboxed, this behavior can be used to gain arbitrary code execution and elevate privileges on the instance.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| Earlier releases before 1.7.11Ecosystem versions | 1.7.11 |
Version evidence: OSV · GHSA-g8r4-p96j-xfxc
View original version evidence (229 explicit versions)
Original source description
Impact
Twig processing of static pages can be enabled in the front matter by any administrative user allowed to create or edit pages. As the Twig processor runs unsandboxed, this behavior can be used to gain arbitrary code execution and elevate privileges on the instance.
Patches
The issue was addressed by preventing dangerous functions from being called in Twig templates. A configuration option has been added to manually allow arbitrary PHP functions (system.twig.safe_functions) and filters (system.twig.safe_filters).
Futures major versions of Grav may disable this functionality by default.
Workarounds
Blocking access to the /admin path from untrusted sources will reduce the probability of exploitation.
References
- https://portswigger.net/research/server-side-template-injection
- https://blog.sonarsource.com/grav-cms-code-execution-vulnerabilities
For more information
If you have any questions or comments about this advisory, you can contact:
- The original reporters, by sending an email to vulnerability.research [at] sonarsource.com;
- The maintainers, by opening an issue on this repository.
References
- Security advisory github.com/getgrav/grav/security/advisories/GHSA-g8r4-p96j-xfxc
- Security advisory nvd.nist.gov/vuln/detail/CVE-2021-29440
- Security advisory blog.sonarsource.com/grav-cms-code-execution-vulnerabilities
- Source reference packagist.org/packages/getgrav/grav
- Public exploit reference packetstormsecurity.com/files/162987/Grav-CMS-1.7.10-Server-Side-Template-Injection.html