FreeCAD is a free and open-source multiplatform 3D parametric modeler. Prior to 1.1.2, the FEM Displacement Constraint task dialog in src/Mod/Fem/Gui/TaskFemConstraintDisplacement.cpp passes the xDisplacementFormula, yDisplacementFormula, and zDisplacementFormula fields of a Fem::ConstraintDisplacement object through TaskDlgFemConstraintDisplacement::accept() into Gui::Command::doCommand. The escaping helper neutralizes quotation marks but not backslashes, allowing crafted formula text to terminate the generated Python string and execute arbitrary Python code with the FreeCAD process's privileges when a victim accepts the dialog. This issue is fixed in version 1.1.2.
{
"binaries": [
{
"binary_name": "freecad",
"binary_version": "0.18.4+dfsg2-1ubuntu4"
},
{
"binary_name": "freecad-common",
"binary_version": "0.18.4+dfsg2-1ubuntu4"
},
{
"binary_name": "freecad-python3",
"binary_version": "0.18.4+dfsg2-1ubuntu4"
},
{
"binary_name": "freecad-runtime",
"binary_version": "0.18.4+dfsg2-1ubuntu4"
},
{
"binary_name": "libfreecad-python3-0.18",
"binary_version": "0.18.4+dfsg2-1ubuntu4"
}
]
}
{
"binaries": [
{
"binary_name": "freecad",
"binary_version": "0.19.2+dfsg1-3ubuntu1"
},
{
"binary_name": "freecad-common",
"binary_version": "0.19.2+dfsg1-3ubuntu1"
},
{
"binary_name": "freecad-python3",
"binary_version": "0.19.2+dfsg1-3ubuntu1"
},
{
"binary_name": "libfreecad-python3-0.19",
"binary_version": "0.19.2+dfsg1-3ubuntu1"
}
]
}