lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <734c7fdf-4c41-2890-dbe7-ddb23fd6bcc7@embeddedor.com> Date: Mon, 2 Oct 2023 20:40:31 +0200 From: "Gustavo A. R. Silva" <gustavo@...eddedor.com> To: Logan Gunthorpe <logang@...tatee.com>, "Gustavo A. R. Silva" <gustavoars@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com> Cc: linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org, linux-hardening@...r.kernel.org Subject: Re: [PATCH][next] PCI/P2PDMA: Fix undefined behavior bug in struct pci_p2pdma_pagemap On 10/2/23 18:07, Logan Gunthorpe wrote: > > > On 2023-10-01 15:08, Gustavo A. R. Silva wrote: >> `struct dev_pagemap` is a flexible structure, which means that it >> contains a flexible-array member at the bottom. This could potentially >> lead to an overwrite of the objects following `pgmap` in `struct >> pci_p2pdma_pagemap`, when `nr_range > 1`. >> >> Fix this by placing the declaration of object `pgmap` at the end of >> `struct pci_p2pdma_pagemap`. >> >> -Wflex-array-member-not-at-end is coming in GCC-14, and we are getting >> ready to enable it globally. >> >> Fixes: 0afea3814358 ("PCI/P2PDMA: Add provider's pci_dev to pci_p2pdma_pagemap struct") >> Fixes: a6e6fe6549f6 ("PCI/P2PDMA: Introduce private pagemap structure") >> Cc: stable@...r.kernel.org >> Signed-off-by: Gustavo A. R. Silva <gustavoars@...nel.org> > > > Makes sense to me, thanks. > > Although, I'm not sure the fixes tags are appropriate. The > flexible-array member was introduced in 5.10 (b7b3c01b19) and both the > "fixed" commits predate that change by a number of releases. You're right. I'll remove those tags. > > Also, it's probably worth noting in the commit message that the p2pdma > code hardcodes nr_ranges to 1 (in pci_p2pdma_add_resource); so there is > no way to actually hit any bug with the current code. Yep. I mention that in this part "This could potentially lead to an overwrite of the objects following `pgmap` in `struct pci_p2pdma_pagemap`, when `nr_range > 1`." > > I totally agree that the patch should be applied to prevent possible > bugs being introduced in the future: > > Reviewed-by: Logan Gunthorpe <logang@...tatee.com> Thanks for the RB and the feedback. :) -- Gustavo
Powered by blists - more mailing lists