Cloudanix VulnDB

CVE-2025-37984

None

CVSS

—

EPSS

0.2%

Published

May 20, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A math error in the Linux kernel's handling of certain security calculations could let attackers interfere with memory in rare cases, potentially affecting system stability or allowing unauthorized access.

Chainable
Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Memory Corruption
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Potential integer overflow in DIV_ROUND_UP() when ecdsa key_size() returns large values, leading to incorrect calculations in memory sizing for ECC operations and possible buffer mishandling in the Linux kernel crypto subsystem.

Why it matters to the business

On Linux systems using ECDSA crypto, this could enable memory corruption that disrupts kernel operations or allows privilege escalation, though the specific trigger conditions limit widespread impact; organizations running older kernels face elevated risk of stability issues or targeted attacks.

How an attack unfolds

An attacker supplies input that causes an ecdsa implementation's key_size() to return an oversized value or manipulates ASN.1 lengths passed to ecc_digits_from_bytes(), triggering the unsafe DIV_ROUND_UP() macro to produce an overflowed result that corrupts memory allocations during signature handling.

How to fix it

Upgrade the Linux kernel to version 6.6.99 or later, or apply commit f02f0218be412cff1c844addf58e002071be298b which replaces DIV_ROUND_UP with the hardened DIV_ROUND_UP_POW2 macro for key_size values.

How to confirm the fix worked

Confirm the running kernel version meets or exceeds 6.6.99, inspect crypto/ecdsa source for the new DIV_ROUND_UP_POW2 macro usage, and test ECDSA operations with boundary key sizes to verify correct behavior.

Typical attack path

  1. Identify systems running vulnerable Linux kernel versions with ECDSA crypto enabled
  2. Craft malicious key material or ASN.1 structures to force oversized key_size return values
  3. Trigger the DIV_ROUND_UP overflow to induce memory corruption
  4. Leverage the corruption for kernel-level code execution or denial of service

How to detect it

Review kernel logs and audit trails for ECDSA-related crashes or unusual signature processing errors; correlate with process activity involving crypto subsystems on systems that have not yet been patched.

What your security team should do

  • Prioritize kernel upgrades on all production systems within the next maintenance window
  • Audit workloads relying on ECDSA in the kernel for exposure and consider disabling if unnecessary
  • Monitor kernel logs for related crypto errors or crashes as an interim detection measure

The record

In the Linux kernel, the following vulnerability has been resolved: crypto: ecdsa - Harden against integer overflows in DIV_ROUND_UP() Herbert notes that DIV_ROUND_UP() may overflow unnecessarily if an ecdsa implementation's ->key_size() callback returns an unusually large value. Herbert instead suggests (for a division by 8): X / 8 + !!(X & 7) Based on this formula, introduce a generic DIV_ROUND_UP_POW2() macro and use it in lieu of DIV_ROUND_UP() for ->key_size() return values. Additionally, use the macro in ecc_digits_from_bytes(), whose "nbytes" parameter is a ->key_size() return value in some instances, or a user-specified ASN.1 length in the case of ecdsa_get_signature_rs().

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:14 linux 0 No fix
Debian:14 linux 0 6.16.3-1
Linux Kernel 0 6.6.99
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_14 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_14 0 1-150600.13.3.4
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7-RT_Update_3 0 1-150700.1.5.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.65.1.150600.12.28.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP7 kernel-rt 0 6.4.0-150700.7.13.1
SUSE:Real Time Module 15 SP7 kernel-source-rt 0 6.4.0-150700.7.13.1
SUSE:Real Time Module 15 SP7 kernel-syms-rt 0 6.4.0-150700.7.13.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.65.1.150600.12.28.4
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.65.1

Related vulnerabilities