Skip to main content
Public proof of conceptFix available

CVE-2023-37897

A public proof of concept exists; no exploitation attested.

  • Published2023-07-18
  • Fixed in1.7.42.2
  • WeaknessCWE-393 · CWE-74

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

Grav is a file-based Web-platform built in PHP. Grav is subject to a server side template injection (SSTI) vulnerability. The fix for another SSTI vulnerability using `|map`, `|filter` and `|reduce` twigs implemented in the commit `71bbed1` introduces bypass of the denylist due to incorrect return value from `isDangerousFunction()`, which allows to execute the payload prepending double backslash (`\\`). The `isDangerousFunction()` check in version 1.7.42 and onwards retuns `false` value instead of `true` when the `\` symbol is found in the `$name`. This vulnerability can be exploited if the attacker has access to: 1. an Administrator account, or 2. a non-administrator, user account that has Admin panel access and Create/Update page permissions. A fix for this vulnerability has been introduced in commit `b4c6210` and is included in release version `1.7.42.2`. Users are advised to upgrade. There are no known workarounds for this vulnerability.

Timeline

dates in UTC
  1. 2023-07-1821:15CVE publishedNVD

Versions per branch

CISA-ADP · OSV · NVD
Getgrav grav
BranchAffectedFixed in
1.7< 1.7.42.21.7.42.2
1.7= 1.7.42no fix published
1.7= 1.7.42.1no fix published

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Products declared by the CNA1 product

As GitHub_M, the CNA that assigned this CVE, declared them in the CVE record; versions as written.

  • getgrav grav
    Affected
    • = < 1.7.42.2no fix stated

Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2023-07-18

Fix

  1. Update Getgrav grav to 1.7.42.2

Advisories and patches

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof of concept
Metasploit modules
none listed
Metasploit Framework

Sources

  • CISA-ADPSSVC decisionpoc2024-10-18
  • CNACVSS 3.17.2known since 2026-10-23
  • NVDCVSS 3.18.8read 2026-10-23
  • CNAweakness (CWE)CWE-393, CWE-74known since 2026-10-23
  • FIRST EPSSEPSS score2.8 %2026-11-08
  • OSVaffected packages—
  • GitHub AdvisoriesadvisoryHIGH2023-07-19

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Published
2023-07-18
Last Modified
2026-06-17
NVD status
Modified
GitHub Advisory
GHSA-9436-3gmp-4f53

Frequently asked questions

What is CVE-2023-37897?

Grav is a file-based Web-platform built in PHP. Grav is subject to a server side template injection (SSTI) vulnerability. The fix for another SSTI vulnerability using `|map`, `|filter` and `|reduce` twigs implemented in the commit `71bbed1` introduces bypass of the denylist due to incorrect return value from `isDangerousFunction()`, which allows to execute the payload prepending double backslash (`\\`). The `isDangerousFunction()` check in version 1.7.42 and onwards retuns `false` value instead of `true` when the `\` symbol is found in the `$name`. This vulnerability can be exploited if the attacker has access to: 1. an Administrator account, or 2. a non-administrator, user account that has Admin panel access and Create/Update page permissions. A fix for this vulnerability has been introduced in commit `b4c6210` and is included in release version `1.7.42.2`. Users are advised to upgrade. There are no known workarounds for this vulnerability.

Is CVE-2023-37897 actively exploited?

A proof-of-concept exploit exists for CVE-2023-37897, but active exploitation has not been confirmed at this time.

What is the CVSS score for CVE-2023-37897?

CVE-2023-37897 has a CVSS v3 base score of 8.8 (HIGH severity), with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

Running getgrav/grav? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record