All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xen: vm_event: do not do vm_event_op for an invalid domain
@ 2025-03-17 23:08 Volodymyr Babchuk
  2025-03-17 23:40 ` Andrew Cooper
  2025-03-17 23:51 ` Tamas K Lengyel
  0 siblings, 2 replies; 4+ messages in thread
From: Volodymyr Babchuk @ 2025-03-17 23:08 UTC (permalink / raw)
  To: xen-devel@lists.xenproject.org
  Cc: Stefano Stabellini, Roger Pau Monné, Volodymyr Babchuk,
	Tamas K Lengyel, Alexandru Isaila, Petre Pircalabu

A privileged domain can issue XEN_DOMCTL_vm_event_op with
op->domain == DOMID_INVALID. In this case vm_event_domctl()
function will get NULL as the first parameter and this will
cause hypervisor panic, as it tries to derefer this pointer.

Fix the issue by checking if valid domain is passed in.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

This issue was found by the xen fuzzer ([1])

[1] https://lore.kernel.org/all/20250315003544.1101488-1-volodymyr_babchuk@epam.com/
---
 xen/common/vm_event.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index fbf1aa0848..a4c233de52 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -600,6 +600,13 @@ int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec)
         return 0;
     }
 
+    if ( unlikely(!d) )
+    {
+        gdprintk(XENLOG_INFO,
+                 "Tried to do a memory event op on invalid domain\n");
+        return -EINVAL;
+    }
+
     rc = xsm_vm_event_control(XSM_PRIV, d, vec->mode, vec->op);
     if ( rc )
         return rc;
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-03-18  0:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17 23:08 [PATCH] xen: vm_event: do not do vm_event_op for an invalid domain Volodymyr Babchuk
2025-03-17 23:40 ` Andrew Cooper
2025-03-17 23:51 ` Tamas K Lengyel
2025-03-18  0:01   ` Volodymyr Babchuk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.