1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-09 03:36:48 +00:00
webvirtcloud/instances
catborise 5758073e82 fix(instances): require change permission to clone and stop trusting clone POST data
clone only required "view" access, so a user with clone_instances and the
global view_instances permission could clone anyone's VM and read its
disks. It also copied every POST field into clone_data, which let the
client override the server-set disk_owner_uid/gid, and disk-<dev> values
went unvalidated into volume XML and os.path.join.

- Require change permission on the source VM, except for templates,
  which any user who can view them may clone.
- Build clone_data from an allowlist: name, title and description for
  everyone; disk names and MAC addresses only from superusers.
- For non-superusers, derive disk names (get_clone_disk_name) and MAC
  addresses (DHCP or random) on the server; their form only sent the
  source VM's own values, which could never work.
- Validate every MAC address (not only the first) and every disk name;
  a missing MAC is an error message instead of a KeyError.
2026-10-02 19:07:53 +03:00
..
api fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
fixtures Instances overhaul 2020-07-13 15:33:09 +06:00
migrations fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
templates fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
templatetags lint with black python. convert f style strings to old one. some small fixes 2020-11-05 12:34:31 +03:00
__init__.py Fixe migrations for new deployments 2020-05-28 18:19:25 +06:00
apps.py format python code with black 2022-11-02 08:54:35 +03:00
forms.py Corrected untranslated items 2023-12-13 14:00:02 +08:00
models.py fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
test_clone_permission.py fix(instances): require change permission to clone and stop trusting clone POST data 2026-10-02 19:07:53 +03:00
test_create_instance.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_index.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_root_pass.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
test_security_mutations.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
tests.py fix(instances): guard mutations and refresh lists after sync 2026-09-28 14:56:19 +03:00
urls.py external snapshot implementation 2023-04-13 12:25:42 +03:00
utils.py fix(reconciliation): serialize compute sync and enforce UUID identity 2026-09-28 14:55:49 +03:00
views.py fix(instances): require change permission to clone and stop trusting clone POST data 2026-10-02 19:07:53 +03:00