From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id AE8DA9F01; Thu, 21 May 2026 01:49:39 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 259F19DFF; Thu, 21 May 2026 01:49:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail-yw1-x112c.google.com (mail-yw1-x112c.google.com [IPv6:2607:f8b0:4864:20::112c]) by atuin.qyliss.net (Postfix) with ESMTPS id 1D8909DFE for ; Thu, 21 May 2026 01:49:36 +0000 (UTC) Received: by mail-yw1-x112c.google.com with SMTP id 00721157ae682-7d1bcb92072so7128897b3.1 for ; Wed, 20 May 2026 18:49:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779328174; x=1779932974; darn=spectrum-os.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=TZbeXwNrnYowG+blwPOeMretL1I9JWHKe2cWRk2yJ28=; b=PeLX6PlP/PydLSI37ghgR5nCUPUs+IwmXjx7AXDz3+CMn+9oNdHiFAnpjvy7UoWgiE yBHj27ljJiGz+TKqCTL2L4EoAej9sxSQuag2MVtY3SU4qJl1B/8v0ifxp7wg+wPErkKJ tZadCukypJFPfXgZdqm45R/oC9b8jnzjNuOdiLH7OonaiMGHOmGqTheCDbHs7PDep26d HP9Pw6cbPVNO1L/ddcjJs0zu/Q8gpUg4PxJvH/YqEX/ygePodWrlp+b9UBMNydSyhxJb H+rd5QJL0b+VdAMX1coTNiwrFLx4b4O47Wsu2Ty7qjt4sYDX6LbzRaaoXEvfV7sfHYCp szMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779328174; x=1779932974; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=TZbeXwNrnYowG+blwPOeMretL1I9JWHKe2cWRk2yJ28=; b=azeCNQRPYgTGH9DOzbqYJUfJq5Asg+2SJaeIuIzE0pw330gI9S2Q4MQJI+dr5gifxw ORLIMElmcpMyHWD723oA4pHouT8WT+0Hb9ZhpXX4Je7WK9CsVlAVBWPnJrTfANbqefcT 8HBgDcMahcacqgEoCRgZpDBMtzzu1OcOR7rFDmD5peCiSbEyQnaVYij48cvC0rzw8MKf bT0Us9uF4r9Qj36OFMk4DbMM+6KJy6JLiecd7c68X9flsqEnBTe8BTlQBtnsrmFZ9jbb fyRI4Oyaef2AhBSlK/3wGlIS1FR/Ud8AlYRgYVk7QqlDm80Lg62xG8Bc5tObCnvi8HiT IhoQ== X-Gm-Message-State: AOJu0YwIex9RXLxgBZV6bdmNIWhEIp/b9AvP/t+FZk3eumLbBfUkYuZL KwREE4NPbVxoKkaI4A7c470+6O1s/2hUXCFVS7N5XgC753pjgzLfN6iI+3Qa3A== X-Gm-Gg: Acq92OEvKp/8ek4X0dAykqn0ovt0MXRHwaKSbcJUbIaq5W08jUwIVVqrgYupPbVYRc+ 23gRqNOkqvig6weWg5twV83p3m/+Zr1M410CkjiUMy60FSonpgJt8eOQKREH8nn7cHWh+RfiZHR Vw/AVfv3gJ15h3GE7a8lNFMA+IYnWtRb6ghEcKgBXV4uTkFJ1iDPGiCLBRo2hJSkxb7RXpZdy60 6JzBf+6CBeBbxGK9YdEKuYCJBY1f0vv0v6efJQxoBgVxuPpSugCA8WzDuEqK7/Yp/4VmHJajkJE iRJxiGmJuNO8Ppi979pbYbl6vTp880XtOM6SL88c5r03t5hjRX2KDEXxeqpNfU8UeEEg5u/kRkC Ka8ZcUbXTeWpsKO5RRPjYgu9spsLMoUTBAk4MOhklpxKvwzcWa0P5TtTOffpITWSMzYdMDvI4MA U6GxWMPjxd6n2/YwBsgb4k82pJpzwuRM6wo6MvqiivR5sL3XyHb1ODhsidUi6+3uyHdQaJ0wV2C DJQPGjaSlLvwLMoBB1Q4oafmWiu5Onub/xOcpQZNVlq3J9UKQ== X-Received: by 2002:a05:690c:7242:b0:7af:6075:4e0e with SMTP id 00721157ae682-7d20ce30b8dmr10858557b3.35.1779328174538; Wed, 20 May 2026 18:49:34 -0700 (PDT) Received: from localhost.localdomain (h69-131-150-190.cncrtn.broadband.dynamic.tds.net. [69.131.150.190]) by smtp.gmail.com with UTF8SMTPSA id 00721157ae682-7cc9d18c769sm60172357b3.47.2026.05.20.18.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 18:49:33 -0700 (PDT) From: Demi Marie Obenour Date: Wed, 20 May 2026 21:46:40 -0400 Subject: [PATCH] tools: Use synchronous I/O for block devices MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260520-sync-block-v1-1-d1615e5d4f93@gmail.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDUwNz3eLKvGTdpJz85GxdI0sDoySzRDNj0zQLJaCGgqLUtMwKsGHRsRB +cWlSVmpyCcgEpdpaAAd6nY1uAAAA X-Change-ID: 20260507-sync-block-2902b6a635f8 To: Spectrum OS Development X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779327999; l=2213; i=demiobenour@gmail.com; s=20250729; h=from:subject:message-id; bh=twfXiY8JFjS8MdXmh3iTr18qkcb6G25db/udjAyr6rE=; b=B1DIgsgMSurwjplVQ5arDJtQBhtLS8IG3qN9MUM/yX0pY/ox15mcMN4Ip0FfuPpsPE3bI/gEP uJEAuV8ERbfDUi2rTOKquJ49Dh5sfnlhoiTH0f4mamJVPnOYlIn5dDK X-Developer-Key: i=demiobenour@gmail.com; a=ed25519; pk=X57Q4/YQDj9t4SBeKaDwvXYKB6quZJVx/DE2Ly2out0= Message-ID-Hash: DMGJEJJ3ODIVU6X4HD4DS5S73GRO7MMS X-Message-ID-Hash: DMGJEJJ3ODIVU6X4HD4DS5S73GRO7MMS X-MailFrom: demiobenour@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Alyssa Ross , Demi Marie Obenour X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: <> List-Archive: <> List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: CVE-2026-45782 showed that the Cloud Hypervisor asynchronous block I/O code is far too subtle. Even the top-level APIs are unsafe, and so bugs in the block device itself can cause undefined behavior. In this case, the undefined behavior was a use-after free that allowed a VM escape. While the synchronous code still allows safe code to cause undefined behavior, it is somewhat simpler to reason about and so should be preferred when performance is not a concern. Disabling asynchronous I/O was a mitigation for CVE-2026-45782. Signed-off-by: Demi Marie Obenour --- Upstream contributor Dylan Reid plans to fix the block layer. However, its attack surface is still much higher than the synchronous I/O code. This has not been tested beyond the integration tests. My test machine is currently not working, most likely due to the AMDGPU panel self-refresh bug. --- tools/start-vmm/ch.rs | 2 ++ tools/start-vmm/lib.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tools/start-vmm/ch.rs b/tools/start-vmm/ch.rs index d3ac95ed60db834e20dbd7366908ae45cbdf27a2..239d08e10721170de02ec7da92939597c72e8033 100644 --- a/tools/start-vmm/ch.rs +++ b/tools/start-vmm/ch.rs @@ -24,6 +24,8 @@ pub struct ConsoleConfig { pub struct DiskConfig { pub path: String, pub readonly: bool, + pub disable_io_uring: bool, + pub disable_aio: bool, } #[derive(Serialize)] diff --git a/tools/start-vmm/lib.rs b/tools/start-vmm/lib.rs index 1adccc1b76ce24ba0550a3db2aef1b4c8f3c231a..0fa63525eaee2f387456ed6fb9c3649188ab0e7a 100644 --- a/tools/start-vmm/lib.rs +++ b/tools/start-vmm/lib.rs @@ -75,6 +75,8 @@ pub fn vm_config(vm_dir: &Path) -> Result { Ok(DiskConfig { path: entry, readonly: true, + disable_io_uring: true, + disable_aio: true, }) }) .collect::>()?, --- base-commit: 5b3151fd08d1f1e3e166a328449fe6fe5092f316 change-id: 20260507-sync-block-2902b6a635f8 -- Sincerely, Demi Marie Obenour (she/her/hers)