All of lore.kernel.org
 help / color / mirror / Atom feed
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,
	Feifan Qian <bea1e@proton.me>,
	Haotian Jiang <jianghaotian.sunday@gmail.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: Re: [PATCH v3 3/6] nbd/server: Reject rather than assert on non-compliant BLOCK_STATUS
Date: Tue, 10 Nov 2026 16:12:00 +0000	[thread overview]
Message-ID: <avNCUMcK2ZklLdG0@redhat.com> (raw)
In-Reply-To: <20261110155356.1520433-9-eblake@redhat.com>

On Tue, Nov 10, 2026 at 09:53:59AM -0600, Eric Blake wrote:
> The NBD spec is clear that a client must not send NBD_BLOCK_STATUS
> requests to a server if it did not negotiate any metacontexts with
> NBD_OPT_SET_META_CONTEXT for the current export.  However, if the
> non-compliant client uses NBD_OPT_EXTENDED_HEADERS and then passes in
> the relatively new NBD_CMD_FLAG_PAYLOAD_LEN flag alongside an
> inappropriate block status request, this was enough to trigger an
> assertion in qemu.  The assertion can also be tripped by initially
> requesting the context for one export, then using NBD_OPT_GO on a
> different export (nbd_check_meta_export() sets contexts.count to 0,
> but did not wipe contexts.exp). Forcing the client command to be
> rejected if contexts.count is 0 solves both triggers, and allows the
> assertion to still operate cleanly at a later location.
> 
> If you do not use recommended practice to prevent unwanted clients
> from connecting to QEMU's NBD server, then any client can cause a
> denial of service with minimal effort.  However, with TLS and x509
> certs in place, an attacker must first chain in an attack to convince
> the client to send unwanted traffic, which is a factor in declaring
> this a lower-risk denial of service.
> 
> Fixes: CVE-2026-124559
> Fixes: 2dcbb11b ("nbd/server: Add FLAG_PAYLOAD support to CMD_BLOCK_STATUS", v8.2.0)
> Reported-by: Feifan Qian <bea1e@proton.me>
> Reported-by: https://gitlab.com/qemu-project/qemu/-/work_items/3796
> CC: Haotian Jiang <jianghaotian.sunday@gmail.com>
> CC: qemu-stable@nongnu.org
> Signed-off-by: Eric Blake <eblake@redhat.com>
> 
> ---
> v3: Move assert later rather than dropping it; improve commit message.
> R-b dropped.
> ---
>  nbd/server.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

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 :|



  reply	other threads:[~2026-11-10 16:12 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é [this message]
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é
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=avNCUMcK2ZklLdG0@redhat.com \
    --to=berrange@redhat.com \
    --cc=bea1e@proton.me \
    --cc=eblake@redhat.com \
    --cc=jianghaotian.sunday@gmail.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.