mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Graf (AWS), Alexander" <graf@amazon.de>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"hexlabsecurity@proton.me" <hexlabsecurity@proton.me>
Cc: Arnd Bergmann <arnd@arndb.de>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	The AWS Nitro Enclaves Team <aws-nitro-enclaves-devel@amazon.com>
Subject: Re: [PATCH] misc: nsm: bound the device-reported response length
Date: Sun, 21 Jun 2026 08:07:04 +0000	[thread overview]
Message-ID: <5fa26d33-fb13-4f74-b972-43b460ac916d@amazon.com> (raw)
In-Reply-To: <2026062124-unsalted-wiry-6920@gregkh>


On 21.06.26 07:38, Greg Kroah-Hartman wrote:
> On Sat, Jun 20, 2026 at 09:42:11PM -0500, Bryam Vargas via B4 Relay wrote:
>> From: Bryam Vargas <hexlabsecurity@proton.me>
>>
>> nsm_sendrecv_msg_locked() stores the virtqueue used-ring length reported
>> by the NSM device into msg->resp.len without bounding it to the response
>> buffer. A malicious or buggy backend can report a length larger than the
>> response buffer; parse_resp_raw() then copies that many bytes out of the
>> fixed buffer to user space, disclosing adjacent kernel heap (an
>> out-of-bounds read). The request path already floors its length in
>> fill_req_raw(); the response path lacks the symmetric check.
>>
>> Clamp the stored length to the size of the response buffer. Well-behaved
>> devices report no more than the posted buffer size, so conforming traffic
>> is unaffected.
> Is this really the only place where a "buggy" device that is bound to
> the driver can cause any problems?  Shouldn't the driver only be bound
> to trusted devices to start with?


It's close to impossible to understand whether the backing device is 
"trusted" or not from a VM's point of view. Even all the fancy "trusted 
PCIe" logic is about as secure as "secure HDMI": not at all. The best 
thing a VM can do is trust specific drivers IMHO to reduce its TCB. I 
think as a stick in the ground saying "all virtio drivers are trusted" 
makes a lot of sense given that a lot of the virtualized world runs on 
virtio.

Bryam, under that premise, could you please also look at other parts of 
the nsm driver that could potentially break the premise of a malicious 
host? A quick AI scan revealed that the cbor_short_size switch has no 
default branch, which leads to uninitialized array_len. Since the report 
looks heavily AI influenced, maybe yours actually finds more?

For this patch:

Reviewed-by: Alexander Graf <graf@amazon.com>


Thanks,

Alex



Amazon Web Services Development Center Germany GmbH
Tamara-Danz-Str. 13
10243 Berlin
Geschaeftsfuehrung: Christof Hellmis, Andreas Stieger
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597

  reply	other threads:[~2026-06-21  8:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-21  2:42 Bryam Vargas via B4 Relay
2026-06-21  5:38 ` Greg Kroah-Hartman
2026-06-21  8:07   ` Graf (AWS), Alexander [this message]
2026-06-22  7:50     ` Bryam Vargas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5fa26d33-fb13-4f74-b972-43b460ac916d@amazon.com \
    --to=graf@amazon.de \
    --cc=arnd@arndb.de \
    --cc=aws-nitro-enclaves-devel@amazon.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hexlabsecurity@proton.me \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®