CVE-2024-47175

8.6 HIGH

📋 TL;DR

CVE-2024-47175 is a vulnerability in CUPS libppd where the ppdCreatePPDFromIPP2 function fails to sanitize IPP attributes when creating PPD buffers. This allows user-controlled input that can lead to code execution via Foomatic when combined with other functions like cfGetPrinterAttributes5. Systems using CUPS with libppd for legacy PPD file support are affected.

💻 Affected Systems

Products:
  • CUPS
  • cups-browsed
  • cups-filters
  • libcupsfilters
  • libppd
Versions: Versions prior to fixes in respective advisories
Operating Systems: Linux, Unix-like systems
Default Config Vulnerable: ⚠️ Yes
Notes: Requires libppd usage with legacy PPD file support and Foomatic integration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to full system compromise, potentially as part of an exploit chain with CVE-2024-47176.

🟠

Likely Case

Local privilege escalation or limited code execution in printing-related contexts.

🟢

If Mitigated

Denial of service or information disclosure if exploitation is partially blocked.

🌐 Internet-Facing: MEDIUM - Requires specific printing configurations and potentially other vulnerabilities for full RCE.
🏢 Internal Only: MEDIUM - Internal attackers could exploit printing services for privilege escalation.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires chaining with other functions and potentially CVE-2024-47176 for full RCE.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check respective GitHub security advisories for specific fixed versions

Vendor Advisory: https://github.com/OpenPrinting/libppd/security/advisories/GHSA-7xfx-47qg-grp6

Restart Required: Yes

Instructions:

1. Update CUPS and related packages through your distribution's package manager. 2. Restart CUPS service and any dependent printing services. 3. Verify the update applied successfully.

🔧 Temporary Workarounds

Disable legacy PPD support

linux

Disable libppd usage and legacy PPD file support if not required

# Configure CUPS to use IPP Everywhere instead of PPD
# Remove or disable cups-filters PPD-related components

🧯 If You Can't Patch

  • Restrict network access to CUPS services to trusted networks only
  • Implement strict input validation and sanitization for printing-related services

🔍 How to Verify

Check if Vulnerable:

Check installed versions of cups, cups-filters, libcupsfilters, and libppd against security advisories

Check Version:

dpkg -l | grep -E '(cups|cups-filters|libcupsfilters|libppd)' || rpm -qa | grep -E '(cups|cups-filters|libcupsfilters|libppd)'

Verify Fix Applied:

Verify package versions match or exceed fixed versions listed in security advisories

📡 Detection & Monitoring

Log Indicators:

  • Unusual PPD file creation or parsing errors
  • IPP attribute manipulation attempts in CUPS logs

Network Indicators:

  • Suspicious IPP protocol traffic to CUPS ports (typically 631)

SIEM Query:

source="cups" AND ("ppdCreatePPDFromIPP2" OR "IPP attribute" OR "PPD buffer")

🔗 References

📤 Share & Export