CVE-2020-28610

8.8 HIGH

📋 TL;DR

This vulnerability in CGAL library allows remote code execution through specially crafted files that trigger out-of-bounds read and type confusion in polygon parsing functionality. Attackers can exploit this by providing malicious input to applications using CGAL's Nef polygon parsing. 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 with Nef polygon functionality
Operating Systems: Linux, Unix-like systems, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Applications must use CGAL's Nef polygon parsing functionality to be vulnerable. Common in computational geometry, CAD, and 3D modeling applications.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full remote code execution with attacker gaining control of the affected system, potentially leading to complete system compromise, data theft, or lateral movement.

🟠

Likely Case

Application crash leading to denial of service, with potential for code execution in specific configurations where malicious files are processed.

🟢

If Mitigated

Application crash without code execution if exploit attempts are blocked or memory protections are in place.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires crafting specific malformed polygon files. Talos Intelligence has published detailed vulnerability report TALOS-2020-1225.

🛠️ 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 applications using CGAL. 3. Restart affected services. 4. For Linux distributions, use package manager: 'sudo apt update && sudo apt upgrade libcgal-dev' (Debian/Ubuntu) or 'sudo yum update cgal' (RHEL/CentOS).

🔧 Temporary Workarounds

Input Validation

all

Implement strict input validation for polygon files before processing with CGAL

Disable Nef Polygon Parsing

all

If not required, disable or remove Nef polygon parsing functionality from applications

🧯 If You Can't Patch

  • Implement network segmentation to isolate systems using CGAL
  • Use application allowlisting to prevent execution of untrusted polygon files

🔍 How to Verify

Check if Vulnerable:

Check CGAL version: 'pkg-config --modversion cgal' or check installed package version. Versions 5.1.1 and earlier are vulnerable.

Check Version:

pkg-config --modversion cgal || dpkg -l | grep libcgal || rpm -qa | grep cgal

Verify Fix Applied:

Verify CGAL version is 5.1.2 or later using version check command. Test with known safe polygon files.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing polygon files
  • Memory access violation errors in application logs
  • Unexpected process termination

Network Indicators:

  • Unusual file uploads to applications using CGAL
  • Network traffic containing malformed geometry data

SIEM Query:

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

🔗 References

📤 Share & Export