CVE-2025-39956: igc: don't fail igc_probe() on LED setup error
In the Linux kernel, the following vulnerability has been resolved:
igc: don't fail igcprobe() on LED setup error
When igcledsetup() fails, igcprobe() fails and triggers kernel panic in freenetdev() since unregisternetdev() is not called. [1] This behavior can be tested using fault-injection framework, especially the failslab feature. [2]
Since LED support is not mandatory, treat LED setup failures as non-fatal and continue probe with a warning message, consequently avoiding the kernel panic.
[1] kernel BUG at net/core/dev.c:12047! Oops: invalid opcode: 0000 [#1] SMP NOPTI CPU: 0 UID: 0 PID: 937 Comm: repro-igc-led-e Not tainted 6.17.0-rc4-enjuk-tnguy-00865-gc4940196ab02 #64 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:freenetdev+0x278/0x2b0 [...] Call Trace: <TASK> igcprobe+0x370/0x910 localpciprobe+0x3a/0x80 pcideviceprobe+0xd1/0x200 [...]
[2] #!/bin/bash -ex
FAILSLABPATH=/sys/kernel/debug/failslab/ DEVICE=0000:00:05.0 STARTADDR=$(grep " igcledsetup" /proc/kallsyms \ | awk '{printf("0x%s", $1)}') ENDADDR=$(printf "0x%x" $((STARTADDR + 0x100)))
echo $STARTADDR > $FAILSLABPATH/require-start echo $ENDADDR > $FAILSLABPATH/require-end echo 1 > $FAILSLABPATH/times echo 100 > $FAILSLABPATH/probability echo N > $FAILSLABPATH/ignore-gfp-wait
echo $DEVICE > /sys/bus/pci/drivers/igc/bind
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Use the fault-injection (failslab) test settings shown to ensure LED setup failures do not crash the kernel: write the specified DEVICE bind target to /sys/bus/pci/drivers/igc/bind, then set /sys/kernel/debug/failslab/require-end and /sys/kernel/debug/failslab/require-start, set /sys/kernel/debug/failslab/times to 1, /sys/kernel/debug/failslab/probability to 100, and /sys/kernel/debug/failslab/ignore-gfp-wait to N. Confirm the mitigation behavior: igc_probe() continues probing even when igc_led_setup() fails and does not trigger kernel panic in free_netdev()/unregister_netdev path.
Linux kernel (igc driver / LED setup) failslab injection behavior (require-start/require-end/times/probability/ignore-gfp-wait) = 1/100/N
Event History
Frequently Asked Questions
What is the severity of CVE-2025-39956?
CVE-2025-39956 has a high severity rating due to the potential for kernel panic situations.
How do I fix CVE-2025-39956?
To fix CVE-2025-39956, update your Linux kernel to the latest stable release that addresses the vulnerability.
Which versions of the Linux kernel are affected by CVE-2025-39956?
CVE-2025-39956 affects multiple versions of the Linux kernel; it is recommended to check the specific release notes for your distribution.
What impact does CVE-2025-39956 have on system stability?
CVE-2025-39956 can lead to kernel panics and potentially cause system instability when igc_probe() fails.
Is CVE-2025-39956 being actively exploited?
As of now, there is no public indication that CVE-2025-39956 is being actively exploited in the wild.