CVE-2020-28614

8.8 HIGH

📋 TL;DR

This vulnerability in CGAL library allows remote code execution through specially crafted polygon files. An attacker can exploit out-of-bounds read and type confusion vulnerabilities in Nef polygon parsing to potentially execute arbitrary code. Systems using CGAL for computational geometry operations with untrusted input 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: Only applications that use CGAL's Nef polygon parsing functionality with untrusted input are vulnerable. Many CGAL applications may not use this specific feature.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote attacker gains full system control through arbitrary code execution, potentially leading to complete system compromise, data theft, or ransomware deployment.

🟠

Likely Case

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

🟢

If Mitigated

Application crashes safely without code execution due to modern exploit mitigations like ASLR and DEP.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires crafting malicious polygon files and convincing users/processes to parse them. Type confusion vulnerabilities can be complex to exploit reliably.

🛠️ 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 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 passing to CGAL parser

Disable Nef Polygon Parsing

all

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

🧯 If You Can't Patch

  • Implement strict file type validation and reject untrusted polygon files
  • Run CGAL applications in sandboxed/containerized environments with minimal privileges

🔍 How to Verify

Check if Vulnerable:

Check CGAL version: 'pkg-config --modversion cgal' or check installed package version in package manager

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 and recompile applications with updated library

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults
  • Unexpected memory access errors in CGAL-related processes
  • Abnormal termination of geometry processing applications

Network Indicators:

  • Unusual file uploads to geometry processing services
  • Multiple failed parsing attempts of polygon files

SIEM Query:

source="application.log" AND ("segmentation fault" OR "SIGSEGV") AND process="*cgal*"

🔗 References

📤 Share & Export