CVE-2025-38069
N/A
Summary
In the Linux kernel, the following vulnerability has been resolved:
PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops
Fix a kernel oops found while testing the stm32_pcie Endpoint driver with handling of PERST# deassertion:
During EP initialization, pci_epf_test_alloc_space() allocates all BARs, which are further freed if epc_set_bar() fails (for instance, due to no free inbound window).
However, when pci_epc_set_bar() fails, the error path:
pci_epc_set_bar() -> pci_epf_free_space()
does not clear the previous assignment to epf_test->reg[bar].
Then, if the host reboots, the PERST# deassertion restarts the BAR allocation sequence with the same allocation failure (no free inbound window), creating a double free situation since epf_test->reg[bar] was deallocated and is still non-NULL.
Thus, make sure that pci_epf_alloc_space() and pci_epf_free_space() invocations are symmetric, and as such, set epf_test->reg[bar] to NULL when memory is freed.
[kwilczynski: commit log]
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 349e7a85b25fa6ee82902d9be2cc5f3bec815120 < fe2329eff5bee461ebcafadb6ca1df0cbf5945fd | affected |
| Linux | Linux | 349e7a85b25fa6ee82902d9be2cc5f3bec815120 < 8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee | affected |
| Linux | Linux | 349e7a85b25fa6ee82902d9be2cc5f3bec815120 < 934e9d137d937706004c325fa1474f9e3f1ba10a | affected |
| Linux | Linux | 4.12 | affected |
| Linux | Linux | 0 < 4.12 | unaffected |
| Linux | Linux | 6.12.31 <= 6.12.* | unaffected |
| Linux | Linux | 6.14.9 <= 6.14.* | unaffected |
| Linux | Linux | 6.15 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/fe2329eff5bee461ebcafadb6ca1df0cbf5945fd
- https://git.kernel.org/stable/c/8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee
- https://git.kernel.org/stable/c/934e9d137d937706004c325fa1474f9e3f1ba10a
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.