Skip to content

pilotctl: confine appstore uninstall appID under store root (path traversal)#413

Merged
TeoSlayer merged 1 commit into
mainfrom
fix/appstore-uninstall-traversal
Jul 22, 2026
Merged

pilotctl: confine appstore uninstall appID under store root (path traversal)#413
TeoSlayer merged 1 commit into
mainfrom
fix/appstore-uninstall-traversal

Conversation

@TeoSlayer

Copy link
Copy Markdown
Collaborator

appstore uninstall --yes ../../x would RemoveAll outside the install tree — install/verify already guard via resolveUnder, uninstall didn't. Local-operator-only, cheap fix + test. Found by security sweep. 🤖 Generated with Claude Code

… traversal)

cmdAppStoreUninstall did filepath.Join(root, appID) + RemoveAll without
validating appID — 'appstore uninstall --yes ../../something' would
RemoveAll outside the install tree. install/verify already guard this
via resolveUnder; uninstall now does too. Local-operator-only (no remote
trust boundary), but a cheap correctness fix. resolveUnder's existing
traversal test (zz_appstore_helpers_test.go) covers the guard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TeoSlayer
TeoSlayer force-pushed the fix/appstore-uninstall-traversal branch from 326fb54 to c3e46b0 Compare July 22, 2026 09:19
@TeoSlayer
TeoSlayer merged commit b2712cd into main Jul 22, 2026
15 checks passed
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.

2 participants