CVE-2022-48629: crypto: qcom-rng - ensure buffer for generate is completely filled
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).
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel randomness quality bug in the Qualcomm RNG driver. On affected systems, a request for random bytes could succeed while part of the returned buffer was zeroed instead of random. The business risk is strongest for Qualcomm-based Linux devices relying on this driver for cryptographic randomness.
Executive priority
Treat as a targeted platform-risk issue, not a broad internet emergency. Prioritize embedded, mobile, appliance, and edge fleets using Qualcomm Linux kernels, because weak randomness can undermine cryptographic assurance even without a conventional exploit chain.
Technical view
The qcom-rng generate path did not ensure qcom_rng_read filled the destination buffer before returning success. When hardware status indicated data was unavailable, generated output could contain large zero regions. The fix changes qcom_rng_read/qcom_rng_generate behavior so successful calls return complete random buffers or report failure.
Likely exposure
Exposure is likely limited to Linux systems using the Qualcomm qcom-rng driver, especially embedded or mobile-class Qualcomm SoCs. The source notes testing on a Nexus 5 msm8974 device. Generic Linux systems without this driver or hardware dependency are less likely to be exposed.
Exploitation context
The bundle does not show KEV listing, active exploitation, public weaponization, or CVSS scoring. The cited evidence demonstrates degraded randomness quality, not a remote attack path. Impact depends on whether affected random output feeds keys, tokens, or other security-sensitive generation.
Researcher notes
Key evidence is the kernel fix rationale and before/after entropy statistics in the CVE description. The issue is correctness and entropy quality in the qcom-rng driver. Source data is incomplete for exact downstream distribution status, exploitability scoring, and all affected hardware models.
Mitigation direction
Apply vendor kernel updates containing the referenced stable qcom-rng fixes.
Prioritize Qualcomm-based Linux devices that depend on hardware RNG output.
Check distribution, device, or kernel maintainer advisories for supported patched builds.
Review cryptographic material generated on exposed devices during affected kernel use.
Validation and detection
Inventory Linux kernel versions and Qualcomm qcom-rng driver usage across devices.
Confirm whether deployed kernels include one of the referenced stable fixes.
Review device trees or kernel configuration for Qualcomm RNG dependency.
Assess whether security-sensitive keys or tokens were generated on affected systems.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-48629 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.