CVE-2024-23950
High · 8.8CVSS
8.8
EPSS
0.9%
Published
May 28, 2024
CISA due date
—
Cloudanix analysis
A flaw in a 3D mesh processing library lets attackers corrupt memory and potentially take over a computer simply by tricking someone into opening a specially made file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- 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_element_field when processing binary .msh files allows an attacker-supplied index to trigger an out-of-bounds write in memory.
Why it matters to the business
Processing untrusted mesh files can crash applications or allow arbitrary code execution, leading to data loss, service disruption, or full system compromise in any software using the vulnerable library version.
How an attack unfolds
An attacker crafts a malicious binary .msh file with invalid element field indices, then delivers it to a victim who opens the file using an application linked against the vulnerable libigl library, triggering the out-of-bounds write during parse_element_field.
How to fix it
Update libigl to a version containing the corrected readMSH and parse_element_field logic; recompile and redeploy all dependent applications; validate mesh file handling paths do not accept untrusted input without sandboxing.
How to confirm the fix worked
Confirm the updated library version is present in all builds; test parsing of known-good and boundary-case .msh files for crashes or memory errors; review build manifests and dependency locks for the patched release.
Typical attack path
- Craft specially malformed binary .msh file exploiting array index validation flaw
- Deliver file via email, download link, or shared storage
- Victim opens file in application using libigl 2.5.0
- parse_element_field performs out-of-bounds write
- Attacker gains memory corruption primitive for code execution or denial of service
How to detect it
Monitor application logs and crash reports for segmentation faults or memory errors during .msh file parsing; inspect process memory dumps or sanitizer output for out-of-bounds writes triggered by MshLoader; correlate file-open events with subsequent abnormal termination.
What your security team should do
- Prioritize patching libigl in all products that parse .msh files within the next sprint
- Add file-type sandboxing or content-disposition restrictions for mesh file handling
- Scan source and binary repositories for any pinned vulnerable libigl versions
- Update dependency scanning rules to flag future libigl releases below the fixed version
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_element_field` function while handling an `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-23948 Multiple improper array index validation vulnerabilities exist in the readMSH… Also affects slic3r-prusa