security: validate version_files paths against traversal (Sprint 5 security audit finding) #181
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#181
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Audit finding
Sprint 5 security audit (#156) flagged a low-medium severity path traversal vector in
scripts/manifest-check.sh:112-139:The
version_files:config field accepts arbitrary paths without../rejection. A malicious config likeversion_files: [../../../../etc/passwd]would be read + text-parsed bymanifest-check.sh, potentially leaking file contents.Severity assessment
LOW-MEDIUM:
../-bearing path before mergeThe realistic exploit surface: a malicious PR that adds
version_files: [../../some/secret]torelease-toolkit.yml, which gets merged and the next cut leaks the file contents to the rolling PR body or release notes.Mitigations
../inconfig.sh'sversion_filesparser/etc/passwd)git rev-parse --show-toplevel)Plus bats coverage for the new rejection paths.
Composition
What this PR will NOT do
version_filessemantics for legitimate pathssubdir/VERSION(those are valid within the consumer repo)manifest-check.sh(path validation is sufficient)Refs
scripts/manifest-check.shlines 112-139 (the audit finding's location)scripts/lib/config.sh(the validation site)quartermaster referenced this issue2026-06-27 14:27:35 +02:00