← Back to CVE Explorer

CVE-2026-80835

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: crypto: qcom-rng - Remove crypto_rng interface qcom-rng.c exposes the same hardware through two completely separate interfaces, crypto_rng and hwrng. However, the implementation of this is buggy because it permits generation operations from these interfaces to run concurrently with each other, accessing the same registers. That is, qcom_rng_generate() synchronizes with itself but not with qcom_hwrng_read(). This results in potential repetition of output from the RNG, output of non-random values, etc. Fortunately, there's actually no point in hardware RNG drivers implementing the crypto_rng interface. It's not actually used by anything besides the "rng" algorithm type of AF_ALG, which in turn is not actually used in practice. Other crypto_rng hardware drivers are likewise being phased out, leaving just the hwrng support. Thus, remove it to simplify the code and avoid conflict (and confusion) with the hwrng interface which is the one that actually matters.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-04 16:18:11.790000
Last modified
2026-10-19 09:17:18.783000
View original CVE JSON
{
  "id": "CVE-2026-80835",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-04T16:18:11.790",
  "lastModified": "2026-10-19T09:17:18.783",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qcom-rng - Remove crypto_rng interface\n\nqcom-rng.c exposes the same hardware through two completely separate\ninterfaces, crypto_rng and hwrng.  However, the implementation of this\nis buggy because it permits generation operations from these interfaces\nto run concurrently with each other, accessing the same registers.  That\nis, qcom_rng_generate() synchronizes with itself but not with\nqcom_hwrng_read().  This results in potential repetition of output from\nthe RNG, output of non-random values, etc.\n\nFortunately, there's actually no point in hardware RNG drivers\nimplementing the crypto_rng interface.  It's not actually used by\nanything besides the \"rng\" algorithm type of AF_ALG, which in turn is\nnot actually used in practice.  Other crypto_rng hardware drivers are\nlikewise being phased out, leaving just the hwrng support.\n\nThus, remove it to simplify the code and avoid conflict (and confusion)\nwith the hwrng interface which is the one that actually matters."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/crypto/Kconfig",
            "drivers/crypto/qcom-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "f29cd5bb64c258f29b4c49452532481f50eb43ca",
              "lessThan": "bb474dcd9d0224264a27a60891f00872b879835f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f29cd5bb64c258f29b4c49452532481f50eb43ca",
              "lessThan": "14d9ee8286460a7b82f3b8610b5c7ebf4550b06b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f29cd5bb64c258f29b4c49452532481f50eb43ca",
              "lessThan": "843e2bdaf8deb8bc341203094dfe582e38ea4af2",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f29cd5bb64c258f29b4c49452532481f50eb43ca",
              "lessThan": "669d940351eda316b82e24986e2e0e057653ce7d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "f29cd5bb64c258f29b4c49452532481f50eb43ca",
              "lessThan": "2ecdf5c9910e20f73639bc322f0518a3439d17c0",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/crypto/Kconfig",
            "drivers/crypto/qcom-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.7",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.7",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.108",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.49",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.1.13",
              "lessThanOrEqual": "7.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.3",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/14d9ee8286460a7b82f3b8610b5c7ebf4550b06b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/2ecdf5c9910e20f73639bc322f0518a3439d17c0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/669d940351eda316b82e24986e2e0e057653ce7d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/843e2bdaf8deb8bc341203094dfe582e38ea4af2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bb474dcd9d0224264a27a60891f00872b879835f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}