CVE-2020-35628

9.8 CRITICAL

📋 TL;DR

This is a critical out-of-bounds read vulnerability in CGAL's Nef polygon-parsing functionality that can lead to arbitrary code execution. Attackers can exploit it by providing malicious input to trigger memory corruption. Systems using vulnerable versions of CGAL library are affected.

💻 Affected Systems

Products:
  • CGAL (Computational Geometry Algorithms Library)
Versions: CGAL-5.1.1 and earlier
Operating Systems: Linux, Unix-like systems
Default Config Vulnerable: ⚠️ Yes
Notes: Applications using CGAL's Nef polygon-parsing functionality are vulnerable. Common in computational geometry applications.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, or ransomware deployment.

🟠

Likely Case

Application crash (denial of service) or limited information disclosure through memory reads.

🟢

If Mitigated

Application crash without code execution if memory protections are enabled.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires crafting malicious polygon data to trigger the oob read. No public exploit code available.

🛠️ 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.

🔧 Temporary Workarounds

Input Validation

all

Implement strict input validation for polygon data before passing to CGAL functions.

Memory Protection

linux

Enable ASLR and other memory protection mechanisms to reduce exploit success.

sysctl -w kernel.randomize_va_space=2

🧯 If You Can't Patch

  • Network segmentation to isolate vulnerable systems
  • Implement strict input validation and sanitization

🔍 How to Verify

Check if Vulnerable:

Check CGAL version: dpkg -l libcgal-dev or rpm -q cgal

Check Version:

dpkg -l libcgal-dev 2>/dev/null | grep ^ii || rpm -q cgal 2>/dev/null || cgal-config --version 2>/dev/null

Verify Fix Applied:

Verify CGAL version is 5.1.2 or later

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults
  • Memory access violation errors

Network Indicators:

  • Unusual network connections from CGAL applications

SIEM Query:

source="application_logs" AND ("segmentation fault" OR "memory violation") AND process="*cgal*"

🔗 References

📤 Share & Export