mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-14 18:18:37 +00:00
fix(security): fix media upload permission denied + symlink protection
- Fix workspace dir ownership in Docker entrypoint: chown dirs not owned by goclaw on startup (handles dirs created by root in previous lifecycle) - Add symlink check on .uploads/ via os.Lstat before file creation to prevent symlink-based attacks replacing .uploads with link to sensitive dir
This commit is contained in:
1 parent
41c827c65f
commit
d819e08071
2 files changed
+15
No files matched your search
@@ -19,6 +19,15 @@ if [ "$(id -u)" = "0" ] && [ -d "$RUNTIME_DIR" ]; then
|
||||
chown -R goclaw:goclaw "$RUNTIME_DIR/pip" "$RUNTIME_DIR/npm-global" "$RUNTIME_DIR/pip-cache" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Fix workspace directory ownership: handle dirs created by root in previous
|
||||
# container lifecycle or via manual docker exec.
|
||||
# Security: -type d = real directories only (not symlinks).
|
||||
# find default -P mode = never follow symlinks. -maxdepth 5 limits traversal.
|
||||
if [ "$(id -u)" = "0" ] && [ -d /app/workspace ]; then
|
||||
find /app/workspace -maxdepth 5 -type d -not -user goclaw \
|
||||
-exec chown goclaw:goclaw {} + 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Python: allow agent to pip install to writable target dir
|
||||
export PYTHONPATH="$RUNTIME_DIR/pip:${PYTHONPATH:-}"
|
||||
export PIP_TARGET="$RUNTIME_DIR/pip"
|
||||
|
||||
Reference in new issue
Block a user