Skip to content

[release/v1.8.x] Improve path handling in source reconcilers#2055

Merged
matheuscscp merged 2 commits into
release/v1.8.xfrom
backport-2054-to-release/v1.8.x
May 19, 2026
Merged

[release/v1.8.x] Improve path handling in source reconcilers#2055
matheuscscp merged 2 commits into
release/v1.8.xfrom
backport-2054-to-release/v1.8.x

Conversation

@fluxcdbot
Copy link
Copy Markdown
Member

Automated backport to release/v1.8.x, triggered by a label in #2054.

hiddeco added 2 commits May 19, 2026 11:47
Bucket object keys are external input and may contain arbitrary
characters. Joining them with the reconciler's working directory
through `filepath.Join` applies `filepath.Clean`, which collapses
parent-directory segments and can yield a destination outside the
working directory. `securejoin.SecureJoin` resolves the key while
keeping the result within the working directory, matching the
pattern already used elsewhere in the controllers for similar
joins (e.g. GitRepository include paths).

Assisted-by: claude-code/opus-4.7
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
(cherry picked from commit 6d2d86d)
When validating that the paths listed in `spec.sparseCheckout`
exist in the cloned working tree, resolve each entry with
`securejoin.SecureJoin` instead of `filepath.Join`. `filepath.Join`
collapses parent-directory segments via `filepath.Clean`, so a
configured path like `../foo` would have been checked against a
location outside the working tree, masking a missing entry behind
an unrelated filesystem stat. SecureJoin keeps the resolved path
inside the working tree, matching the pattern already used for
include paths elsewhere in the controller.

Assisted-by: claude-code/opus-4.7
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
(cherry picked from commit f5fe034)
@matheuscscp matheuscscp merged commit 10643c9 into release/v1.8.x May 19, 2026
3 checks passed
@matheuscscp matheuscscp deleted the backport-2054-to-release/v1.8.x branch May 19, 2026 12:04
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.

3 participants