From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:50578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFt4v-0001Uc-IN for qemu-devel@nongnu.org; Mon, 17 Oct 2011 15:42:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFt4u-0003sC-JG for qemu-devel@nongnu.org; Mon, 17 Oct 2011 15:42:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13949) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFt4u-0003s8-9c for qemu-devel@nongnu.org; Mon, 17 Oct 2011 15:42:28 -0400 Date: Mon, 17 Oct 2011 21:43:31 +0200 From: "Michael S. Tsirkin" Message-ID: <20111017194330.GA10756@redhat.com> References: <57386830befff359aa6eac1610816eb9c853a05d.1318843693.git.jan.kiszka@siemens.com> <20111017111045.GB4537@redhat.com> <4E9C1042.4040007@siemens.com> <20111017115721.GF4537@redhat.com> <4E9C1A6E.1010404@siemens.com> <20111017125031.GJ4537@redhat.com> <4E9C7DE1.3030706@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E9C7DE1.3030706@web.de> Subject: Re: [Qemu-devel] [RFC][PATCH 06/45] msix: Prevent bogus mask updates on MMIO accesses List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Alex Williamson , Marcelo Tosatti , Avi Kivity , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" On Mon, Oct 17, 2011 at 09:11:29PM +0200, Jan Kiszka wrote: > On 2011-10-17 14:50, Michael S. Tsirkin wrote: > > On Mon, Oct 17, 2011 at 02:07:10PM +0200, Jan Kiszka wrote: > >> On 2011-10-17 13:57, Michael S. Tsirkin wrote: > >>> On Mon, Oct 17, 2011 at 01:23:46PM +0200, Jan Kiszka wrote: > >>>> On 2011-10-17 13:10, Michael S. Tsirkin wrote: > >>>>> On Mon, Oct 17, 2011 at 11:27:40AM +0200, Jan Kiszka wrote: > >>>>>> Only accesses to the MSI-X table must trigger a call to > >>>>>> msix_handle_mask_update or a notifier invocation. > >>>>>> > >>>>>> Signed-off-by: Jan Kiszka > >>>>> > >>>>> Why would msix_mmio_write be called on an access > >>>>> outside the table? > >>>> > >>>> Because it handles both the table and the PBA. > >>> > >>> Hmm. Interesting. Is there a bug in how we handle PBA > >>> updates then? If yes I'd like a separate patch for that > >>> to apply to the stable tree. > >> > >> I first thought it was a serious bug, but it just triggers if the guest > >> write to PBA (which is very uncommon) and that actually triggers any > >> spurious out-of-bounds vector injection. Highly unlikely. > > > > Yes guests don't really use PBA ATM. But is there something > > bad a malicious guest can do? For example, what if > > msix_clr_pending gets invoked with this huge vector value? > > > > It does seem serious ... > > I checked it before and I think it is harmless. The largest vector that > can be miscalculated is 255. But bit 255 in the PBA is still safe inside > our MMIO page. > > Jan > you are right. we got lucky.