Repository: assisted-migration-agent Priority: High Location: internal/services/vddk.go:173 Description: The PUT /inspector/vddk endpoint accepts gzip'd tarballs and extracts them with a custom extractTarGz() function. The extractor's path traversal protection uses lexical checks (filepath.Clean + HasPrefix) that don't resolve symlinks already on disk. An attacker can craft a tarball that first plants a/x → .. (passes lexical validation), then writes a/x/y/... which actually lands at dest/../y/... because os.Create follows the live symlink. This can be chained to write to root /. Security Impact: Unauthenticated LAN-adjacent clients can write arbitrary files as UID 1001 Writable targets include /var/lib/agent/ config and /app/.cache Direct path to persistent code execution on appliance with vCenter admin credentials Fix Suggestion: Before creating each entry, resolve the entry's parent directory with filepath.EvalSymlinks and re-verify the resolved path is still inside destDir. Do not drop symlink support entirely as legitimate VDDK tarballs contain .so version symlinks. See patches/f001.patch for implementation.