mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-06 07:20:36 +00:00
api2: osd destroy: untaint device before pvremove
We get the device list from ceph-volume lvm list, and decode the json output, which at that point is tainted (perlsec (1)). Untaint it here before calling, because it is currently the only call-site using the information in a problematic way (run_command). (the only other call-site being in pve5to6) Alternatively we could untaint while reading the information, but then should only return a small subset of the ceph-volume output. The issue is most likely due to cb9db10c1a9855cf40ff13e81f9dd97d6a9b2698 in pve-common ('run_command: improve performance for logging and long lines'), Tested on a virtual testsetup by creating OSDs with second DB disk, and destroying it via GUI (did not manage to get the error without the DB disk) Reported via our community forum: https://forum.proxmox.com/threads/insecure-dependency-in-exec-during-osd-destroy.79574/ Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
259b557cf4
commit
c92fc8a1e8
@ -575,6 +575,8 @@ __PACKAGE__->register_method ({
|
||||
# try to remove pvs, but do not fail if it does not work
|
||||
for my $osd_part (@{$osd_list->{$osdid}}) {
|
||||
for my $dev (@{$osd_part->{devices}}) {
|
||||
($dev) = ($dev =~ m|^(/dev/[-_.a-zA-Z0-9\/]+)$|); #untaint
|
||||
|
||||
eval { run_command(['/sbin/pvremove', $dev], errfunc => sub {}) };
|
||||
warn $@ if $@;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user