aboutsummaryrefslogtreecommitdiff
path: root/usr/local
diff options
context:
space:
mode:
authorAlex Pooley (@zuedev) <zuedev@gmail.com>2026-05-07 18:07:15 +0100
committerAlex Pooley (@zuedev) <zuedev@gmail.com>2026-05-07 18:07:15 +0100
commit990e758685da6049e4fb197df909d7e13e9c7c16 (patch)
tree23bc785af47c28704e9cfa418b7e29cc28231456 /usr/local
parent8f1f7626e53dac82721384c8bd3b3a77092a6d3f (diff)
downloadgit.zue.dev-990e758685da6049e4fb197df909d7e13e9c7c16.tar
git.zue.dev-990e758685da6049e4fb197df909d7e13e9c7c16.tar.gz
git.zue.dev-990e758685da6049e4fb197df909d7e13e9c7c16.tar.bz2
git.zue.dev-990e758685da6049e4fb197df909d7e13e9c7c16.tar.xz
git.zue.dev-990e758685da6049e4fb197df909d7e13e9c7c16.zip
Add a guard to reject any path traversal
Diffstat (limited to 'usr/local')
-rw-r--r--usr/local/bin/git-wrapper5
1 files changed, 5 insertions, 0 deletions
diff --git a/usr/local/bin/git-wrapper b/usr/local/bin/git-wrapper
index f5ca870..bf0781b 100644
--- a/usr/local/bin/git-wrapper
+++ b/usr/local/bin/git-wrapper
@@ -11,6 +11,11 @@ fi
cmd=$(echo "$SSH_ORIGINAL_COMMAND" | cut -d' ' -f1)
path=$(echo "$SSH_ORIGINAL_COMMAND" | cut -d"'" -f2)
+if [[ "$path" == *..* ]]; then
+ echo "Invalid path" >&2
+ exit 1
+fi
+
case "$cmd" in
# Allow only specific git commands and ensure that the repository path is correctly prefixed with /repositories if it's not an absolute path.
git-upload-pack|git-receive-pack|git-upload-archive)