Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2021-45847: NULL pointer dereference in 3MF XML parser (vertex tag without x/y/z attribute) · Issue #5118 · slic3r/Slic3r

Several missing input validations in the 3MF parser component of Slic3r libslic3r 1.3.0 can each allow an attacker to cause an application crash using a crafted 3MF input file.

CVE
#dos

Summary

A crafted 3MF XML document can cause a crash due to a NULL pointer dereference during parsing.

Vulnerable versions

  • Slic3r (commit b1a5500)

Step to reproduce

  1. Create the proof-of-concept OBJ file (3dmodel.3dmodel):

<model> <resources> <object id="1"> <mesh> <vertices> <vertex /> </vertices> </mesh> </object> </resources> </model>

  1. Pack the file into a zip archive together with the prerequisite other files from a 3mf file:

    3D/3dmodel.3dmodel rels/.rels [Content_Types].xml

  1. Rename the zip archive to nullptr_3mf_vertex.3mf
  2. Execute slic3r --info nullptr_3mf_vertex.3mf
  3. Observe segmentation fault.

Example file

nullptr_3mf_vertex.zip

Cause

get_attribute() in TMF.cpp returns NULL if the sought attribute is missing. The NULL check at TMF.cpp:580 is ineffective, since self->stop() does not terminate the current function.

Execution continues to line 582, where atof receives a NULL pointer input, and a crash results.

Impact

Denial of Service.

Proposed mitigation

Throw an exception in TMFParserContext::stop() to ensure that file parsing stops immediately.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907