CVE-2026-98480: nfc: trf7970a: power down on startup RX gain failure
In the Linux kernel, the following vulnerability has been resolved:
nfc: trf7970a: power down on startup RX gain failure
trf7970astartup() powers up the device before applying the optional RX gain reduction. If the register read or write fails, it returns without undoing that power-up. Probe's unwind only drops the separate regulator references acquired by probe, leaving the additional VIN enable from startup unbalanced. The system resume caller also has no power-down on this error.
Call trf7970apowerdown() before returning the RX gain error to deassert the enable GPIOs, release the startup VIN reference and restore the powered-off state. Runtime PM has not been enabled yet, so the full shutdown helper is not appropriate here. Preserve the original SPI error.
This issue was identified during our ongoing static-analysis research while reviewing kernel code.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Call trf7970a_power_down() before returning the startup RX gain error, including the system-resume error path, to deassert the enable GPIOs, release the startup VIN reference, restore the powered-off state, and preserve the original SPI error.
Event History
Frequently Asked Questions
When can the device be left powered on unexpectedly?
The condition occurs when trf7970a_startup() has powered up the device and then an optional RX gain reduction register read or write fails. The affected error paths are during probe startup and system resume.
What hardware or software failure is required to trigger the issue?
An SPI register access must fail while applying the optional RX gain reduction after the device has been powered up. The available information does not identify a remote or unprivileged trigger.
What is the operational impact if the error occurs?
The startup VIN enable reference can remain unbalanced, and the device may not return to its powered-off state. Probe cleanup drops only the separate regulator references acquired during probe, while the system-resume caller also lacked a power-down action on this error.
What does the fix do?
The fix calls trf7970a_power_down() before returning the original RX gain SPI error. This deasserts enable GPIOs, releases the startup VIN reference, and restores the powered-off state.