critical CVSS 9.8

CVE-2024-38474·Apache vulnerability

Substitution encoding issue in mod_rewrite in Apache HTTP Server 2.4.59 and earlier allows attacker to execute scripts in directories permitted by the configuration but not directly reachable by any URL or source disclosure of scripts meant to only to be executed as CGI. Users are recommended to upgrade to version 2.4.60, which fixes this issue. Some RewriteRules that capture and substitute unsafely will now fail unless rewrite flag "UnsafeAllow3F" is specified.

Severity
critical
Software
Apache
Fixed in
2.4.60
Published
2024-07-01

Affected versions

From: 2.4.0

Until: 2.4.60

Fixed in: 2.4.60

How to fix this CVE

Upgrade Apache HTTP Server to version 2.4.60 or later to resolve a critical mod_rewrite substitution encoding vulnerability that could allow unauthorized script execution. If you use RewriteRules with unsafe character substitution, test your configuration after upgrading as the patch introduces stricter validation requiring the UnsafeAllow3F flag for previously permissive rules. Perform this update on all systems running Apache 2.4.0 through 2.4.59 as soon as possible given the critical severity.

sudo dnf update httpd

Defensia detects this vulnerability

What an exploitation attempt looks like

Sample log line indicative of exploitation attempts:

POST|GET requests containing URL-encoded or hex-encoded queries (\?|%3F) targeting paths outside web root directories, followed by successful execution indicated by 200 status codes and script output in response bodies instead of 403/404 errors

WAF mitigation (if patching is not yet possible)

Add this rule to your WAF to block exploitation attempts while you schedule the patch.

Implement strict URL validation rules that block requests with suspicious percent-encoded or double-encoded query strings targeting script extensions (.php, .cgi, .py, .sh) on non-public directories; block requests attempting path traversal sequences like ../ or encoded variants; enforce whitelist-based RewriteRule filtering at the WAF layer until systems are patched

How to check if you are affected

  1. Check installed Apache version: apache2ctl -v (Debian/Ubuntu) or httpd -v (RHEL/CentOS)
  2. Review mod_rewrite configuration for unsafe RewriteRules: grep -r 'RewriteRule' /etc/apache2/conf-enabled/ or /etc/httpd/conf.d/
  3. Search access logs for suspicious patterns targeting non-existent URLs followed by script execution: grep -E '(\?|%3F)' /var/log/apache2/access.log | grep -E '\.(php|cgi|py|sh)'
  4. Verify patch installation by confirming version is 2.4.60 or higher: apache2ctl -v | grep -oP '\d+\.\d+\.\d+'

FAQ

What is CVE-2024-38474?

CVE-2024-38474 is a critical vulnerability in Apache mod_rewrite that improperly handles character substitution in rewrite rules, potentially allowing attackers to bypass URL restrictions and execute scripts that should not be directly accessible from the web.

Is CVE-2024-38474 being actively exploited?

No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog and no public exploits have been disclosed as of now, though the critical CVSS 9.8 score warrants immediate patching.

What versions of Apache are affected by CVE-2024-38474?

Apache HTTP Server versions 2.4.0 through 2.4.59 are vulnerable; version 2.4.60 and all later releases contain the fix.

How do I check if my server is vulnerable to CVE-2024-38474?

Run 'apache2ctl -v' or 'httpd -v' and note the version number; if it reports 2.4.59 or earlier, your server is vulnerable and requires immediate upgrade.

Does Defensia detect CVE-2024-38474?

Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Apache is installed on a monitored server, CVE-2024-38474 will appear in your dashboard with remediation steps.

Related Apache CVEs

CVE-2021-42013CVSS 10It was found that the fix for CVE-2021-41773 in Apache HTTP Server 2.4.50 was insufficient. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue only affects Apache 2.4.49 and Apache 2.4.50 and not earlier versions.
CVE-2021-41773CVSS 10A flaw was found in a change made to path normalization in Apache HTTP Server 2.4.49. An attacker could use a path traversal attack to map URLs to files outside the directories configured by Alias-like directives. If files outside of these directories are not protected by the usual default configuration "require all denied", these requests can succeed. If CGI scripts are also enabled for these aliased pathes, this could allow for remote code execution. This issue is known to be exploited in the wild. This issue only affects Apache 2.4.49 and not earlier versions. The fix in Apache HTTP Server 2.4.50 was found to be incomplete, see CVE-2021-42013.
CVE-2026-28780CVSS 9.8Heap-based Buffer Overflow vulnerability in mod_proxy_ajp of Apache HTTP Server. If mod_proxy_ajp connects to a malicious AJP server this AJP server can send a malicious AJP message back to mod_proxy_ajp and cause it to write 4 attacker controlled bytes after the end of a heap based buffer. This issue affects Apache HTTP Server: through 2.4.66. Users are recommended to upgrade to version 2.4.67, which fixes the issue.
CVE-2026-59797CVSS 9.8Improper Privilege Management vulnerability in Apache HTTP Server's mod_ssl via SSLRequire and file-related expressions. This issue affects Apache HTTP Server: from 2.4.0 through 2.4.68.
CVE-2024-38476CVSS 9.8Vulnerability in core of Apache HTTP Server 2.4.59 and earlier are vulnerably to information disclosure, SSRF or local script execution via backend applications whose response headers are malicious or exploitable. Users are recommended to upgrade to version 2.4.60, which fixes this issue.

References

Track CVEs across your fleet automatically

Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-38474. Free for 1 server.

Get started free