From 562db3b0d9c85b7cb5ffee7a5192fcfe3540f406 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Thu, 11 Dec 2025 09:13:06 +0900 Subject: [PATCH] [backport cloud/1.34] fix: allow dots in template URL parameter for version numbers (#7328) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7325 to `cloud/1.34` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7328-backport-cloud-1-34-fix-allow-dots-in-template-URL-parameter-for-version-numbers-2c56d73d36508192b2b6f90a0562029d) by [Unito](https://www.unito.io) Co-authored-by: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com> --- .../workflow/templates/composables/useTemplateUrlLoader.ts | 4 +++- .../templates/composables/useTemplateUrlLoader.test.ts | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/platform/workflow/templates/composables/useTemplateUrlLoader.ts b/src/platform/workflow/templates/composables/useTemplateUrlLoader.ts index 0305acaf7..0d3d3a4ac 100644 --- a/src/platform/workflow/templates/composables/useTemplateUrlLoader.ts +++ b/src/platform/workflow/templates/composables/useTemplateUrlLoader.ts @@ -33,9 +33,11 @@ export function useTemplateUrlLoader() { /** * Validates parameter format to prevent path traversal and injection attacks + * Allows: letters, numbers, underscores, hyphens, and dots (for version numbers) + * Blocks: path separators (/, \), special chars that could enable injection */ const isValidParameter = (param: string): boolean => { - return /^[a-zA-Z0-9_-]+$/.test(param) + return /^[a-zA-Z0-9_.-]+$/.test(param) } /** diff --git a/tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts b/tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts index 650fa817c..7cd9453f6 100644 --- a/tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts +++ b/tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts @@ -187,7 +187,8 @@ describe('useTemplateUrlLoader', () => { 'flux_simple', 'flux-kontext-dev', 'template123', - 'My_Template-2' + 'My_Template-2', + 'templates-1_click_multiple_scene_angles-v1.0' // template with version number containing dot ] for (const template of validTemplates) {