[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] xen/arm: ffa: Harden SEND2 against invented loads
- To: "Orzel, Michal" <Michal.Orzel@xxxxxxx>
- From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
- Date: Wed, 19 Aug 2026 08:01:48 +0000
- Accept-language: en-GB, en-US
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=2; 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=rr6gOfc2p/SnwVCX8TubUZatbnbQUnYhhWS+pBnid70=; b=dxV0vlVE4293FUNt8OjwKMW/QjC+XTqBf9gC8AaCZZ76o6nNRE9cJve6MNGUhQrFKMtIx7BqCnNKMaU80gq1lVGXCCoILghrtEYr0MmqC1mAn76YX87f7RkDT2tbJj9jv0dM43PKTi3KnHzeh2cADonU7Jx29BkRJWzDeJ+hH8m+ptMIS4k+VgLiBTxaD0LVVjaCNQjjz1JFwvS7bThYJKPe/3OlihTYLegrJj5B45lmlPZUE5wc2bxzkitnAwXW5KZzHKlK/S+sV50o3S6amjenHaVR3ZkqehJ3CmFbJbymG/7NLpkjaC2Ft2DeykJbRndZ9PW06QCOKSMiNQIbvA==
- 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=rr6gOfc2p/SnwVCX8TubUZatbnbQUnYhhWS+pBnid70=; b=kLaedVi7CYnL34TltVsk5gDqUPa2CgFLfSmOjYOR87vuuCmhgiy1kP3cFdqKJA894Xg4Wdt36WGfS0zrvYBLz/WqA+hTXEzWZJ1CHR0muMnIW/clm6V8ubCyxxHfXX6APbdrmjJ6gaoTbjfulmGkVcpe0X1kpSMrDS3VtKVj4JKAkH19IkJNhpnPFfUI50ENw1lNPYcQlf59Av2xdPIMhv2+ZX4pIZBaicgrokbPQpr6O1Hx8YjaIquMfDd1bI6MO0Wv64A+BMG0fkAbFz+S529o2ylPyBEHbVCjuLwahTryD2WElhgE2BIVYNHj2iDNsGL+IUYUObK4xe82bvbz8w==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=r/LOhEzb+IhYoXaZKJWvMJXaottc9NvrB2mq8gpnoZnTegzKK3ClzoCnJ61g+YWfgVHepli193p7aLmREQYRFm9R48XT6ususuvmhWFZfu7jVVMs/9WQc83WP2R9xF6asj68vhw3F4tmM5lB4iRzEHDwOG2WuDaJFVK8+iiPuYq8iWX/Xw6VR8pw5lwF0WVpBDIn8XosGzvDDsdOYJpgCtENZ42H74PF/f42k/EjVmEv0Wredb48oIKBWI4R2wKS7W4r1c93EHQJ3XNSBeEZGW9jM+80mGSN/+onLWRskp8IvL+a0tEe9j2dQJvGhq7WDB3BzRsR4uux7orDkhjiiw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A0K9MhumRtmknmDpDIVzyJuMyQT8Z3ZxCpZaFSGtwAzohXgpcftWx/saD1HdY6Z0R3Kg3WwSGcdIjpciica8KNtMttSXqDqbzhWSmLsWlPMVtdOBlmTakBjv0Ngjp5JfcOJPG1XYmoqKr9jnoUHPesk8B8/A2wkDMpI4sTwner+rFOdHbOzv6vT4pc/BuV18hXVMl7G/xNJYDlDQcxOIkJPb3Q0DCqSY5NamHGqJyMF2JISDAFs7ju4Sbgt+hmrHW1ojR7ajlKzIPZ/Hd1rLTB8WcpofxDAh1cy8JKy/MV4sj8LuNMegr6Jb57qZWFNGwU2UupKz76+g5Bf7K+DT3g==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>, Jens Wiklander <jenswi@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>
- Delivery-date: Wed, 19 Aug 2026 08:02:40 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Nodisclaimer: true
- Thread-index: AQHdLwt9ezGusG27iE6LBf89mJZswbak//uAgAAD2IA=
- Thread-topic: [PATCH] xen/arm: ffa: Harden SEND2 against invented loads
Hi Michal,
> On 19 Aug 2026, at 09:47, Orzel, Michal <Michal.Orzel@xxxxxxx> wrote:
>
>
>
> On 18-Aug-26 14:16, Bertrand Marquis wrote:
>> Research into compiler-invented loads has flagged FFA_MSG_SEND2 as a
>> possible vulnerability.
>>
>> ffa_handle_msg_send2() copies the message header from the guest-writable
>> TX buffer before validating and using its fields. A plain structure copy
>> does not prevent the compiler from re-deriving later field accesses from
>> the live TX mapping.
>>
>> For VM-to-VM messages, msg_offset and msg_size are validated against the
>> source and destination buffers, then used to copy the payload. If a
>> sibling vCPU changes the header and the compiler reloads either field,
>> the checked and used values can differ. This can cause an out-of-bounds
>> read from the sender's TX buffer or an out-of-bounds write into the
>> receiver's RX buffer.
>>
>> The cross-VM path is gated by CONFIG_FFA_VM_TO_VM, which is disabled by
>> default. The audit ranks the likelihood of such a reload as low, but the
>> C semantics do not guarantee that later accesses use the stack copy.
>>
>> Add a compiler barrier immediately after copying the header so that
>> validation and use consume the same snapshot.
>>
>> Link:
>> https://github.com/xoreaxeaxeax/schrodingers-toctou/blob/main/observer-effect/audits/audit-xen-tee-mediator-RELEASE-4.21.1.md#tm-2--ff-a-txrx-buffers-ffa_shmc-ffa_msgc
>> Fixes: 98af565b1e61 ("xen/arm: ffa: Add indirect message between VM")
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
>> ---
>> xen/arch/arm/tee/ffa_msg.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
>> index 1eadc62870f2..39f561c8237f 100644
>> --- a/xen/arch/arm/tee/ffa_msg.c
>> +++ b/xen/arch/arm/tee/ffa_msg.c
>> @@ -257,6 +257,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
>>
>> /* create a copy of the message header */
>> memcpy(&src_msg, tx_buf, sizeof(src_msg));
>> + /*
>> + * Make sure that "tx_buf" which is shared with the guest isn't accessed
>> + * again after this point.
> This is a bit misleading because it *is* accessed in ffa_msg_send2_vm. The
> comment should say what you wrote as the last paragraph in the commit msg.
Yes, this should be something around:
Ensure validation and use of the message header use the same snapshot.
Do you agree ?
>
> With that:
> Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>
>
Thanks.
Could that be fixed on commit or do you want me to send a v2 ?
Cheers
Bertrand
> ~Michal
>
|