diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java index d98767370d3..ae0e96b251b 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java @@ -1027,6 +1027,9 @@ private Path getTargetPath(@NotNull String projectId, @NotNull String resourcePa } try { while (resourcePath.startsWith("/")) resourcePath = resourcePath.substring(1); + for (Path part : projectPath.resolve(resourcePath)) { + GeneralUtils.validateResourceNameUnconditionally(part.toString()); + } Path targetPath = projectPath.resolve(resourcePath).normalize(); if (!targetPath.startsWith(projectPath)) { throw new DBException("Invalid resource path");