CVE-2024-23947
High · 8.8CVSS
8.8
EPSS
0.9%
Published
May 28, 2024
CISA due date
—
Cloudanix analysis
A bug in a 3D graphics library lets attackers crash or take control of programs simply by tricking someone into opening a specially made file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Improper array index validation in igl::MshLoader::parse_nodes allows an out-of-bounds write when processing a specially crafted binary .msh file, enabling memory corruption.
Why it matters to the business
Applications that rely on libigl for mesh processing can be crashed or compromised when users open untrusted .msh files, disrupting 3D modeling workflows and potentially leading to data loss or unauthorized code execution.
How an attack unfolds
An attacker creates a binary .msh file with malformed node data that bypasses array bounds checks inside parse_nodes. The file is delivered to a victim who opens it inside any application linked against the vulnerable libigl library, triggering the out-of-bounds write and allowing the attacker to corrupt memory for code execution or denial of service.
How to fix it
Upgrade libigl to a version that contains the corrected parse_nodes logic. Until a patch is available, disable processing of untrusted binary .msh files or sandbox the application.
How to confirm the fix worked
Confirm the installed libigl version is newer than 2.5.0, then attempt to load a known-good binary .msh file and a test case that previously triggered the bounds violation to verify the crash no longer occurs.
Typical attack path
- Craft a binary .msh file containing invalid node indices
- Deliver the file via email, download link, or shared storage
- Victim opens the file in an application that uses libigl v2.5.0 readMSH functionality
- parse_nodes processes the file and performs the out-of-bounds write
- Attacker-controlled data overwrites adjacent memory to achieve code execution or crash
How to detect it
Monitor application crash logs for segmentation faults or access violations during .msh parsing, and inspect file-handling code paths that call MshLoader on externally supplied files.
What your security team should do
- Inventory all builds and dependencies that statically or dynamically link libigl
- Block or quarantine .msh files from untrusted sources until patched
- Apply the upstream fix as soon as a corrected release is published
- Add file-type sandboxing for any 3D mesh import pipelines
The record
Multiple improper array index validation vulnerabilities exist in the readMSH functionality of libigl v2.5.0. A specially crafted .msh file can lead to an out-of-bounds write. An attacker can provide a malicious file to trigger this vulnerability.This vulnerability concerns the `igl::MshLoader::parse_nodes` function while handling a `binary` `.msh` file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:18.04:LTS | slic3r-prusa | 0 | No fix |
| Ubuntu:20.04:LTS | slic3r-prusa | 0 | No fix |
| Ubuntu:22.04:LTS | slic3r-prusa | 0 | No fix |
| Ubuntu:24.04:LTS | slic3r-prusa | 0 | No fix |
| Ubuntu:24.10 | slic3r-prusa | 0 | No fix |
| Ubuntu:25.04 | slic3r-prusa | 0 | No fix |
| Ubuntu:25.10 | slic3r-prusa | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | slic3r-prusa | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | slic3r-prusa | 0 | No fix |
Related vulnerabilities
- CVE-2024-24685 Multiple stack-based buffer overflow vulnerabilities exist in the readOFF functionality… Also affects slic3r-prusa
- CVE-2024-24686 Multiple stack-based buffer overflow vulnerabilities exist in the readOFF functionality… Also affects slic3r-prusa
- CVE-2024-24684 Multiple stack-based buffer overflow vulnerabilities exist in the readOFF functionality… Also affects slic3r-prusa
- CVE-2024-24583 Multiple out-of-bounds read vulnerabilities exist in the readMSH functionality of libigl… Also affects slic3r-prusa
- CVE-2024-23951 Multiple improper array index validation vulnerabilities exist in the readMSH… Also affects slic3r-prusa
- CVE-2024-24584 Multiple out-of-bounds read vulnerabilities exist in the readMSH functionality of libigl… Also affects slic3r-prusa
- CVE-2024-23949 Multiple improper array index validation vulnerabilities exist in the readMSH… Also affects slic3r-prusa
- CVE-2024-23950 Multiple improper array index validation vulnerabilities exist in the readMSH… Also affects slic3r-prusa