An issue was discovered in Xen 4.5.x through 4.9.x. The function __gnttab_cache_flush
handles GNTTABOP_cache_flush grant table operations. It checks to see if the calling domain is the owner of the page that is to be operated on. If it is not, the owners grant table is checked to see if a grant mapping to the calling domain exists for the page in question. However, the function does not check to see if the owning domain actually has a grant table or not. Some special domains, such as DOMID_XEN
, DOMID_IO
and DOMID_COW
are created without grant tables. Hence, if __gnttab_cache_flush operates on a page owned by these special domains, it will attempt to dereference a NULL pointer in the domain struct.
A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Xen | Xen | 4.5.0 (including) | 4.5.0 (including) |
Xen | Xen | 4.5.1 (including) | 4.5.1 (including) |
Xen | Xen | 4.5.2 (including) | 4.5.2 (including) |
Xen | Xen | 4.5.3 (including) | 4.5.3 (including) |
Xen | Xen | 4.5.5 (including) | 4.5.5 (including) |
Xen | Xen | 4.6.0 (including) | 4.6.0 (including) |
Xen | Xen | 4.6.1 (including) | 4.6.1 (including) |
Xen | Xen | 4.6.3 (including) | 4.6.3 (including) |
Xen | Xen | 4.6.4 (including) | 4.6.4 (including) |
Xen | Xen | 4.6.5 (including) | 4.6.5 (including) |
Xen | Xen | 4.6.6 (including) | 4.6.6 (including) |
Xen | Xen | 4.7.0 (including) | 4.7.0 (including) |
Xen | Xen | 4.7.1 (including) | 4.7.1 (including) |
Xen | Xen | 4.7.2 (including) | 4.7.2 (including) |
Xen | Xen | 4.7.3 (including) | 4.7.3 (including) |
Xen | Xen | 4.8.0 (including) | 4.8.0 (including) |
Xen | Xen | 4.8.1 (including) | 4.8.1 (including) |
Xen | Xen | 4.9.0 (including) | 4.9.0 (including) |
Xen | Ubuntu | devel | * |
Xen | Ubuntu | xenial | * |
Xen | Ubuntu | zesty | * |