CVE-2023-34409

9.8 CRITICAL

📋 TL;DR

This vulnerability allows unauthenticated remote attackers to bypass authentication in Percona Monitoring and Management (PMM) servers by exploiting path traversal in URL handling. Attackers can access protected API routes, leading to privilege escalation and information disclosure. All PMM server 2.x installations before version 2.37.1 are affected.

💻 Affected Systems

Products:
  • Percona Monitoring and Management (PMM) Server
Versions: 2.x before 2.37.1
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: All PMM server deployments with default authentication configuration are vulnerable. The vulnerability affects the authentication function in auth_server.go.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise where attackers gain administrative access to PMM, potentially accessing sensitive monitoring data, modifying configurations, or using PMM as a foothold to attack monitored systems.

🟠

Likely Case

Unauthorized access to protected API endpoints leading to information disclosure of monitoring metrics, database credentials, and system configurations stored in PMM.

🟢

If Mitigated

Limited impact with proper network segmentation and access controls, though authentication bypass still presents significant risk.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires crafting POST requests to unauthenticated API routes with path traversal payloads. No authentication is required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.37.1

Vendor Advisory: https://www.percona.com/blog/pmm-authentication-bypass-vulnerability-fixed-in-2-37-1/

Restart Required: Yes

Instructions:

1. Backup PMM configuration and data. 2. Stop PMM server service. 3. Update PMM to version 2.37.1 using your package manager or installation method. 4. Restart PMM server service. 5. Verify the update was successful.

🔧 Temporary Workarounds

Network Access Restriction

linux

Restrict network access to PMM server to only trusted IP addresses and networks

Use firewall rules to restrict access: iptables -A INPUT -p tcp --dport 443 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate PMM server from untrusted networks
  • Deploy a web application firewall (WAF) with path traversal protection rules

🔍 How to Verify

Check if Vulnerable:

Check PMM server version: pmm-admin status | grep 'PMM Server' or check the web interface version

Check Version:

pmm-admin status | grep 'PMM Server'

Verify Fix Applied:

Confirm version is 2.37.1 or later: pmm-admin status | grep 'PMM Server' should show version 2.37.1+

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to unauthenticated API endpoints
  • Failed authentication attempts followed by successful access to protected routes
  • Path traversal patterns in URL paths

Network Indicators:

  • POST requests containing '../' or similar path traversal sequences
  • Unauthenticated requests accessing typically protected API endpoints

SIEM Query:

source="pmm-server" AND (http_method="POST" AND (url="*../*" OR url="*/..*"))

🔗 References

📤 Share & Export