Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated single-request read (PR:N/UI:N); AC:L retained because case-insensitive Windows/macOS/Docker hosts are common; confidentiality-only impact so I:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Grav before 2.0.4 ships a default .htaccess (and reference webserver-configs/htaccess.txt) whose rules blocking access to sensitive file types (.yaml, .php, .json, etc.) lack the [NC] flag, making extension matching case-sensitive. On case-insensitive filesystems (Windows/NTFS, macOS/HFS+, or Docker volume mounts), an unauthenticated attacker can request these files with uppercase or mixed-case extensions (e.g., .YAML, .PHP) to bypass the restrictions and read sensitive configuration files that may contain API keys and credentials.
Articles & Coverage 1
AnalysisAI
Sensitive configuration file disclosure in Grav CMS before 2.0.4 lets unauthenticated remote attackers bypass the bundled .htaccess protections by requesting blocked file types with uppercase or mixed-case extensions (e.g., .YAML, .PHP). The shipped rules omit the Apache [NC] flag, so extension matching is case-sensitive and fails to block case variants on case-insensitive filesystems (Windows/NTFS, macOS/HFS+, Docker volume mounts), exposing files that may hold API keys and credentials. There is no public exploit identified at time of analysis, and the issue is not listed in CISA KEV.
Technical ContextAI
Grav is a PHP-based flat-file CMS that stores configuration and content as .yaml, .json, and .php files directly on disk rather than in a database, making filesystem-level access control critical. The protection relies on an Apache mod_rewrite/mod_authz ruleset in the default .htaccess (mirrored in webserver-configs/htaccess.txt) that denies web requests to sensitive extensions. Per CWE-178 (Improper Handling of Case Sensitivity), the regex/extension patterns are evaluated case-sensitively because the [NC] (no-case) flag is absent; Apache's matching is literal, but the underlying filesystem resolves .YAML and .yaml to the same file. On case-insensitive filesystems the requested uppercase path still returns the real file while sidestepping the lowercase-only deny rule. The CPE cpe:2.3:a:getgrav:grav:*:*:*:* confirms the getgrav/grav application is the sole affected component.
RemediationAI
Vendor-released patch: 2.0.4 - upgrade Grav to 2.0.4 or later, which corrects the .htaccess rules to include the [NC] flag for case-insensitive extension matching. If you customized or replaced the default .htaccess, manually add the [NC] flag to the deny rules for sensitive extensions (.yaml, .php, .json, etc.) using the corrected webserver-configs/htaccess.txt as the reference, since a simple version bump will not overwrite an operator-edited config. As a compensating control until patched, front the site with a reverse proxy or WAF rule that blocks requests to those extensions case-insensitively, or migrate the deployment to a case-sensitive Linux filesystem (avoiding Docker volume mounts that reintroduce case-insensitivity) - note the WAF approach requires careful pattern coverage of all sensitive extensions and the filesystem migration may not be feasible for existing Windows/macOS hosts. Follow the vendor advisory at https://github.com/getgrav/grav/security/advisories/GHSA-vwg3-w8w3-pc79. If any config files were web-accessible, rotate any exposed API keys and credentials.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-178 – Improper Handling of Case Sensitivity
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45118
GHSA-5mv9-76r9-rprq