From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
qemu-stable@nongnu.org, stefanha@redhat.com,
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: Re: [PATCH v3 5/6] nbd/server: Reject rather than assert on non-compliant NBD_OPT_SET_META_CONTEXT
Date: Tue, 10 Nov 2026 16:19:03 +0000 [thread overview]
Message-ID: <avND9_Y5zRVvTWPE@redhat.com> (raw)
In-Reply-To: <20261110155356.1520433-11-eblake@redhat.com>
On Tue, Nov 10, 2026 at 09:54:01AM -0600, Eric Blake wrote:
> The NBD protocol says that NBD_OPT_{LIST,SET}_META_CONTEXT sends
> several lengths that must be consistent: an overall option reply
> length, then a series of smaller lengths/data pairs representing the
> export name and zero or more context names. If the smaller lengths
> within the payload do not add up to the larger value, the client has
> sent garbage bytes that will trigger the server's parse of the
> client's next option to be out of sync. However, QEMU was dying with
> an assertion failure rather than diagnosing the issue, which a
> malicious client can then exploit to mount a denial-of-service attack
> against QEMU as the NBD server.
>
> As with several other recent NBD protocol violations, the likelihood
> of this attack can be reduced by using TLS and x509 certs to reject
> unwanted clients (a "trusted" client can still trigger the problem,
> but you first have to compromise the trusted client into sending
> arbitrary traffic).
>
> Fixes: CVE-2026-125683
> Fixes: e7b1948d51 ("nbd: BLOCK_STATUS for standard get_block_status function: server part", v2.12.0)
> Reported-by: TonySD via https://gitlab.com/qemu-project/qemu/-/work_items/4843
> CC: qemu-stable@nongnu.org
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
> nbd/server.c | 5 +++++
> 1 file changed, 5 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
next prev parent reply other threads:[~2026-11-10 16:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 15:30 [PATCH for-11.2 v3 0/6] Fix some low-severity NBD CVEs Eric Blake
2026-11-10 15:53 ` [PATCH v3 1/6] docs: Mention security considerations for NBD Eric Blake
2026-11-10 15:53 ` [PATCH v3 2/6] iotests: Refactor python NBD server setup Eric Blake
2026-11-10 16:11 ` Daniel P. Berrangé
2026-11-10 15:53 ` [PATCH v3 3/6] nbd/server: Reject rather than assert on non-compliant BLOCK_STATUS Eric Blake
2026-11-10 16:12 ` Daniel P. Berrangé
2026-11-10 15:54 ` [PATCH v3 4/6] iotests: Add new nbd-robustness test Eric Blake
2026-11-10 15:54 ` [PATCH v3 5/6] nbd/server: Reject rather than assert on non-compliant NBD_OPT_SET_META_CONTEXT Eric Blake
2026-11-10 16:19 ` Daniel P. Berrangé [this message]
2026-11-10 15:54 ` [PATCH v3 6/6] iotests: Add another nbd-robustness test Eric Blake
2026-11-10 16:10 ` [PATCH v3 1/6] docs: Mention security considerations for NBD Daniel P. Berrangé
2026-11-10 16:27 ` [PATCH for-11.2 v3 0/6] Fix some low-severity NBD CVEs Stefan Hajnoczi
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=avND9_Y5zRVvTWPE@redhat.com \
--to=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=stefanha@redhat.com \
--cc=vsementsov@yandex-team.ru \
/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 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.