| Titre | langflow-ai langflow 1.8.4 Command Injection |
|---|
| Description | The `CodeParser.parse_callable_details()` method extracts the annotation string via `ast.unparse()` when parsing function return type annotations and directly passes it to `eval()` for execution. The execution environment (`eval_env`) for `eval()` is constructed by `construct_eval_env()`, but `__builtins__ = {}` is never set.
The Python specification stipulates: When the globals dict passed to eval() does not contain the __builtins__ key, the Python interpreter automatically adds the full builtins module. As a result, all built-in functions such as __import__, open, exec, and eval can be used in the eval environment.
We can embed malicious expressions (such as __import__('os').popen('cmd').read()) in the return type annotations of functions within custom component code. When the CodeParser processes this code, the eval() function will execute the expression directly. |
|---|
| La source | ⚠️ https://www.yuque.com/yuqueyonghuqy8yu4/ghuay4/ylrgoyyfrucp8opo?singleDoc=#g4kyb |
|---|
| Utilisateur | limshow (UID 92836) |
|---|
| Soumission | 07/04/2026 17:09 (il y a 2 mois) |
|---|
| Modérer | 02/05/2026 18:06 (25 days later) |
|---|
| Statut | Accepté |
|---|
| Entrée VulDB | 360857 [langflow-ai langflow jusqu’à 1.8.4 Full Builtins code_parser.py CodeParser.parse_callable_details élévation de privilèges] |
|---|
| Points | 20 |
|---|