From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40179) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlkPG-0007XJ-8g for qemu-devel@nongnu.org; Fri, 13 Jan 2012 11:55:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RlkP7-0001ec-08 for qemu-devel@nongnu.org; Fri, 13 Jan 2012 11:55:10 -0500 Received: from mail-iy0-f173.google.com ([209.85.210.173]:58999) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RlkP6-0001dd-TQ for qemu-devel@nongnu.org; Fri, 13 Jan 2012 11:55:00 -0500 Received: by mail-iy0-f173.google.com with SMTP id o4so3613703iae.4 for ; Fri, 13 Jan 2012 08:55:00 -0800 (PST) Message-ID: <4F1061E1.2050308@codemonkey.ws> Date: Fri, 13 Jan 2012 10:54:57 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1324651143-5247-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <1324651143-5247-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] virtio-blk: refuse SG_IO requests with scsi=off List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org On 12/23/2011 08:39 AM, Paolo Bonzini wrote: > QEMU does have a "scsi" option (to be used like -device > virtio-blk-pci,drive=foo,scsi=off). However, it only > masks the feature bit, and does not reject the command > if a malicious guest disregards the feature bits and > issues a request. > > Without this patch, using scsi=off does not protect you > from CVE-2011-4127. > > Signed-off-by: Paolo Bonzini Applied. Thanks. Regards, Anthony Liguori > --- > hw/virtio-blk.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c > index b70d116..6cd3164 100644 > --- a/hw/virtio-blk.c > +++ b/hw/virtio-blk.c > @@ -153,6 +153,12 @@ static void virtio_blk_handle_scsi(VirtIOBlockReq *req) > int status; > int i; > > + if ((req->dev->vdev.guest_features& (1<< VIRTIO_BLK_F_SCSI)) == 0) { > + virtio_blk_req_complete(req, VIRTIO_BLK_S_UNSUPP); > + g_free(req); > + return; > + } > + > /* > * We require at least one output segment each for the virtio_blk_outhdr > * and the SCSI command block.