[pve-devel] [PATCH storage] plugin: volume snapshot info: untaint snapshot filename
Friedrich Weber
f.weber at proxmox.com
Fri Jul 25 17:48:57 CEST 2025
Without untainting, offline-deleting a volume-chain snapshot on a
directory storage via the GUI fails with an "Insecure dependecy in
exec [...]" error, because volume_snapshot_delete uses the filename
its qemu-img invocation.
Signed-off-by: Friedrich Weber <f.weber at proxmox.com>
---
Notes:
I'm not too familiar with the taint mode. Allowing anything that
starts with a slash seems a little lax, but I don't know if we can do
any meaningful validation here -- let me know if we can.
src/PVE/Storage/Plugin.pm | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm
index a817186..2bd05bd 100644
--- a/src/PVE/Storage/Plugin.pm
+++ b/src/PVE/Storage/Plugin.pm
@@ -1789,6 +1789,7 @@ sub volume_snapshot_info {
my $snapshots = $json_decode;
for my $snap (@$snapshots) {
my $snapfile = $snap->{filename};
+ ($snapfile) = $snapfile =~ m|^(/.*)|; # untaint
my $snapname = $get_snapname_from_path->($volname, $snapfile);
#not a proxmox snapshot
next if !$snapname;
--
2.47.2
More information about the pve-devel
mailing list