Skip to content

fix: Don't apply saferEval default length cap to workflow substitution#8635

Open
ryuwd wants to merge 1 commit into
DIRACGrid:integrationfrom
ryuwd:fix/workflow-utility-saferEval-length
Open

fix: Don't apply saferEval default length cap to workflow substitution#8635
ryuwd wants to merge 1 commit into
DIRACGrid:integrationfrom
ryuwd:fix/workflow-utility-saferEval-length

Conversation

@ryuwd

@ryuwd ryuwd commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Missed a call site, there are probably other ones in the Transformation System that need to be checked. This matches the fix in WorkflowReader.

BEGINRELEASENOTES

*Workflow
FIX: Don't apply saferEval default length cap to workflow substitution

ENDRELEASENOTES

Commit bf6858d replaced eval() with saferEval() in Workflow/Utility.substitute
to avoid evaluating arbitrary code. saferEval enforces a 2048-byte cap, but
non-string workflow parameters (lists/dicts) are KB-scale and routinely exceed
it, so substituting variables into a large parameter failed with
"Object string is too long (>2048 bytes)".

Pass a generous finite cap (1 MiB) at this call site instead of the 2048
default, matching the fix in WorkflowReader. literal_eval still prevents code
execution regardless of content; the ceiling remains as defence-in-depth
against pathological/malicious input. SaferEval's default is unchanged for its
other callers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant