GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2022-48629 (GCVE-0-2022-48629)

Vulnerability from cvelistv5 – Published: 2024-03-05 11:18 – Updated: 2026-08-05 08:51
VLAI
Title
crypto: qcom-rng - ensure buffer for generate is completely filled
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: qcom-rng - ensure buffer for generate is completely filled The generate function in struct rng_alg expects that the destination buffer is completely filled if the function returns 0. qcom_rng_read() can run into a situation where the buffer is partially filled with randomness and the remaining part of the buffer is zeroed since qcom_rng_generate() doesn't check the return value. This issue can be reproduced by running the following from libkcapi: kcapi-rng -b 9000000 > OUTFILE The generated OUTFILE will have three huge sections that contain all zeros, and this is caused by the code where the test 'val & PRNG_STATUS_DATA_AVAIL' fails. Let's fix this issue by ensuring that qcom_rng_read() always returns with a full buffer if the function returns success. Let's also have qcom_rng_generate() return the correct value. Here's some statistics from the ent project (https://www.fourmilab.ch/random/) that shows information about the quality of the generated numbers: $ ent -c qcom-random-before Value Char Occurrences Fraction 0 606748 0.067416 1 33104 0.003678 2 33001 0.003667 ... 253 � 32883 0.003654 254 � 33035 0.003671 255 � 33239 0.003693 Total: 9000000 1.000000 Entropy = 7.811590 bits per byte. Optimum compression would reduce the size of this 9000000 byte file by 2 percent. Chi square distribution for 9000000 samples is 9329962.81, and randomly would exceed this value less than 0.01 percent of the times. Arithmetic mean value of data bytes is 119.3731 (127.5 = random). Monte Carlo value for Pi is 3.197293333 (error 1.77 percent). Serial correlation coefficient is 0.159130 (totally uncorrelated = 0.0). Without this patch, the results of the chi-square test is 0.01%, and the numbers are certainly not random according to ent's project page. The results improve with this patch: $ ent -c qcom-random-after Value Char Occurrences Fraction 0 35432 0.003937 1 35127 0.003903 2 35424 0.003936 ... 253 � 35201 0.003911 254 � 34835 0.003871 255 � 35368 0.003930 Total: 9000000 1.000000 Entropy = 7.999979 bits per byte. Optimum compression would reduce the size of this 9000000 byte file by 0 percent. Chi square distribution for 9000000 samples is 258.77, and randomly would exceed this value 42.24 percent of the times. Arithmetic mean value of data bytes is 127.5006 (127.5 = random). Monte Carlo value for Pi is 3.141277333 (error 0.01 percent). Serial correlation coefficient is 0.000468 (totally uncorrelated = 0.0). This change was tested on a Nexus 5 phone (msm8974 SoC).
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-03-05 16:07 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d (git)
Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < 184f7bd08ce56f003530fc19f160d54e75bf5c9d (git)
Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < 0f9b7b8df17525e464294c916acc8194ce38446b (git)
Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd (git)
Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < 485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d (git)
Affected: ceec5f5b59882b871a722ca4d49b767a09a4bde9 , < a680b1832ced3b5fa7c93484248fd221ea0d614b (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.19
Unaffected: 0 , < 4.19 (semver)
Unaffected: 4.19.236 , ≤ 4.19.* (semver)
Unaffected: 5.4.187 , ≤ 5.4.* (semver)
Unaffected: 5.10.108 , ≤ 5.10.* (semver)
Unaffected: 5.15.31 , ≤ 5.15.* (semver)
Unaffected: 5.16.17 , ≤ 5.16.* (semver)
Unaffected: 5.17 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2022-48629",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-05T16:07:05.481936Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:16:36.965Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-03T15:17:55.625Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/crypto/qcom-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            },
            {
              "lessThan": "184f7bd08ce56f003530fc19f160d54e75bf5c9d",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            },
            {
              "lessThan": "0f9b7b8df17525e464294c916acc8194ce38446b",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            },
            {
              "lessThan": "ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            },
            {
              "lessThan": "485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            },
            {
              "lessThan": "a680b1832ced3b5fa7c93484248fd221ea0d614b",
              "status": "affected",
              "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/crypto/qcom-rng.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.236",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.187",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.108",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.31",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.16.*",
              "status": "unaffected",
              "version": "5.16.17",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.236",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.187",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.108",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.31",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.16.17",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.17",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qcom-rng - ensure buffer for generate is completely filled\n\nThe generate function in struct rng_alg expects that the destination\nbuffer is completely filled if the function returns 0. qcom_rng_read()\ncan run into a situation where the buffer is partially filled with\nrandomness and the remaining part of the buffer is zeroed since\nqcom_rng_generate() doesn\u0027t check the return value. This issue can\nbe reproduced by running the following from libkcapi:\n\n    kcapi-rng -b 9000000 \u003e OUTFILE\n\nThe generated OUTFILE will have three huge sections that contain all\nzeros, and this is caused by the code where the test\n\u0027val \u0026 PRNG_STATUS_DATA_AVAIL\u0027 fails.\n\nLet\u0027s fix this issue by ensuring that qcom_rng_read() always returns\nwith a full buffer if the function returns success. Let\u0027s also have\nqcom_rng_generate() return the correct value.\n\nHere\u0027s some statistics from the ent project\n(https://www.fourmilab.ch/random/) that shows information about the\nquality of the generated numbers:\n\n    $ ent -c qcom-random-before\n    Value Char Occurrences Fraction\n      0           606748   0.067416\n      1            33104   0.003678\n      2            33001   0.003667\n    ...\n    253   \ufffd        32883   0.003654\n    254   \ufffd        33035   0.003671\n    255   \ufffd        33239   0.003693\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.811590 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 2 percent.\n\n    Chi square distribution for 9000000 samples is 9329962.81, and\n    randomly would exceed this value less than 0.01 percent of the\n    times.\n\n    Arithmetic mean value of data bytes is 119.3731 (127.5 = random).\n    Monte Carlo value for Pi is 3.197293333 (error 1.77 percent).\n    Serial correlation coefficient is 0.159130 (totally uncorrelated =\n    0.0).\n\nWithout this patch, the results of the chi-square test is 0.01%, and\nthe numbers are certainly not random according to ent\u0027s project page.\nThe results improve with this patch:\n\n    $ ent -c qcom-random-after\n    Value Char Occurrences Fraction\n      0            35432   0.003937\n      1            35127   0.003903\n      2            35424   0.003936\n    ...\n    253   \ufffd        35201   0.003911\n    254   \ufffd        34835   0.003871\n    255   \ufffd        35368   0.003930\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.999979 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 0 percent.\n\n    Chi square distribution for 9000000 samples is 258.77, and randomly\n    would exceed this value 42.24 percent of the times.\n\n    Arithmetic mean value of data bytes is 127.5006 (127.5 = random).\n    Monte Carlo value for Pi is 3.141277333 (error 0.01 percent).\n    Serial correlation coefficient is 0.000468 (totally uncorrelated =\n    0.0).\n\nThis change was tested on a Nexus 5 phone (msm8974 SoC)."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - On Qualcomm phones (the driver\u0027s primary deployment; fix tested on Nexus 5), qcom-rng becomes crypto_default_rng and feeds Bluetooth SMP ECDH private-key generation (smp\u2192ecdh-nist-p256\u2192ecc_gen_privkey), so an adjacent Bluetooth attacker can exploit weak pairing keys.\nAC:L - qcom_rng_read() stops at the first clear PRNG_STATUS_DATA_AVAIL without waiting, so any multi-word generate (including 32-byte ECDH keys) systematically underfills while qcom_rng_generate() still returns 0; the fix\u0027s readl_poll_timeout confirms waiting is required for reliable full fills.\nPR:N - A Bluetooth-adjacent attacker needs no local account or capabilities on the victim; the weak keys are produced by in-kernel SMP pairing crypto. (AF_ALG rng is also reachable by unprivileged local users, but the highest-impact path is unauthenticated adjacent Bluetooth.)\nUI:N - Exploitation rides the normal Bluetooth SMP/LE Secure Connections key-agreement exchange; no additional victim action beyond ordinary pairing protocol participation is required.\nS:U - Impact stays within the device\u0027s own kernel crypto authority (broken Bluetooth link keys/traffic); there is no VM escape, IOMMU bypass, or other cross-authority boundary crossing.\nC:H - Underfilled RNG output yields low-entropy ECDH private keys and other crypto_default_rng secrets (and AF_ALG returns large zero runs), allowing decryption of Bluetooth traffic and disclosure of material that should have been confidential.\nI:H - The same weak ECDH/session keys enable MITM and forgery of Bluetooth SMP-protected traffic, and equally undermine integrity of any MAC/signature keys drawn from the underfilled stdrng.\nA:N - This defect only returns success with incomplete/zero-padded random data; it does not oops, panic, hang, or loop (the related infinite-loop DoS is CVE-2022-48630 from a later fix)."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:51:33.070Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
        },
        {
          "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
        },
        {
          "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
        },
        {
          "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
        },
        {
          "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
        },
        {
          "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
        }
      ],
      "title": "crypto: qcom-rng - ensure buffer for generate is completely filled",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-48629",
    "datePublished": "2024-03-05T11:18:06.562Z",
    "dateReserved": "2024-02-25T13:44:28.315Z",
    "dateUpdated": "2026-08-05T08:51:33.070Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-48629",
      "date": "2026-09-19",
      "epss": "0.00535",
      "percentile": "0.44048"
    },
    "fkie_nvd": {
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qcom-rng - ensure buffer for generate is completely filled\n\nThe generate function in struct rng_alg expects that the destination\nbuffer is completely filled if the function returns 0. qcom_rng_read()\ncan run into a situation where the buffer is partially filled with\nrandomness and the remaining part of the buffer is zeroed since\nqcom_rng_generate() doesn\u0027t check the return value. This issue can\nbe reproduced by running the following from libkcapi:\n\n    kcapi-rng -b 9000000 \u003e OUTFILE\n\nThe generated OUTFILE will have three huge sections that contain all\nzeros, and this is caused by the code where the test\n\u0027val \u0026 PRNG_STATUS_DATA_AVAIL\u0027 fails.\n\nLet\u0027s fix this issue by ensuring that qcom_rng_read() always returns\nwith a full buffer if the function returns success. Let\u0027s also have\nqcom_rng_generate() return the correct value.\n\nHere\u0027s some statistics from the ent project\n(https://www.fourmilab.ch/random/) that shows information about the\nquality of the generated numbers:\n\n    $ ent -c qcom-random-before\n    Value Char Occurrences Fraction\n      0           606748   0.067416\n      1            33104   0.003678\n      2            33001   0.003667\n    ...\n    253   \ufffd        32883   0.003654\n    254   \ufffd        33035   0.003671\n    255   \ufffd        33239   0.003693\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.811590 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 2 percent.\n\n    Chi square distribution for 9000000 samples is 9329962.81, and\n    randomly would exceed this value less than 0.01 percent of the\n    times.\n\n    Arithmetic mean value of data bytes is 119.3731 (127.5 = random).\n    Monte Carlo value for Pi is 3.197293333 (error 1.77 percent).\n    Serial correlation coefficient is 0.159130 (totally uncorrelated =\n    0.0).\n\nWithout this patch, the results of the chi-square test is 0.01%, and\nthe numbers are certainly not random according to ent\u0027s project page.\nThe results improve with this patch:\n\n    $ ent -c qcom-random-after\n    Value Char Occurrences Fraction\n      0            35432   0.003937\n      1            35127   0.003903\n      2            35424   0.003936\n    ...\n    253   \ufffd        35201   0.003911\n    254   \ufffd        34835   0.003871\n    255   \ufffd        35368   0.003930\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.999979 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 0 percent.\n\n    Chi square distribution for 9000000 samples is 258.77, and randomly\n    would exceed this value 42.24 percent of the times.\n\n    Arithmetic mean value of data bytes is 127.5006 (127.5 = random).\n    Monte Carlo value for Pi is 3.141277333 (error 0.01 percent).\n    Serial correlation coefficient is 0.000468 (totally uncorrelated =\n    0.0).\n\nThis change was tested on a Nexus 5 phone (msm8974 SoC)."
        },
        {
          "lang": "es",
          "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: crypto: qcom-rng: aseg\u00farese de que el b\u00fafer para generar est\u00e9 completamente lleno. La funci\u00f3n de generaci\u00f3n en la estructura rng_alg espera que el b\u00fafer de destino est\u00e9 completamente lleno si la funci\u00f3n devuelve 0. qcom_rng_read() puede ejecutarse en una situaci\u00f3n en la que el b\u00fafer est\u00e1 parcialmente lleno de aleatoriedad y la parte restante del b\u00fafer se pone a cero ya que qcom_rng_generate() no verifica el valor de retorno. Este problema se puede reproducir ejecutando lo siguiente desde libkcapi: kcapi-rng -b 9000000 \u0026gt; OUTFILE El OUTFILE generado tendr\u00e1 tres secciones enormes que contienen todos ceros, y esto se debe al c\u00f3digo donde falla la prueba \u0027val \u0026amp; PRNG_STATUS_DATA_AVAIL\u0027. Solucionemos este problema asegur\u00e1ndonos de que qcom_rng_read() siempre regrese con un b\u00fafer lleno si la funci\u00f3n tiene \u00e9xito. Tambi\u00e9n hagamos que qcom_rng_generate() devuelva el valor correcto. Aqu\u00ed hay algunas estad\u00edsticas del proyecto ent (https://www.fourmilab.ch/random/) que muestra informaci\u00f3n sobre la calidad de los n\u00fameros generados: $ ent -c qcom-random-before Valor Char Ocurrencias Fracci\u00f3n 0 606748 0.067416 1 33104 0,003678 2 33001 0,003667 ... 253 ? 32883 0,003654 254 ? 33035 0,003671 255 ? 33239 0,003693 Total: 9000000 1,000000 Entrop\u00eda = 7,811590 bits por byte. Una compresi\u00f3n \u00f3ptima reducir\u00eda el tama\u00f1o de este archivo de 9000000 bytes en un 2 por ciento. La distribuci\u00f3n de chi cuadrado para 9000000 muestras es 9329962,81 y aleatoriamente exceder\u00eda este valor menos del 0,01 por ciento de las veces. El valor medio aritm\u00e9tico de los bytes de datos es 119,3731 (127,5 = aleatorio). El valor de Monte Carlo para Pi es 3,197293333 (error del 1,77 por ciento). El coeficiente de correlaci\u00f3n serial es 0,159130 (totalmente no correlacionado = 0,0). Sin este parche, los resultados de la prueba de chi-cuadrado son del 0,01% y los n\u00fameros ciertamente no son aleatorios seg\u00fan la p\u00e1gina del proyecto de ent. Los resultados mejoran con este parche: $ ent -c qcom-random-after Valor Char Ocurrencias Fracci\u00f3n 0 35432 0.003937 1 35127 0.003903 2 35424 0.003936 ... 253 ? 35201 0,003911 254 ? 34835 0,003871 255 ? 35368 0,003930 Total: 9000000 1,000000 Entrop\u00eda = 7,999979 bits por byte. Una compresi\u00f3n \u00f3ptima reducir\u00eda el tama\u00f1o de este archivo de 9000000 bytes en un 0 por ciento. La distribuci\u00f3n de chi cuadrado para 9000000 muestras es 258,77 y aleatoriamente exceder\u00eda este valor el 42,24 por ciento de las veces. El valor medio aritm\u00e9tico de los bytes de datos es 127,5006 (127,5 = aleatorio). El valor de Monte Carlo para Pi es 3,141277333 (error del 0,01 por ciento). El coeficiente de correlaci\u00f3n serial es 0,000468 (totalmente no correlacionado = 0,0). Este cambio se prob\u00f3 en un tel\u00e9fono Nexus 5 (SoC msm8974)."
        }
      ],
      "id": "CVE-2022-48629",
      "lastModified": "2024-11-21T07:33:38.803",
      "published": "2024-03-05T12:15:45.707",
      "references": [
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
        },
        {
          "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
          "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
        },
        {
          "source": "af854a3a-2127-422b-91ae-364da2661108",
          "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
        }
      ],
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/crypto/qcom-rng.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "184f7bd08ce56f003530fc19f160d54e75bf5c9d",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0f9b7b8df17525e464294c916acc8194ce38446b",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a680b1832ced3b5fa7c93484248fd221ea0d614b",
                    "status": "affected",
                    "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/crypto/qcom-rng.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.19"
                  },
                  {
                    "lessThan": "4.19",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "4.19.*",
                    "status": "unaffected",
                    "version": "4.19.236",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.4.*",
                    "status": "unaffected",
                    "version": "5.4.187",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.108",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.31",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.16.*",
                    "status": "unaffected",
                    "version": "5.16.17",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "5.17",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "D1F07A37-C787-4411-B951-D5CEC6EFBA6D",
                    "versionEndExcluding": "4.19.236",
                    "versionStartIncluding": "4.19",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "D9FFB805-4ED2-4FAE-9EF4-8AB4BC9D8F5C",
                    "versionEndExcluding": "5.4.187",
                    "versionStartIncluding": "4.20",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "24925527-AC4A-4594-8D6C-3B34D31862C5",
                    "versionEndExcluding": "5.10.108",
                    "versionStartIncluding": "5.5",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "F25C317E-A673-47D1-844E-171C9BFDF352",
                    "versionEndExcluding": "5.15.31",
                    "versionStartIncluding": "5.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "DC9A634D-C617-4F8C-ADEF-AF94CE69D687",
                    "versionEndExcluding": "5.16.17",
                    "versionStartIncluding": "5.16",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "7BD5F8D9-54FA-4CB0-B4F0-CB0471FDDB2D",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "E6E34B23-78B4-4516-9BD8-61B33F4AC49A",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:*",
                    "matchCriteriaId": "C030FA3D-03F4-4FB9-9DBF-D08E5CAC51AA",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc4:*:*:*:*:*:*",
                    "matchCriteriaId": "B2D2677C-5389-4AE9-869D-0F881E80D923",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc5:*:*:*:*:*:*",
                    "matchCriteriaId": "EFA3917C-C322-4D92-912D-ECE45B2E7416",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc6:*:*:*:*:*:*",
                    "matchCriteriaId": "BED18363-5ABC-4639-8BBA-68E771E5BB3F",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc7:*:*:*:*:*:*",
                    "matchCriteriaId": "7F635F96-FA0A-4769-ADE8-232B3AC9116D",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:5.17:rc8:*:*:*:*:*:*",
                    "matchCriteriaId": "FD39FE73-2A9D-4C92-AE7A-CA22F84B228D",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qcom-rng - ensure buffer for generate is completely filled\n\nThe generate function in struct rng_alg expects that the destination\nbuffer is completely filled if the function returns 0. qcom_rng_read()\ncan run into a situation where the buffer is partially filled with\nrandomness and the remaining part of the buffer is zeroed since\nqcom_rng_generate() doesn\u0027t check the return value. This issue can\nbe reproduced by running the following from libkcapi:\n\n    kcapi-rng -b 9000000 \u003e OUTFILE\n\nThe generated OUTFILE will have three huge sections that contain all\nzeros, and this is caused by the code where the test\n\u0027val \u0026 PRNG_STATUS_DATA_AVAIL\u0027 fails.\n\nLet\u0027s fix this issue by ensuring that qcom_rng_read() always returns\nwith a full buffer if the function returns success. Let\u0027s also have\nqcom_rng_generate() return the correct value.\n\nHere\u0027s some statistics from the ent project\n(https://www.fourmilab.ch/random/) that shows information about the\nquality of the generated numbers:\n\n    $ ent -c qcom-random-before\n    Value Char Occurrences Fraction\n      0           606748   0.067416\n      1            33104   0.003678\n      2            33001   0.003667\n    ...\n    253   \ufffd        32883   0.003654\n    254   \ufffd        33035   0.003671\n    255   \ufffd        33239   0.003693\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.811590 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 2 percent.\n\n    Chi square distribution for 9000000 samples is 9329962.81, and\n    randomly would exceed this value less than 0.01 percent of the\n    times.\n\n    Arithmetic mean value of data bytes is 119.3731 (127.5 = random).\n    Monte Carlo value for Pi is 3.197293333 (error 1.77 percent).\n    Serial correlation coefficient is 0.159130 (totally uncorrelated =\n    0.0).\n\nWithout this patch, the results of the chi-square test is 0.01%, and\nthe numbers are certainly not random according to ent\u0027s project page.\nThe results improve with this patch:\n\n    $ ent -c qcom-random-after\n    Value Char Occurrences Fraction\n      0            35432   0.003937\n      1            35127   0.003903\n      2            35424   0.003936\n    ...\n    253   \ufffd        35201   0.003911\n    254   \ufffd        34835   0.003871\n    255   \ufffd        35368   0.003930\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.999979 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 0 percent.\n\n    Chi square distribution for 9000000 samples is 258.77, and randomly\n    would exceed this value 42.24 percent of the times.\n\n    Arithmetic mean value of data bytes is 127.5006 (127.5 = random).\n    Monte Carlo value for Pi is 3.141277333 (error 0.01 percent).\n    Serial correlation coefficient is 0.000468 (totally uncorrelated =\n    0.0).\n\nThis change was tested on a Nexus 5 phone (msm8974 SoC)."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: crypto: qcom-rng: aseg\u00farese de que el b\u00fafer para generar est\u00e9 completamente lleno. La funci\u00f3n de generaci\u00f3n en la estructura rng_alg espera que el b\u00fafer de destino est\u00e9 completamente lleno si la funci\u00f3n devuelve 0. qcom_rng_read() puede ejecutarse en una situaci\u00f3n en la que el b\u00fafer est\u00e1 parcialmente lleno de aleatoriedad y la parte restante del b\u00fafer se pone a cero ya que qcom_rng_generate() no verifica el valor de retorno. Este problema se puede reproducir ejecutando lo siguiente desde libkcapi: kcapi-rng -b 9000000 \u0026gt; OUTFILE El OUTFILE generado tendr\u00e1 tres secciones enormes que contienen todos ceros, y esto se debe al c\u00f3digo donde falla la prueba \u0027val \u0026amp; PRNG_STATUS_DATA_AVAIL\u0027. Solucionemos este problema asegur\u00e1ndonos de que qcom_rng_read() siempre regrese con un b\u00fafer lleno si la funci\u00f3n tiene \u00e9xito. Tambi\u00e9n hagamos que qcom_rng_generate() devuelva el valor correcto. Aqu\u00ed hay algunas estad\u00edsticas del proyecto ent (https://www.fourmilab.ch/random/) que muestra informaci\u00f3n sobre la calidad de los n\u00fameros generados: $ ent -c qcom-random-before Valor Char Ocurrencias Fracci\u00f3n 0 606748 0.067416 1 33104 0,003678 2 33001 0,003667 ... 253 ? 32883 0,003654 254 ? 33035 0,003671 255 ? 33239 0,003693 Total: 9000000 1,000000 Entrop\u00eda = 7,811590 bits por byte. Una compresi\u00f3n \u00f3ptima reducir\u00eda el tama\u00f1o de este archivo de 9000000 bytes en un 2 por ciento. La distribuci\u00f3n de chi cuadrado para 9000000 muestras es 9329962,81 y aleatoriamente exceder\u00eda este valor menos del 0,01 por ciento de las veces. El valor medio aritm\u00e9tico de los bytes de datos es 119,3731 (127,5 = aleatorio). El valor de Monte Carlo para Pi es 3,197293333 (error del 1,77 por ciento). El coeficiente de correlaci\u00f3n serial es 0,159130 (totalmente no correlacionado = 0,0). Sin este parche, los resultados de la prueba de chi-cuadrado son del 0,01% y los n\u00fameros ciertamente no son aleatorios seg\u00fan la p\u00e1gina del proyecto de ent. Los resultados mejoran con este parche: $ ent -c qcom-random-after Valor Char Ocurrencias Fracci\u00f3n 0 35432 0.003937 1 35127 0.003903 2 35424 0.003936 ... 253 ? 35201 0,003911 254 ? 34835 0,003871 255 ? 35368 0,003930 Total: 9000000 1,000000 Entrop\u00eda = 7,999979 bits por byte. Una compresi\u00f3n \u00f3ptima reducir\u00eda el tama\u00f1o de este archivo de 9000000 bytes en un 0 por ciento. La distribuci\u00f3n de chi cuadrado para 9000000 muestras es 258,77 y aleatoriamente exceder\u00eda este valor el 42,24 por ciento de las veces. El valor medio aritm\u00e9tico de los bytes de datos es 127,5006 (127,5 = aleatorio). El valor de Monte Carlo para Pi es 3,141277333 (error del 0,01 por ciento). El coeficiente de correlaci\u00f3n serial es 0,000468 (totalmente no correlacionado = 0,0). Este cambio se prob\u00f3 en un tel\u00e9fono Nexus 5 (SoC msm8974)."
          }
        ],
        "id": "CVE-2022-48629",
        "lastModified": "2026-08-04T10:17:13.430",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "ADJACENT_NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 8.1,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                "version": "3.1"
              },
              "exploitabilityScore": 2.8,
              "impactScore": 5.2,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 5.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 3.6,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2022-48629",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-05T16:07:05.481936Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2024-03-05T12:15:45.707",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "tags": [
              "Exploit",
              "Mailing List",
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "NVD-CWE-noinfo"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-05T03:52:21+00:00",
      "cve": "CVE-2022-48629",
      "id": "CVE-2022-48629",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: crypto: qcom-rng - ensure buffer for generate is completely filled",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-48629.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-12T17:12:38Z",
      "cve": "CVE-2022-48629",
      "id": "CVE-2022-48629",
      "initial_release_date": "2026-05-13T15:17:57Z",
      "product_status:known_affected": "327",
      "product_status:known_not_affected": "230",
      "product_status:recommended": "471",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-48629",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-48629.json",
      "version": "9"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-03T15:17:55.625Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
              },
              {
                "tags": [
                  "x_transferred"
                ],
                "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2022-48629",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-03-05T16:07:05.481936Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-05-23T19:01:15.331Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Linux",
              "programFiles": [
                "drivers/crypto/qcom-rng.c"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "lessThan": "a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                },
                {
                  "lessThan": "184f7bd08ce56f003530fc19f160d54e75bf5c9d",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                },
                {
                  "lessThan": "0f9b7b8df17525e464294c916acc8194ce38446b",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                },
                {
                  "lessThan": "ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                },
                {
                  "lessThan": "485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                },
                {
                  "lessThan": "a680b1832ced3b5fa7c93484248fd221ea0d614b",
                  "status": "affected",
                  "version": "ceec5f5b59882b871a722ca4d49b767a09a4bde9",
                  "versionType": "git"
                }
              ]
            },
            {
              "defaultStatus": "affected",
              "product": "Linux",
              "programFiles": [
                "drivers/crypto/qcom-rng.c"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "status": "affected",
                  "version": "4.19"
                },
                {
                  "lessThan": "4.19",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "4.19.*",
                  "status": "unaffected",
                  "version": "4.19.236",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.4.*",
                  "status": "unaffected",
                  "version": "5.4.187",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.10.*",
                  "status": "unaffected",
                  "version": "5.10.108",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.15.*",
                  "status": "unaffected",
                  "version": "5.15.31",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "5.16.*",
                  "status": "unaffected",
                  "version": "5.16.17",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "*",
                  "status": "unaffected",
                  "version": "5.17",
                  "versionType": "original_commit_for_fix"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "4.19.236",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.4.187",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.10.108",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.15.31",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.16.17",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.17",
                      "versionStartIncluding": "4.19",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qcom-rng - ensure buffer for generate is completely filled\n\nThe generate function in struct rng_alg expects that the destination\nbuffer is completely filled if the function returns 0. qcom_rng_read()\ncan run into a situation where the buffer is partially filled with\nrandomness and the remaining part of the buffer is zeroed since\nqcom_rng_generate() doesn\u0027t check the return value. This issue can\nbe reproduced by running the following from libkcapi:\n\n    kcapi-rng -b 9000000 \u003e OUTFILE\n\nThe generated OUTFILE will have three huge sections that contain all\nzeros, and this is caused by the code where the test\n\u0027val \u0026 PRNG_STATUS_DATA_AVAIL\u0027 fails.\n\nLet\u0027s fix this issue by ensuring that qcom_rng_read() always returns\nwith a full buffer if the function returns success. Let\u0027s also have\nqcom_rng_generate() return the correct value.\n\nHere\u0027s some statistics from the ent project\n(https://www.fourmilab.ch/random/) that shows information about the\nquality of the generated numbers:\n\n    $ ent -c qcom-random-before\n    Value Char Occurrences Fraction\n      0           606748   0.067416\n      1            33104   0.003678\n      2            33001   0.003667\n    ...\n    253   \ufffd        32883   0.003654\n    254   \ufffd        33035   0.003671\n    255   \ufffd        33239   0.003693\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.811590 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 2 percent.\n\n    Chi square distribution for 9000000 samples is 9329962.81, and\n    randomly would exceed this value less than 0.01 percent of the\n    times.\n\n    Arithmetic mean value of data bytes is 119.3731 (127.5 = random).\n    Monte Carlo value for Pi is 3.197293333 (error 1.77 percent).\n    Serial correlation coefficient is 0.159130 (totally uncorrelated =\n    0.0).\n\nWithout this patch, the results of the chi-square test is 0.01%, and\nthe numbers are certainly not random according to ent\u0027s project page.\nThe results improve with this patch:\n\n    $ ent -c qcom-random-after\n    Value Char Occurrences Fraction\n      0            35432   0.003937\n      1            35127   0.003903\n      2            35424   0.003936\n    ...\n    253   \ufffd        35201   0.003911\n    254   \ufffd        34835   0.003871\n    255   \ufffd        35368   0.003930\n\n    Total:       9000000   1.000000\n\n    Entropy = 7.999979 bits per byte.\n\n    Optimum compression would reduce the size\n    of this 9000000 byte file by 0 percent.\n\n    Chi square distribution for 9000000 samples is 258.77, and randomly\n    would exceed this value 42.24 percent of the times.\n\n    Arithmetic mean value of data bytes is 127.5006 (127.5 = random).\n    Monte Carlo value for Pi is 3.141277333 (error 0.01 percent).\n    Serial correlation coefficient is 0.000468 (totally uncorrelated =\n    0.0).\n\nThis change was tested on a Nexus 5 phone (msm8974 SoC)."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "baseScore": 8.1,
                "baseSeverity": "HIGH",
                "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                "version": "3.1"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "AV:A - On Qualcomm phones (the driver\u0027s primary deployment; fix tested on Nexus 5), qcom-rng becomes crypto_default_rng and feeds Bluetooth SMP ECDH private-key generation (smp\u2192ecdh-nist-p256\u2192ecc_gen_privkey), so an adjacent Bluetooth attacker can exploit weak pairing keys.\nAC:L - qcom_rng_read() stops at the first clear PRNG_STATUS_DATA_AVAIL without waiting, so any multi-word generate (including 32-byte ECDH keys) systematically underfills while qcom_rng_generate() still returns 0; the fix\u0027s readl_poll_timeout confirms waiting is required for reliable full fills.\nPR:N - A Bluetooth-adjacent attacker needs no local account or capabilities on the victim; the weak keys are produced by in-kernel SMP pairing crypto. (AF_ALG rng is also reachable by unprivileged local users, but the highest-impact path is unauthenticated adjacent Bluetooth.)\nUI:N - Exploitation rides the normal Bluetooth SMP/LE Secure Connections key-agreement exchange; no additional victim action beyond ordinary pairing protocol participation is required.\nS:U - Impact stays within the device\u0027s own kernel crypto authority (broken Bluetooth link keys/traffic); there is no VM escape, IOMMU bypass, or other cross-authority boundary crossing.\nC:H - Underfilled RNG output yields low-entropy ECDH private keys and other crypto_default_rng secrets (and AF_ALG returns large zero runs), allowing decryption of Bluetooth traffic and disclosure of material that should have been confidential.\nI:H - The same weak ECDH/session keys enable MITM and forgery of Bluetooth SMP-protected traffic, and equally undermine integrity of any MAC/signature keys drawn from the underfilled stdrng.\nA:N - This defect only returns success with incomplete/zero-padded random data; it does not oops, panic, hang, or loop (the related infinite-loop DoS is CVE-2022-48630 from a later fix)."
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T08:51:33.070Z",
            "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "shortName": "Linux"
          },
          "references": [
            {
              "url": "https://git.kernel.org/stable/c/a8e32bbb96c25b7ab29b1894dcd45e0b3b08fd9d"
            },
            {
              "url": "https://git.kernel.org/stable/c/184f7bd08ce56f003530fc19f160d54e75bf5c9d"
            },
            {
              "url": "https://git.kernel.org/stable/c/0f9b7b8df17525e464294c916acc8194ce38446b"
            },
            {
              "url": "https://git.kernel.org/stable/c/ab9337c7cb6f875b6286440b1adfbeeef2b2b2bd"
            },
            {
              "url": "https://git.kernel.org/stable/c/485995cbc98a4f77cfd4f8ed4dd7ff8ab262964d"
            },
            {
              "url": "https://git.kernel.org/stable/c/a680b1832ced3b5fa7c93484248fd221ea0d614b"
            }
          ],
          "title": "crypto: qcom-rng - ensure buffer for generate is completely filled",
          "x_generator": {
            "engine": "bippy-1.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "assignerShortName": "Linux",
        "cveId": "CVE-2022-48629",
        "datePublished": "2024-03-05T11:18:06.562Z",
        "dateReserved": "2024-02-25T13:44:28.315Z",
        "dateUpdated": "2026-08-05T08:51:33.070Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…