CVE-2021-47005
NoneCVSS
—
EPSS
0.2%
Published
Feb 28, 2024
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel can make computers crash when handling certain hardware connection features that some drivers do not support.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
NULL pointer dereference in pci_epf_test_alloc_space when pci_epc_ops->get_features returns NULL, triggered during pci_epf_test_bind without prior validation, resulting in kernel panic.
Why it matters to the business
Unexpected system crashes or reboots on Linux hosts using PCI endpoint framework when platform drivers omit get_features implementation, leading to service disruption and potential data loss in affected environments.
How an attack unfolds
An attacker with local access creates a symbolic link via configfs that invokes pci_epf_bind and pci_epc_epf_link, reaching pci_epf_test_bind which dereferences the unchecked pci_epc_feature pointer and crashes the kernel.
How to fix it
Apply the upstream kernel patch adding the pci_epc_feature NULL check and -ENOTSUPP return in pci_epf_test_bind; rebuild and deploy updated kernel images to all affected systems.
How to confirm the fix worked
Inspect kernel source for the added pointer check before accessing pci_epc_feature; boot test systems exercising configfs symlink operations on PCI endpoint test functions and confirm absence of NULL dereference oops.
Typical attack path
- Obtain local shell or process execution on target Linux system
- Interact with configfs to issue symlinkat on PCI endpoint function
- Trigger pci_epf_test_bind path without get_features implementation
- Cause NULL dereference and kernel oops/panic
How to detect it
Search kernel logs and dmesg for call traces containing pci_epf_test_bind, pci_epf_bind, and the NULL dereference instruction pointer; correlate with configfs symlink activity preceding the crash.
- pci_epf_test_bind+0xf4/0x388
- pci_epf_bind+0x3c/0x80
- pci_epc_epf_link+0xa8/0xcc
- end trace a438e3c5a24f9df0
- f9400400
What your security team should do
- Patch all Linux kernels to include the NULL check fix immediately
- Audit systems exposing configfs or PCI endpoint test modules for exposure
- Monitor kernel logs for pci_epf_test_bind related crashes as interim detection
The record
In the Linux kernel, the following vulnerability has been resolved: PCI: endpoint: Fix NULL pointer dereference for ->get_features() get_features ops of pci_epc_ops may return NULL, causing NULL pointer dereference in pci_epf_test_alloc_space function. Let us add a check for pci_epc_feature pointer in pci_epf_test_bind before we access it to avoid any such NULL pointer dereference and return -ENOTSUPP in case pci_epc_feature is not found. When the patch is not applied and EPC features is not implemented in the platform driver, we see the following dump due to kernel NULL pointer dereference. Call trace: pci_epf_test_bind+0xf4/0x388 pci_epf_bind+0x3c/0x80 pci_epc_epf_link+0xa8/0xcc configfs_symlink+0x1a4/0x48c vfs_symlink+0x104/0x184 do_symlinkat+0x80/0xd4 __arm64_sys_symlinkat+0x1c/0x24 el0_svc_common.constprop.3+0xb8/0x170 el0_svc_handler+0x70/0x88 el0_svc+0x8/0x640 Code: d2800581 b9403ab9 f9404ebb 8b394f60 (f9400400) ---[ end trace a438e3c5a24f9df0 ]---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 5.10.38-1 |
| Debian:12 | linux | 0 | 5.10.38-1 |
| Debian:13 | linux | 0 | 5.10.38-1 |
| SUSE:Enterprise Storage 7.1 | kernel-64kb | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Enterprise Storage 7.1 | kernel-docs | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-obs-build | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-preempt | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-source | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Enterprise Storage 7.1 | kernel-syms | 0 | 5.3.18-150300.59.153.1 |
| SUSE:Linux Enterprise High Availability Extension 15 SP2 | kernel-default | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Availability Extension 15 SP3 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-default | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-default-base | 0 | 5.3.18-150200.24.183.1.150200.9.93.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-docs | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-obs-build | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-preempt | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-source | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | kernel-syms | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-64kb | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-docs | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-obs-build | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-preempt | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-source | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | kernel-syms | 0 | 5.3.18-150300.59.153.1 |
| SUSE:Linux Enterprise Live Patching 15 SP2 | kernel-default | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Live Patching 15 SP2 | kernel-livepatch-SLE15-SP2_Update_46 | 0 | 1-150200.5.3.2 |
| SUSE:Linux Enterprise Live Patching 15 SP3 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Live Patching 15 SP3 | kernel-livepatch-SLE15-SP3_Update_42 | 0 | 1-150300.7.3.2 |
| SUSE:Linux Enterprise Micro 5.1 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Micro 5.1 | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Linux Enterprise Micro 5.1 | kernel-rt | 0 | 5.3.18-150300.161.1 |
| SUSE:Linux Enterprise Micro 5.1 | kernel-source-rt | 0 | 5.3.18-150300.161.1 |
| SUSE:Linux Enterprise Micro 5.2 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Micro 5.2 | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Linux Enterprise Micro 5.2 | kernel-rt | 0 | 5.3.18-150300.161.1 |
| SUSE:Linux Enterprise Micro 5.2 | kernel-source-rt | 0 | 5.3.18-150300.161.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-default | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-default-base | 0 | 5.3.18-150200.24.183.1.150200.9.93.2 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-docs | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-obs-build | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-preempt | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-source | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | kernel-syms | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-64kb | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-docs | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-obs-build | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-preempt | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-source | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-syms | 0 | 5.3.18-150300.59.153.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | kernel-zfcpdump | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-default | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-default-base | 0 | 5.3.18-150200.24.183.1.150200.9.93.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-docs | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-obs-build | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-preempt | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-source | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | kernel-syms | 0 | 5.3.18-150200.24.183.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-default | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-default-base | 0 | 5.3.18-150300.59.153.2.150300.18.90.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-docs | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-obs-build | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-preempt | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-source | 0 | 5.3.18-150300.59.153.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | kernel-syms | 0 | 5.3.18-150300.59.153.1 |
| Ubuntu:22.04:LTS | linux-aws-6.8 | 0 | 6.8.0-1009.9~22.04.2 |
| Ubuntu:22.04:LTS | linux-azure-6.8 | 0 | 6.8.0-1008.8~22.04.1 |
| Ubuntu:22.04:LTS | linux-gcp-6.8 | 0 | 6.8.0-1010.11~22.04.1 |
| Ubuntu:22.04:LTS | linux-hwe-6.8 | 0 | 6.8.0-38.38~22.04.1 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | 0 | 5.15.0-1021.26 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.8 | 0 | 6.8.0-38.38.1~22.04.2 |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | 0 | 6.5.0-1004.4 |
| Ubuntu:22.04:LTS | linux-nvidia-6.8 | 0 | 6.8.0-1008.8~22.04.1 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | 0 | 6.5.0-1013.13~22.04.4 |
| Ubuntu:22.04:LTS | linux-oracle-6.8 | 0 | 6.8.0-1006.6~22.04.3 |
| Ubuntu:22.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv-6.8 | 0 | 6.8.0-38.38.1~22.04.1 |
| Ubuntu:22.04:LTS:for:NVIDIA:BlueField | linux-bluefield | 0 | 5.15.0-1011.13 |
| Ubuntu:24.04:LTS | linux-gke | 0 | 6.8.0-1003.5 |
| Ubuntu:24.04:LTS | linux-gkeop | 0 | 6.8.0-1001.3 |
| Ubuntu:24.04:LTS | linux-nvidia | 0 | 6.8.0-1007.7 |
| Ubuntu:24.04:LTS | linux-nvidia-lowlatency | 0 | 6.8.0-1009.9.1 |
| Ubuntu:24.04:LTS | linux-oem-6.11 | 0 | 6.11.0-1007.7 |
| Ubuntu:24.04:LTS | linux-oem-6.8 | 0 | 6.8.0-1003.3 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-raspi-realtime | 0 | 6.7.0-2001.1 |
| Ubuntu:24.04:LTS | linux-realtime | 0 | 6.8.0-1008.19 |
| Ubuntu:24.10 | linux-realtime | 0 | 6.11.0-1001.1 |
| Ubuntu:Pro:FIPS-preview:22.04:LTS | linux-aws-fips | 0 | 5.15.0-1051.56+fips1 |
| Ubuntu:Pro:FIPS-preview:22.04:LTS | linux-azure-fips | 0 | 5.15.0-1053.61+fips1 |
| Ubuntu:Pro:FIPS-preview:22.04:LTS | linux-fips | 0 | 5.15.0-73.80+fips1 |
| Ubuntu:Pro:FIPS-preview:22.04:LTS | linux-gcp-fips | 0 | 5.15.0-1048.56+fips1 |
| Ubuntu:Pro:FIPS-updates:18.04:LTS | linux-aws-fips | 0 | 4.15.0-2000.4 |
| Ubuntu:Pro:FIPS-updates:18.04:LTS | linux-azure-fips | 0 | 4.15.0-1002.2 |
| Ubuntu:Pro:FIPS-updates:18.04:LTS | linux-gcp-fips | 0 | 4.15.0-2013.14 |
| Ubuntu:Pro:FIPS-updates:20.04:LTS | linux-aws-fips | 0 | No fix |
| Ubuntu:Pro:FIPS-updates:20.04:LTS | linux-azure-fips | 0 | No fix |
| Ubuntu:Pro:FIPS-updates:20.04:LTS | linux-gcp-fips | 0 | No fix |
| Ubuntu:Pro:FIPS-updates:22.04:LTS | linux-aws-fips | 0 | 5.15.0-1052.57+fips1 |
| Ubuntu:Pro:FIPS-updates:22.04:LTS | linux-azure-fips | 0 | 5.15.0-1058.66+fips1 |
| Ubuntu:Pro:FIPS-updates:22.04:LTS | linux-fips | 0 | 5.15.0-92.102+fips1 |
| Ubuntu:Pro:FIPS-updates:22.04:LTS | linux-gcp-fips | 0 | 5.15.0-1048.56+fips1 |
| Ubuntu:Pro:FIPS:18.04:LTS | linux-aws-fips | 0 | 4.15.0-2000.4 |
| Ubuntu:Pro:FIPS:18.04:LTS | linux-azure-fips | 0 | 4.15.0-1002.2 |
| Ubuntu:Pro:FIPS:18.04:LTS | linux-gcp-fips | 0 | 4.15.0-1001.1 |
| Ubuntu:Pro:FIPS:20.04:LTS | linux-aws-fips | 0 | No fix |
| Ubuntu:Pro:FIPS:20.04:LTS | linux-azure-fips | 0 | No fix |
| Ubuntu:Pro:FIPS:20.04:LTS | linux-gcp-fips | 0 | No fix |
Related vulnerabilities
- CVE-2025-38562 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-38352 In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix… Also affects linux
- CVE-2025-22037 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-21760 In the Linux kernel, the following vulnerability has been resolved: ndisc: extend RCU… Also affects linux
- CVE-2025-21758 In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: add RCU… Also affects linux
- CVE-2025-21664 In the Linux kernel, the following vulnerability has been resolved: dm thin: make… Also affects linux
- CVE-2024-57946 In the Linux kernel, the following vulnerability has been resolved: virtio-blk: don't… Also affects linux
- CVE-2024-57945 In the Linux kernel, the following vulnerability has been resolved: riscv: mm: Fix the… Also affects linux