{"id":"CVE-2025-38069","state":"PUBLISHED","title":"PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops\n\nFix a kernel oops found while testing the stm32_pcie Endpoint driver\nwith handling of PERST# deassertion:\n\nDuring EP initialization, pci_epf_test_alloc_space() allocates all BARs,\nwhich are further freed if epc_set_bar() fails (for instance, due to no\nfree inbound window).\n\nHowever, when pci_epc_set_bar() fails, the error path:\n\n  pci_epc_set_bar() ->\n    pci_epf_free_space()\n\ndoes not clear the previous assignment to epf_test->reg[bar].\n\nThen, if the host reboots, the PERST# deassertion restarts the BAR\nallocation sequence with the same allocation failure (no free inbound\nwindow), creating a double free situation since epf_test->reg[bar] was\ndeallocated and is still non-NULL.\n\nThus, make sure that pci_epf_alloc_space() and pci_epf_free_space()\ninvocations are symmetric, and as such, set epf_test->reg[bar] to NULL\nwhen memory is freed.\n\n[kwilczynski: commit log]","publishedAt":"2025-06-18T09:33:46.711Z","updatedAt":"2026-10-30T12:21:39.173Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"e2e43854ab72a9d4908ac2bf6087f80aa138a8b5","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"761db4ca3a469f2070757acd4e104dff5125ca99","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"fe2329eff5bee461ebcafadb6ca1df0cbf5945fd","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"934e9d137d937706004c325fa1474f9e3f1ba10a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/endpoint/functions/pci-epf-test.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.31","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.14.9","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/endpoint/functions/pci-epf-test.c"]}],"references":["https://git.kernel.org/stable/c/e2e43854ab72a9d4908ac2bf6087f80aa138a8b5","https://git.kernel.org/stable/c/761db4ca3a469f2070757acd4e104dff5125ca99","https://git.kernel.org/stable/c/fe2329eff5bee461ebcafadb6ca1df0cbf5945fd","https://git.kernel.org/stable/c/8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee","https://git.kernel.org/stable/c/934e9d137d937706004c325fa1474f9e3f1ba10a"],"weaknesses":[],"ingestedAt":"2026-10-30T12:38:04.623Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38069.json","commit":"db8103c5921aac81d5d90efcf3745980dafabf49","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38069","state":"PUBLISHED","datePublished":"2025-06-18T09:33:46.711Z","dateUpdated":"2026-10-30T12:21:39.173Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:23.980Z"},"containers":{"cna":{"title":"PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops\n\nFix a kernel oops found while testing the stm32_pcie Endpoint driver\nwith handling of PERST# deassertion:\n\nDuring EP initialization, pci_epf_test_alloc_space() allocates all BARs,\nwhich are further freed if epc_set_bar() fails (for instance, due to no\nfree inbound window).\n\nHowever, when pci_epc_set_bar() fails, the error path:\n\n  pci_epc_set_bar() ->\n    pci_epf_free_space()\n\ndoes not clear the previous assignment to epf_test->reg[bar].\n\nThen, if the host reboots, the PERST# deassertion restarts the BAR\nallocation sequence with the same allocation failure (no free inbound\nwindow), creating a double free situation since epf_test->reg[bar] was\ndeallocated and is still non-NULL.\n\nThus, make sure that pci_epf_alloc_space() and pci_epf_free_space()\ninvocations are symmetric, and as such, set epf_test->reg[bar] to NULL\nwhen memory is freed.\n\n[kwilczynski: commit log]"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"e2e43854ab72a9d4908ac2bf6087f80aa138a8b5","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"761db4ca3a469f2070757acd4e104dff5125ca99","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"fe2329eff5bee461ebcafadb6ca1df0cbf5945fd","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee","versionType":"git"},{"version":"349e7a85b25fa6ee82902d9be2cc5f3bec815120","status":"affected","lessThan":"934e9d137d937706004c325fa1474f9e3f1ba10a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/endpoint/functions/pci-epf-test.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.12","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.31","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.14.9","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/pci/endpoint/functions/pci-epf-test.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e2e43854ab72a9d4908ac2bf6087f80aa138a8b5"},{"url":"https://git.kernel.org/stable/c/761db4ca3a469f2070757acd4e104dff5125ca99"},{"url":"https://git.kernel.org/stable/c/fe2329eff5bee461ebcafadb6ca1df0cbf5945fd"},{"url":"https://git.kernel.org/stable/c/8b83893d1f6c6061a7d58169ecdf9d5ee9f306ee"},{"url":"https://git.kernel.org/stable/c/934e9d137d937706004c325fa1474f9e3f1ba10a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:21:39.173Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.12.31"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.14.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.12","versionEndExcluding":"6.15"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}