CVE-2022-26377

7.5 HIGH

📋 TL;DR

This HTTP request smuggling vulnerability in Apache HTTP Server's mod_proxy_ajp module allows attackers to bypass security controls and smuggle malicious requests to backend AJP servers. It affects Apache HTTP Server versions 2.4.53 and earlier when configured with mod_proxy_ajp. Attackers can potentially access internal services or perform unauthorized actions.

💻 Affected Systems

Products:
  • Apache HTTP Server
Versions: 2.4.0 through 2.4.53
Operating Systems: All operating systems running Apache HTTP Server
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when mod_proxy_ajp is enabled and configured to forward requests to AJP servers. Default Apache installations typically don't have mod_proxy_ajp enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of backend AJP servers, unauthorized access to internal applications, data exfiltration, or lateral movement within the network.

🟠

Likely Case

Bypass of security controls, access to restricted backend applications, or manipulation of application logic.

🟢

If Mitigated

Limited impact due to network segmentation, proper AJP server hardening, or request validation at backend services.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires understanding of HTTP request smuggling techniques and AJP protocol. Public proof-of-concept code exists in security advisories.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Apache HTTP Server 2.4.54

Vendor Advisory: https://httpd.apache.org/security/vulnerabilities_24.html

Restart Required: Yes

Instructions:

1. Download Apache HTTP Server 2.4.54 or later from https://httpd.apache.org/download.cgi. 2. Stop the Apache service. 3. Backup configuration files. 4. Install the new version. 5. Restart Apache service.

🔧 Temporary Workarounds

Disable mod_proxy_ajp

all

Remove or comment out mod_proxy_ajp module loading if not required

# In httpd.conf or apache2.conf, comment out: LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
# Or remove the line entirely

Use mod_proxy_http instead

all

Replace AJP proxy configurations with HTTP proxy if possible

# Change ProxyPass /app ajp://backend:8009/ to ProxyPass /app http://backend:8080/

🧯 If You Can't Patch

  • Implement network segmentation to isolate AJP backend servers
  • Deploy web application firewall (WAF) with HTTP request smuggling protection

🔍 How to Verify

Check if Vulnerable:

Check Apache version and mod_proxy_ajp configuration: httpd -v and grep -r 'proxy_ajp' /etc/apache2/

Check Version:

httpd -v or apache2 -v

Verify Fix Applied:

Verify Apache version is 2.4.54 or higher: httpd -v | grep 'Apache/2\.4\.'

📡 Detection & Monitoring

Log Indicators:

  • Unusual AJP request patterns
  • Malformed HTTP requests in proxy logs
  • Requests bypassing expected URL patterns

Network Indicators:

  • AJP traffic with inconsistent HTTP headers
  • Unusual request smuggling patterns in proxy traffic

SIEM Query:

source="apache" AND ("mod_proxy_ajp" OR "ajp://") AND (malformed OR smuggling OR "invalid request")

🔗 References

📤 Share & Export