CVE-2022-50239: cpufreq: qcom: fix writes in read-only memory region
In the Linux kernel, the following vulnerability has been resolved:
cpufreq: qcom: fix writes in read-only memory region
This commit fixes a kernel oops because of a write in some read-only memory:
[ 9.068287] Unable to handle kernel write to read-only memory at virtual address ffff800009240ad8
..snip..
[ 9.138790] Internal error: Oops: 9600004f [#1] PREEMPT SMP
..snip..
[ 9.269161] Call trace:
[ 9.276271] __memcpy+0x5c/0x230
[ 9.278531] snprintf+0x58/0x80
[ 9.282002] qcom_cpufreq_msm8939_name_version+0xb4/0x190
[ 9.284869] qcom_cpufreq_probe+0xc8/0x39c
..snip..
The following line defines a pointer that point to a char buffer stored
in read-only memory:
char *pvs_name = "speedXX-pvsXX-vXX";
This pointer is meant to hold a template "speedXX-pvsXX-vXX" where the
XX values get overridden by the qcom_cpufreq_krait_name_version function. Since
the template is actually stored in read-only memory, when the function
executes the following call we get an oops:
snprintf(*pvs_name, sizeof("speedXX-pvsXX-vXX"), "speed%d-pvs%d-v%d",
speed, pvs, pvs_ver);
To fix this issue, we instead store the template name onto the stack by
using the following syntax:
char pvs_name_buffer[] = "speedXX-pvsXX-vXX";
Because the `pvs_name` needs to be able to be assigned to NULL, the
template buffer is stored in the pvs_name_buffer and not under the
pvs_name variable.
Security readout for executives and security teams
Plain-English summary
CVE-2022-50239 is a Linux kernel bug in Qualcomm CPU frequency handling. On affected Qualcomm platforms, the driver can write to read-only memory and trigger a kernel oops, causing system instability or boot-time failure. Public sources do not show active exploitation or a broader remote attack path.
Executive priority
Treat as a targeted platform reliability issue, not a broad enterprise emergency. Prioritize patch validation for Qualcomm-based appliances, embedded devices, and mobile/edge Linux fleets where kernel crashes could disrupt availability.
Technical view
The qcom cpufreq code used a string literal as a mutable template in qcom_cpufreq_msm8939_name_version, then wrote into it via snprintf. Because the literal resides in read-only memory, probing the driver can fault. The fix stores the template in a writable stack buffer. Stable kernel fixes are referenced by upstream commits.
Likely exposure
Exposure appears limited to Linux systems using the affected Qualcomm qcom cpufreq path, especially Krait/MSM8939-related platforms. General x86 servers are unlikely to be affected unless they include this driver path. Confirm by kernel version, vendor backports, and hardware/driver usage.
Exploitation context
The cited record describes a reliability fault during driver probing, not a proven attacker-triggered exploit. CISA KEV status is false in the provided data. No public source in the bundle reports active exploitation, exploit code, or remote exploitation.
Researcher notes
The source bundle provides root cause and fix direction but no CVSS, CWE, exploitability analysis, or vendor-specific advisories. Version data should be interpreted through upstream stable commits and distribution backports rather than raw kernel numbers alone.
Mitigation direction
Upgrade to a kernel containing the referenced upstream stable fix commits.
Use vendor or distribution advisories to confirm backported fixes.
Prioritize Qualcomm-based Linux devices using qcom cpufreq/Krait paths.
If unable to patch, consult vendor guidance for safe platform-specific workarounds.
Validation and detection
Inventory Linux kernel versions on Qualcomm-based devices.
Check whether vendor kernels include the referenced stable commits.
Review boot logs for qcom_cpufreq_probe or read-only memory oops traces.
Confirm affected driver paths are built, loaded, and used on the device.
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-50239 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.
0CVSS vectors
3Timeline events
0ADP providers
5Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Sep 15, 2025, 14:01 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.