freecad
Warn
Audited by Gen Agent Trust Hub on Oct 10, 2026
Risk Level: MEDIUMDYNAMIC_EXECUTIONREMOTE_CODE_EXECUTIONCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [DYNAMIC_EXECUTION]: The
scripts/freecad-bridge.pyscript implements an HTTP server that uses the Pythonexec()andcompile()functions to run arbitrary code received via network requests. This allows for dynamic assembly and execution of code within the live FreeCAD process context. - Evidence:
exec(compile(code, filename, "exec"), ns)inscripts/freecad-bridge.py. - [REMOTE_CODE_EXECUTION]: The skill establishes an unauthenticated command execution bridge listening on
127.0.0.1:8735. Although it includes basic cross-origin (CORS) protections to prevent browser-based attacks, any other local process or user on the same machine can send and execute arbitrary Python code with the privileges of the user running FreeCAD. - Evidence:
self.server.listen(QtNetwork.QHostAddress("127.0.0.1"), _PORT)and the POST handler for/runinscripts/freecad-bridge.py. - [COMMAND_EXECUTION]: The scripts executed through the bridge run in a Python environment where they can potentially invoke shell commands or interact with the operating system using modules like
osorsubprocess, extending the risk beyond the FreeCAD application itself. - Evidence: The bridge namespace includes
App,FreeCAD, andGui, but the executed code can import other modules likeosas seen inscripts/example-bracket.py. - [INDIRECT_PROMPT_INJECTION]: The skill acts as an intermediary that translates user modeling requests into Python code for execution. This creates a surface where untrusted data could be used to influence the generated script. The skill does not implement specific sanitization or boundary markers for the data it processes, though the risk is mitigated by the LLM's internal safety filters.
- Ingestion points: User prompts provided to the agent for 3D modeling tasks.
- Boundary markers: None identified in the provided files.
- Capability inventory: Full Python execution within the FreeCAD process, including file system access via the
OUTenvironment variable. - Sanitization: No explicit validation or sanitization of the generated Python scripts before they are POSTed to the bridge.
Audit Metadata