CVE-2020-26154
📋 TL;DR
CVE-2020-26154 is a critical buffer overflow vulnerability in libproxy's url.cpp component when PAC (Proxy Auto-Configuration) is enabled. Attackers can exploit this by delivering a large PAC file without a Content-length header, potentially leading to remote code execution. Systems using libproxy versions through 0.4.15 with PAC enabled are affected.
💻 Affected Systems
- libproxy
📦 What is this software?
Fedora by Fedoraproject
Fedora by Fedoraproject
Leap by Opensuse
Leap by Opensuse
Libproxy by Libproxy Project
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution with root/system privileges, allowing complete system compromise and lateral movement.
Likely Case
Denial of service through application crashes, with potential for remote code execution in vulnerable configurations.
If Mitigated
Limited impact if PAC is disabled or proper input validation is implemented.
🎯 Exploit Status
Proof of concept exists in GitHub pull request #126. Exploitation requires delivering malicious PAC file to vulnerable system.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: libproxy 0.4.16 and later
Vendor Advisory: http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00030.html
Restart Required: Yes
Instructions:
1. Update libproxy to version 0.4.16 or later using your distribution's package manager. 2. For Debian/Ubuntu: sudo apt update && sudo apt upgrade libproxy. 3. For openSUSE: sudo zypper update libproxy. 4. Restart affected services using libproxy.
🔧 Temporary Workarounds
Disable PAC functionality
allDisable Proxy Auto-Configuration to prevent exploitation
Configure system/proxy settings to not use PAC files
Remove or disable PAC URL configurations
Network filtering
allBlock delivery of large PAC files without Content-length headers
Configure WAF or proxy to reject PAC files > 1MB without Content-length
Implement network monitoring for suspicious PAC file delivery
🧯 If You Can't Patch
- Disable PAC functionality completely in system and application proxy settings
- Implement strict network controls to prevent delivery of PAC files from untrusted sources
🔍 How to Verify
Check if Vulnerable:
Check libproxy version: dpkg -l | grep libproxy or rpm -qa | grep libproxy. If version is 0.4.15 or earlier, system is vulnerable.
Check Version:
dpkg -l | grep libproxy # Debian/Ubuntu
rpm -qa | grep libproxy # RHEL/CentOS/Fedora
pacman -Q libproxy # Arch
Verify Fix Applied:
Verify libproxy version is 0.4.16 or later: dpkg -l | grep libproxy or rpm -qa | grep libproxy. Check that version shows 0.4.16+.
📡 Detection & Monitoring
Log Indicators:
- Application crashes in libproxy-related processes
- Large PAC file downloads in proxy logs
- Memory access violation errors
Network Indicators:
- Large PAC file downloads without Content-length headers
- Unusual proxy configuration requests
SIEM Query:
source="proxy.log" AND ("PAC" OR "libproxy") AND (size>1048576 OR "Content-length: none")
🔗 References
- http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00030.html
- http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00033.html
- https://bugs.debian.org/968366
- https://github.com/libproxy/libproxy/pull/126
- https://lists.debian.org/debian-lts-announce/2020/11/msg00024.html
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/3BID3HVHAF6DA3YJOFDBSAZSMR3ODNIW/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/WZVZXTFMFTSML3J6OOCDBDYH474BRJSW/
- https://www.debian.org/security/2020/dsa-4800
- http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00030.html
- http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00033.html
- https://bugs.debian.org/968366
- https://github.com/libproxy/libproxy/pull/126
- https://lists.debian.org/debian-lts-announce/2020/11/msg00024.html
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/3BID3HVHAF6DA3YJOFDBSAZSMR3ODNIW/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/WZVZXTFMFTSML3J6OOCDBDYH474BRJSW/
- https://www.debian.org/security/2020/dsa-4800