Description
WebVirtCloud through commit bb920b0 contains a missing authorization vulnerability that allows low-privileged authenticated users to reach MigrateViewSet and CreateInstanceViewSet because no permission_classes are declared, so Django REST Framework defaults to AllowAny. Attackers can send requests to /api/v1/migrate/ or the compute instance create endpoint to migrate or undefine other users' virtual machines and create volumes and domains on any compute host.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| retspen | webvirtcloud | — | — |
References
- https://github.com/retspen/webvirtcloud/issues/689 issue-tracking
- https://github.com/catborise/webvirtcloud/commit/1227674d8f5a5230e5c654267773aca4ebc5c717 patch
- https://github.com/retspen/webvirtcloud/blob/bb920b0a7ffdf00c09e994dc2e45f05bc9ec1bb3/instances/api/viewsets.py#L125-L162 technical-description
- https://github.com/retspen/webvirtcloud/blob/bb920b0a7ffdf00c09e994dc2e45f05bc9ec1bb3/instances/api/viewsets.py#L174-L183 technical-description
- https://hackmd.io/@hieuPenguinnn/webvirtcloud-api-missing-authz-migrate-create technical-description
- https://github.com/retspen/webvirtcloud product
- VulnCheck Advisory: WebVirtCloud through commit bb920b0 Missing Authorization in REST API Migrate and Create Endpoints third-party-advisory