[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] store: Detect bad response from xenstored


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Wed, 26 Aug 2026 12:53:21 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yqYVco6DBDcBLZpBt3U1VWWtvd4RK2xzCyiv1HS35PQ=; b=ggH1GBIMVVO6tOr96UHGreAXS9IHgvc2QoU7hQ9GEW7HhMPz/lYScc+XFomhPJwZ/1VV528RCPGagbIwxU1ftVDolWhXGcWjltkp6rGgPTFnCUd+pWIRQSzanUW6fcJi/Fe77oNY+Wiq7vLeXGRB0FLDd8w5ESNTXQXm/6G01aJnMGlqjxeBg52b9h3d/zfcLH7ClWaA08RbQNDMkra3PpClH/Kraq2e+X6TUR8CnP3tcHumSQop6peh8RgXVpW/Xf6njCZmk0Bohds5BsPNu2fK/lbmPfbvS4ME6QH1eetNgR6EgPD4KGK7xzrrkp9oiUtk/QvqIpKdaQcylKSsVQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HqECsrlCojpC2au+TJ28PzclatuZNEwMycZb6n2ZHmgQsUj6yvFdHyyaTnBCRl6E9sK2CgI7OQuJj41R+4o0vfmwAOfKcL30WvyEcCopFpel87IpiIu7/GYwUMz/8AULrQagdPa2azdmsZ74ZclUfdr+xUwJ11NK+GZlfjJihntrnK4Zm60JDwW8GS9mp9W0Smvf2I9FGRXSQvQ+T736s1C4D/vBK+uh6KTTovmjGIjLxYvEQyobzmhxXqdddAkDAmeHBRRu6Ksc3GG37nZZh8+LAgtUXnH2x5Sk8Q6MdtuvfRB8R5AIP8l8nWg6g1V/SRJZG7Kp6/u0YM7/ra7HBw==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Wed, 26 Aug 2026 12:53:31 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHdNTyEQ/OVMoE0nUWuDElG2PfeRrawSS+S
  • Thread-topic: [PATCH] store: Detect bad response from xenstored

Reviewed-by: Owen Smith <owen.smith@xxxxxxxxxx>

________________________________________
From: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 26 August 2026 10:23 AM
To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tu Dinh; Owen Smith
Subject: [PATCH] store: Detect bad response from xenstored

Detect when Header.len is larger than allowed, and fail the request.
A length of 0 is valid for some operations.
Also modify StoreVerifyHeader to fail on length > XENSTORE_PAYLOAD_MAX

Assisted-by: ClaudeCode:claude-opus-4.8
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>

Ported from XenBus.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xencrsh/store.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/xencrsh/store.c b/src/xencrsh/store.c
index 7c5e078..cc7cf8b 100644
--- a/src/xencrsh/store.c
+++ b/src/xencrsh/store.c
@@ -376,7 +376,7 @@ __StoreVerifyHeader(
         Valid = FALSE;
     }

-    if (Header->len >= XENSTORE_PAYLOAD_MAX) {
+    if (Header->len > XENSTORE_PAYLOAD_MAX) {
         LogError("ILLEGAL LENGTH 0x%08x\n", Header->len);
         Valid = FALSE;
     }
@@ -404,6 +404,10 @@ StoreReceiveResponse(
     if (Response->Header.len == 0)
         goto done;

+    status = STATUS_INVALID_BUFFER_SIZE;
+    if (Response->Header.len > XENSTORE_PAYLOAD_MAX)
+        goto done;
+
     Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Length = Response->Header.len;
     Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Data = 
AustereAllocate(Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Length);
     ASSERT(Response->Segment[RESPONSE_PAYLOAD_SEGMENT].Data != NULL);
--
2.55.0.windows.3



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.