A path traversal vulnerability exists in K3s's etcd snapshot decompression functionality. Zip files containing archive members with maliciously crafted names (e.g., ../../../../etc/password) can be written to arbitrary locations on the filesystem when an administrator restores the archive as a compressed etcd snapshot.
Mitigations
Enable golang's built-in insecure path protections when restoring snapshots by setting theGODEBUG environment variable:
GODEBUG=zipinsecurepath=0 k3s server --cluster-reset --cluster-reset-restore-path=/path/to/snapshot.zip
Manually extract the snapshot from the zip archive before restoring it. If the snapshot to be restored does not end with .zip, the vulnerable extraction code will not be executed.
Additional Notes
Administrators should be aware of the cautions noted in the "Security" section of the documentation on Restoring Snapshots.