Skip to content
Heist/ feed
Back to feed
HighFix available

crypto: ecc - Fix carry overflow in vli multiplication

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: crypto: ecc - Fix carry overflow in vli multiplication The carry flag calculation fails when r01.m_high is saturated (0xFFFFFFFFFFFFFFFF) and addition of lower bits overflows. The condition (r01.m_high < product.m_high) doesn't handle the case where r01.m_high == product.m_high and an additional carry exists from lower-bit overflow. When commit 3c4b23901a0c ("crypto: ecdh - Add ECDH software support") introduced crypto/ecc.c, it split the muladd() function in the micro-ecc library into separate mul_64_64() and add_128_128() helpers. It seems the check got lost in translation. Add proper handling for this boundary by accounting for the carry from the lower addition.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.261, 5.15.212, 6.1.178, 6.12.96, 6.18.39, 6.6.145, 7.1.4
CVEs
CVE-2026-64313
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 06:28 UTC · Revision 1

Source evidence

crypto: ecc - Fix carry overflow in vli multiplication

core-osv · Original source

Published 25 Jul 2026, 08:49 UTC

In the Linux kernel, the following vulnerability has been resolved: crypto: ecc - Fix carry overflow in vli multiplication The carry flag calculation fails when r01.m_high is saturated (0xFFFFFFFFFFFFFFFF) and addition of lower bits overflows. The condition (r01.m_high < product.m_high) doesn't handle the case where r01.m_high == product.m_high and an additional carry exists from lower-bit overflow. When commit 3c4b23901a0c ("crypto: ecdh - Add ECDH software support") introduced crypto/ecc.c, it split the muladd() function in the micro-ecc library into separate mul_64_64() and add_128_128() helpers. It seems the check got lost in translation. Add proper handling for this boundary by accounting for the carry from the lower addition.

osv:CVE-2026-64313

Kernel

Fixed versions: 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4

Complete source record
{
  "id": "85843663ec3423a127a4eea83030d091b1ecf18e831256816da62817ec544a42",
  "url": "https://osv.dev/vulnerability/CVE-2026-64313",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "crypto: ecc - Fix carry overflow in vli multiplication",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: crypto: ecc - Fix carry overflow in vli multiplication The carry flag calculation fails when r01.m_high is saturated (0xFFFFFFFFFFFFFFFF) and addition of lower bits overflows. The condition (r01.m_high < product.m_high) doesn't handle the case where r01.m_high == product.m_high and an additional carry exists from lower-bit overflow. When commit 3c4b23901a0c (\"crypto: ecdh - Add ECDH software support\") introduced crypto/ecc.c, it split the muladd() function in the micro-ecc library into separate mul_64_64() and add_128_128() helpers. It seems the check got lost in translation. Add proper handling for this boundary by accounting for the carry from the lower addition.",
    "evidence": "osv:CVE-2026-64313",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.261",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.212",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.178",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.145",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.96",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.39",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.1.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-64313",
      "aliases": [
        "CVE-2026-64313"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "3c4b23901a0c766879dff680cd6bdab47bcdbbd2"
                },
                {
                  "fixed": "d11b2bb99bec1f5557c01cac42231e23745f49b8"
                },
                {
                  "fixed": "b709e0e768766abe29a49e1c1922a1604be602f4"
                },
                {
                  "fixed": "24a54dfa06d09813b4802a374fad3d2c0e16a884"
                },
                {
                  "fixed": "677450e5ef850c4d28b7956aa01104548c2a894e"
                },
                {
                  "fixed": "5275e0fca256d081e2e7d4ba3dd8216c6e50d44e"
                },
                {
                  "fixed": "774ddddf5eb26eeca177350413e3e2bc50930ee9"
                },
                {
                  "fixed": "ebaae7c4251cc0cdb2602f334d4f08a3e82d271e"
                },
                {
                  "fixed": "27b536a2ec8e2f85a0380c2d13c9ecbc7aaab406"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64313.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.8.0"
                },
                {
                  "fixed": "5.10.261"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.212"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.178"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.145"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.96"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.39"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.1.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64313.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.361972321Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/24a54dfa06d09813b4802a374fad3d2c0e16a884",
        "https://git.kernel.org/stable/c/27b536a2ec8e2f85a0380c2d13c9ecbc7aaab406",
        "https://git.kernel.org/stable/c/5275e0fca256d081e2e7d4ba3dd8216c6e50d44e",
        "https://git.kernel.org/stable/c/677450e5ef850c4d28b7956aa01104548c2a894e",
        "https://git.kernel.org/stable/c/774ddddf5eb26eeca177350413e3e2bc50930ee9",
        "https://git.kernel.org/stable/c/b709e0e768766abe29a49e1c1922a1604be602f4",
        "https://git.kernel.org/stable/c/d11b2bb99bec1f5557c01cac42231e23745f49b8",
        "https://git.kernel.org/stable/c/ebaae7c4251cc0cdb2602f334d4f08a3e82d271e",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64313.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-64313",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64313.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-64313",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 493053,
  "published_at": "2026-07-25T08:49:44.546+00:00"
}