CVE-2020-28620

8.8 HIGH

📋 TL;DR

This vulnerability allows remote code execution through specially crafted files in CGAL library's Nef polygon-parsing functionality. Attackers can exploit out-of-bounds read and type confusion vulnerabilities to execute arbitrary code. Systems using CGAL for computational geometry operations are affected.

💻 Affected Systems

Products:
  • CGAL (Computational Geometry Algorithms Library)
Versions: CGAL-5.1.1 and earlier versions
Operating Systems: Linux, Unix-like systems, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using CGAL library for parsing Nef polygon files is vulnerable when processing untrusted input.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining complete control over the affected system, potentially leading to data theft, ransomware deployment, or lateral movement within the network.

🟠

Likely Case

Application crash leading to denial of service, with potential for limited code execution depending on exploit sophistication and system protections.

🟢

If Mitigated

Application crash without code execution if modern exploit mitigations (ASLR, DEP) are effective, though denial of service still occurs.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires specially crafted malformed files and knowledge of the vulnerable parsing functionality.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: CGAL-5.1.2 and later

Vendor Advisory: https://www.cgal.org/

Restart Required: Yes

Instructions:

1. Update CGAL library to version 5.1.2 or later
2. Recompile any applications using CGAL
3. Restart affected services or applications

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict validation of polygon files before processing with CGAL library

Sandbox CGAL processing

linux

Run CGAL operations in isolated containers or sandboxes with limited privileges

docker run --read-only --cap-drop=ALL -v /safe-input:/input:ro your-app

🧯 If You Can't Patch

  • Implement strict file upload restrictions and validation for polygon files
  • Isolate CGAL processing to dedicated systems with network segmentation

🔍 How to Verify

Check if Vulnerable:

Check CGAL version with: pkg-config --modversion cgal or check library files for version 5.1.1 or earlier

Check Version:

pkg-config --modversion cgal || grep 'CGAL_VERSION' /usr/include/CGAL/version.h 2>/dev/null || echo 'Check application documentation for CGAL version'

Verify Fix Applied:

Verify CGAL version is 5.1.2 or later using same version check command

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing polygon files
  • Memory access violation errors in application logs
  • Unexpected process termination of CGAL-dependent applications

Network Indicators:

  • Unusual file uploads to applications using CGAL
  • Network traffic spikes followed by application crashes

SIEM Query:

source="application.logs" AND ("segmentation fault" OR "access violation" OR "out of bounds") AND process="*cgal*"

🔗 References

📤 Share & Export