FreeCAD vulnerabilities
6 known CVE vulnerabilities in FreeCAD, translated and rated.
- CVE-2026-34789High
FreeCAD prior to version 1.1.2 has a vulnerability in PropertyPythonObject::Restore() where the attacker-controlled module attribute from serialized PropertyPythonObject XML is passed directly to PyImport_ImportModule() while restoring a crafted FCStd document, executing module-level Python code. The legacy pickle branch also imports an attacker-controlled module and invokes its class constructor.
- CVE-2026-34399High
FreeCAD from version 0.19 until 1.1.1 has a vulnerability in the BIM Workbench where an eval() call is made on untrusted data from SVG template files. When a user creates a TechDraw page from a malicious SVG template, arbitrary Python code executes.
- CVE-2026-34398High
FreeCAD from version 0.19 until 1.1.1 has a vulnerability in the BIM Project Manager Load Template flow where attacker-controlled FCStd Meta property values for wpposition, wpu, wpv, and wpaxis are passed directly to eval(), allowing arbitrary Python code execution when a user loads a malicious BIM project template.
- CVE-2026-73235Medium
FreeCAD prior to 1.1.2 uses the Xerces SAX2 XMLReader in Base::XMLReader, which does not disable default external entity resolution or external DTD loading. When opening a crafted .FCStd archive, external entities can read local files or initiate server-side requests, and resolved content can flow through the characters() callback.
- CVE-2026-73234High
FreeCAD prior to version 1.1.2 has a vulnerability in PropertyFileIncluded::Restore() that concatenates an attacker-controlled file or data attribute from Document.xml with the document transient path without rejecting directory components, absolute paths, or parent traversal. A crafted .FCStd archive can write attacker-controlled content to arbitrary locations accessible to the FreeCAD user.
- CVE-2026-73233High
FreeCAD prior to version 1.1.2 has a vulnerability in the FEM Displacement Constraint task dialog that passes xDisplacementFormula, yDisplacementFormula, and zDisplacementFormula fields through TaskDlgFemConstraintDisplacement::accept() into Gui::Command::doCommand. The escaping helper neutralizes quotation marks but not backslashes, allowing crafted formula text to execute arbitrary Python code with the FreeCAD process's privileges.

