← Back to CVE Explorer

CVE-2026-64311

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: crypto: loongson - Remove broken and unused loongson-rng The loongson-rng rng_alg has several vulnerabilities, including not providing forward security, and a use-after-free bug due to the use of wait_for_completion_interruptible(). Meanwhile, the rng_alg framework doesn't really have any purpose in the first place other than to access the software algorithms crypto/drbg.c and crypto/jitterentropy.c. Hardware-specific rng_algs have no in-kernel user, and unlike hwrng there's no feed into the actual Linux RNG. As such, there's really no point to this code. There are of course other rng_alg drivers that are similarly unused, but they're similarly in the process of being phased out, e.g. https://lore.kernel.org/r/[email protected] and https://lore.kernel.org/r/[email protected] Given that, there's no point in fixing forward these vulnerabilities, and it makes much more sense to simply roll back the addition of this driver. If this platform provides TRNG (not PRNG) functionality, it could make sense to add a hwrng driver, but it would be quite different.

Severity
HIGH
CVSS score
7.8 (v3.1)
Vulnerability status
Analyzed
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-07-25 10:17:12.263000
Last modified
2026-10-24 13:10:00.147000
View original CVE JSON
{
  "id": "CVE-2026-64311",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-07-25T10:17:12.263",
  "lastModified": "2026-10-24T13:10:00.147",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: loongson - Remove broken and unused loongson-rng\n\nThe loongson-rng rng_alg has several vulnerabilities, including not\nproviding forward security, and a use-after-free bug due to the use of\nwait_for_completion_interruptible().\n\nMeanwhile, the rng_alg framework doesn't really have any purpose in the\nfirst place other than to access the software algorithms crypto/drbg.c\nand crypto/jitterentropy.c.  Hardware-specific rng_algs have no\nin-kernel user, and unlike hwrng there's no feed into the actual Linux\nRNG.  As such, there's really no point to this code.  There are of\ncourse other rng_alg drivers that are similarly unused, but they're\nsimilarly in the process of being phased out, e.g.\nhttps://lore.kernel.org/r/[email protected] and\nhttps://lore.kernel.org/r/[email protected]\n\nGiven that, there's no point in fixing forward these vulnerabilities,\nand it makes much more sense to simply roll back the addition of this\ndriver.  If this platform provides TRNG (not PRNG) functionality, it\ncould make sense to add a hwrng driver, but it would be quite different."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ncrypto: loongson - Eliminar loongson-rng roto y sin usar\n\nEl rng_alg loongson-rng tiene varias vulnerabilidades, incluyendo no proporcionar seguridad hacia adelante, y un error de uso después de liberación debido al uso de wait_for_completion_interruptible().\n\nMientras tanto, el framework rng_alg realmente no tiene ningún propósito en primer lugar aparte de acceder a los algoritmos de software crypto/drbg.c y crypto/jitterentropy.c. Los rng_algs específicos de hardware no tienen un usuario en el kernel, y a diferencia de hwrng no hay alimentación al RNG de Linux real. Como tal, realmente no tiene sentido este código. Hay, por supuesto, otros controladores rng_alg que están igualmente sin usar, pero están igualmente en proceso de ser eliminados gradualmente, p. ej. https://lore.kernel.org/r/[email protected] y https://lore.kernel.org/r/[email protected]\n\nDado eso, no tiene sentido corregir hacia adelante estas vulnerabilidades, y tiene mucho más sentido simplemente revertir la adición de este controlador. Si esta plataforma proporciona funcionalidad TRNG (no PRNG), podría tener sentido añadir un controlador hwrng, pero sería bastante diferente."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "MAINTAINERS",
            "arch/loongarch/configs/loongson32_defconfig",
            "arch/loongarch/configs/loongson64_defconfig",
            "drivers/crypto/Kconfig",
            "drivers/crypto/Makefile",
            "drivers/crypto/loongson/Kconfig",
            "drivers/crypto/loongson/Makefile",
            "drivers/crypto/loongson/loongson-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "766b2d724c8df071031412eea902b566a0049c31",
              "lessThan": "037ec8353711c79353b12d5634e0c9ff363a9efa",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "766b2d724c8df071031412eea902b566a0049c31",
              "lessThan": "43de8b9f01b7dd2f6ca5360c6bf2f203c02288dc",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "766b2d724c8df071031412eea902b566a0049c31",
              "lessThan": "af3d1bb9a09daf928fc3f173689fb7904d6a6d4f",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "MAINTAINERS",
            "arch/loongarch/configs/loongson32_defconfig",
            "arch/loongarch/configs/loongson64_defconfig",
            "drivers/crypto/Kconfig",
            "drivers/crypto/Makefile",
            "drivers/crypto/loongson/Kconfig",
            "drivers/crypto/loongson/Makefile",
            "drivers/crypto/loongson/loongson-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.18",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.18",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.39",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.4",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
          "baseScore": 7.8,
          "baseSeverity": "HIGH",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 5.9
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-416"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.18",
              "versionEndExcluding": "6.18.39",
              "matchCriteriaId": "CA2CE3BD-0548-4984-8C39-F3D3DF4D64E1"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.19",
              "versionEndExcluding": "7.1.4",
              "matchCriteriaId": "6228DDD6-4557-4AA3-9F43-AB995D471E42"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/037ec8353711c79353b12d5634e0c9ff363a9efa",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/43de8b9f01b7dd2f6ca5360c6bf2f203c02288dc",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://git.kernel.org/stable/c/af3d1bb9a09daf928fc3f173689fb7904d6a6d4f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "tags": [
        "Patch"
      ]
    }
  ]
}