FreeCAD — это бесплатный многоплатформенный инструмент параметрического 3D-моделирования с открытым исходным кодом. До версии 1.1.2 диалоговое окно задачи FEM Displacement Constraint в src/Mod/Fem/Gui/TaskFemConstraintDisplacement.cpp передает поля xDisplacementFormula, yDisplacementFormula и zDisplacementFormula объекта Fem::ConstraintDisplacement через TaskDlgFemConstraintDisplacement::accept() в Гуй::Команда::doCommand. Помощник по экранированию нейтрализует кавычки, но не обратную косую черту, позволяя созданному тексту формулы завершать сгенерированную строку Python и выполнять произвольный код Python с привилегиями процесса FreeCAD, когда жертва принимает диалог.
Эта проблема исправлена в версии 1.1.2.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v4.0