CVE-2025-22044: acpi: nfit: fix narrowing conversion in acpi_nfit_ctl

Published Apr 16, 2025
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

acpi: nfit: fix narrowing conversion in acpinfitctl

Syzkaller has reported a warning in tonfitbusuuid(): "only secondary bus families can be translated". This warning is emited if the argument is equal to NVDIMMBUSFAMILYNFIT == 0. Function acpinfitctl() first verifies that a user-provided value callpkg->ndfamily of type u64 is not equal to 0. Then the value is converted to int, and only after that is compared to NVDIMMBUSFAMILYMAX. This can lead to passing an invalid argument to acpinfitctl(), if callpkg->ndfamily is non-zero, while the lower 32 bits are zero.

Furthermore, it is best to return EINVAL immediately upon seeing the invalid user input. The WARNING is insufficient to prevent further undefined behavior based on other invalid user input.

All checks of the input value should be applied to the original variable callpkg->ndfamily.

[iweiny: update commit message]

Affected Software

9 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel>=5.9<5.10.236
Linux Linux kernel>=5.11<5.15.180
Linux Linux kernel>=5.16<6.1.134
Linux Linux kernel>=6.2<6.6.87
Linux Linux kernel>=6.7<6.12.23
Linux Linux kernel>=6.13<6.13.11
Linux Linux kernel>=6.14<6.14.2
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1
  2. Compensating control

    In acpi_nfit_ctl(), validate the original u64 input call_pkg->nd_family before narrowing it to int: reject values equal to 0 and values exceeding NVDIMM_BUS_FAMILY_MAX, returning EINVAL immediately for invalid input.

Event History

Apr 16, 2025
CVE Published
via MITRE·02:12 PM
Data Sourced
via MITRE·02:12 PM
DescriptionSeverity
Data Sourced
via NVD·03:15 PM
RemedyDescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What access does an attacker need to exploit this issue?

The CVSS vector indicates local access and low privileges are required. No user interaction is required.

2

What malformed input triggers the vulnerable path?

The affected path can be reached when the user-provided 64-bit nd_family value is nonzero but has its lower 32 bits set to zero. Conversion to int then narrows the value before validation, allowing an invalid bus-family argument to proceed.

3

What is the potential impact?

The issue is rated high severity with a CVSS 3.1 score of 7.1. The vector indicates high confidentiality and availability impact, with no integrity impact.

4

How does the fix change handling of invalid input?

The fix applies validation checks to the original 64-bit nd_family value rather than the narrowed int value. Invalid input is rejected immediately with EINVAL instead of relying on a warning and continuing into potentially undefined behavior.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203