[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025022655-CVE-2024-58006-9855@gregkh>
Date: Wed, 26 Feb 2025 18:11:00 -0800
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2024-58006: PCI: dwc: ep: Prevent changing BAR size/flags in pci_epc_set_bar()
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
PCI: dwc: ep: Prevent changing BAR size/flags in pci_epc_set_bar()
In commit 4284c88fff0e ("PCI: designware-ep: Allow pci_epc_set_bar() update
inbound map address") set_bar() was modified to support dynamically
changing the backing physical address of a BAR that was already configured.
This means that set_bar() can be called twice, without ever calling
clear_bar() (as calling clear_bar() would clear the BAR's PCI address
assigned by the host).
This can only be done if the new BAR size/flags does not differ from the
existing BAR configuration. Add these missing checks.
If we allow set_bar() to set e.g. a new BAR size that differs from the
existing BAR size, the new address translation range will be smaller than
the BAR size already determined by the host, which would mean that a read
past the new BAR size would pass the iATU untranslated, which could allow
the host to read memory not belonging to the new struct pci_epf_bar.
While at it, add comments which clarifies the support for dynamically
changing the physical address of a BAR. (Which was also missing.)
The Linux kernel CVE team has assigned CVE-2024-58006 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.0 with commit 4284c88fff0efc4e418abb53d78e02dc4f099d6c and fixed in 6.12.14 with commit b5cacfd067060c75088363ed3e19779078be2755
Issue introduced in 6.0 with commit 4284c88fff0efc4e418abb53d78e02dc4f099d6c and fixed in 6.13.3 with commit 3229c15d6267de8e704b4085df8a82a5af2d63eb
Issue introduced in 6.0 with commit 4284c88fff0efc4e418abb53d78e02dc4f099d6c and fixed in 6.14-rc1 with commit 3708acbd5f169ebafe1faa519cb28adc56295546
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2024-58006
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/pci/controller/dwc/pcie-designware-ep.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/b5cacfd067060c75088363ed3e19779078be2755
https://git.kernel.org/stable/c/3229c15d6267de8e704b4085df8a82a5af2d63eb
https://git.kernel.org/stable/c/3708acbd5f169ebafe1faa519cb28adc56295546
Powered by blists - more mailing lists