CVE-2025-71132: smc91x: fix broken irq-context in PREEMPT_RT
In the Linux kernel, the following vulnerability has been resolved:
smc91x: fix broken irq-context in PREEMPT_RT
When smc91x.c is built with PREEMPT_RT, the following splat occurs
in FVP_RevC:
[ 13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000
[ 13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106]
[ 13.062137] preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work
[ 13.062266] C
** replaying previous printk message **
[ 13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)}
[ 13.062353] Hardware name: , BIOS
[ 13.062382] Workqueue: mld mld_ifc_work
[ 13.062469] Call trace:
[ 13.062494] show_stack+0x24/0x40 (C)
[ 13.062602] __dump_stack+0x28/0x48
[ 13.062710] dump_stack_lvl+0x7c/0xb0
[ 13.062818] dump_stack+0x18/0x34
[ 13.062926] process_scheduled_works+0x294/0x450
[ 13.063043] worker_thread+0x260/0x3d8
[ 13.063124] kthread+0x1c4/0x228
[ 13.063235] ret_from_fork+0x10/0x20
This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT,
but smc_special_unlock() does not restore IRQs on PREEMPT_RT.
The reason is that smc_special_unlock() calls spin_unlock_irqrestore(),
and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke
rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.
To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().
Security readout for executives and security teams
Plain-English summary
A locking error in the Linux smc91x network driver can leave interrupts improperly disabled on real-time kernels, potentially causing serious availability problems. Exposure is narrow: the driver must be present and PREEMPT_RT enabled. The supplied CVSS score is 7.5, but the bundle provides no evidence of exploitation in the wild.
Executive priority
Prioritize promptly where PREEMPT_RT systems use smc91x for critical connectivity; otherwise, schedule normal patching after confirming configuration. The high score reflects potential loss of availability, not confidentiality or integrity compromise. Current evidence does not justify an emergency response across Linux estates generally.
Technical view
On PREEMPT_RT, smc_special_trylock() disabled IRQs while smc_special_unlock() failed to restore the expected IRQ context. This disrupted RCU and bottom-half handling during network transmission, producing a workqueue atomic/lock/RCU leak warning. The upstream correction replaces the custom try-lock operation with spin_trylock_irqsave(). Impact is availability-only according to the supplied CVSS vector.
Likely exposure
Likely limited to Linux systems using the smc91x Ethernet driver with PREEMPT_RT. The bundle identifies affected 5.15, 6.1, 6.6, 6.12, 6.18, and 6.19 lines, but its flattened version data does not clearly establish exact vulnerable ranges. Confirm exposure against the applicable stable-branch commit or distribution advisory.
Exploitation context
CISA KEV status is false, and the supplied sources do not report active exploitation or a public exploit. Although the CVSS vector marks network reachability, successful impact appears dependent on the smc91x driver, PREEMPT_RT, and relevant network activity. Treat claims of broad remote exploitability as unverified.
Researcher notes
The documented failure was reproduced on FVP_RevC with a PREEMPT_RT 6.18 development kernel. The causal account centers on asymmetric IRQ handling and RCU bottom-half state during __dev_queue_xmit(). No CWE, exploit proof, attack trigger details, or confirmed fixed package versions are supplied. Stable commits exist for multiple maintained branches.
Mitigation direction
Update to a vendor kernel containing the applicable referenced stable-branch fix.
If immediate updating is impossible, assess whether the smc91x driver can be safely disabled.
Prioritize affected real-time systems supporting critical networked or operational workloads.
Consult the Linux distribution vendor for exact fixed package versions.
Validation and detection
Confirm whether the running kernel uses PREEMPT_RT.
Determine whether the smc91x driver is built, loaded, and attached to active hardware.
Map the installed kernel branch to its applicable referenced stable commit.
Review kernel logs for smc91x-related atomic, lock, RCU, or workqueue warnings.
After remediation, verify the vendor fix is present and repeat normal network stability testing.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-71132 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.