CVE-2022-49221: drm/msm/dp: populate connector of struct dp_panel
In the Linux kernel, the following vulnerability has been resolved:
drm/msm/dp: populate connector of struct dp_panel
DP CTS test case 4.2.2.6 has valid edid with bad checksum on purpose
and expect DP source return correct checksum. During drm edid read,
correct edid checksum is calculated and stored at
connector::real_edid_checksum.
The problem is struct dp_panel::connector never be assigned, instead the
connector is stored in struct msm_dp::connector. When we run compliance
testing test case 4.2.2.6 dp_panel_handle_sink_request() won't have a valid
edid set in struct dp_panel::edid so we'll try to use the connectors
real_edid_checksum and hit a NULL pointer dereference error because the
connector pointer is never assigned.
Changes in V2:
-- populate panel connector at msm_dp_modeset_init() instead of at dp_panel_read_sink_caps()
Changes in V3:
-- remove unhelpful kernel crash trace commit text
-- remove renaming dp_display parameter to dp
Changes in V4:
-- add more details to commit text
Changes in v10:
-- group into one series
Changes in v11:
-- drop drm/msm/dp: dp_link_parse_sink_count() return immediately if aux read
Signee-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Security readout for executives and security teams
Plain-English summary
CVE-2022-49221 is a Linux kernel crash bug in the MSM DisplayPort driver. A malformed-but-valid EDID checksum scenario can trigger a NULL pointer dereference during DisplayPort handling. The known impact is system availability, not data theft or privilege escalation. It is not listed in KEV, and the supplied sources do not show active exploitation.
Executive priority
Treat as a normal-priority kernel availability fix for affected device fleets. It can crash impacted systems but is not shown to enable compromise. Prioritize patching where MSM DisplayPort hardware is present, especially managed endpoints, embedded devices, or products with strict uptime requirements.
Technical view
In drm/msm/dp, struct dp_panel::connector was not populated while the connector lived in struct msm_dp::connector. During EDID handling for DP CTS case 4.2.2.6, dp_panel_handle_sink_request() could dereference a NULL connector when using real_edid_checksum. CVSS is 5.5: local, low complexity, low privileges, availability impact only.
Likely exposure
Exposure is most likely on Linux systems using the MSM DisplayPort driver and affected kernel versions identified in the CVE record. This is hardware and configuration dependent. Servers without this driver or DisplayPort path are less likely to be exposed, but kernel package backports should be checked.
Exploitation context
The CVE describes a local availability issue requiring low privileges. The trigger relates to DisplayPort EDID handling with a bad checksum used in compliance testing. The supplied sources do not identify remote exploitation, data exposure, privilege escalation, or active exploitation in the wild.
Researcher notes
The record maps this to CWE-476 and cites stable kernel commits resolving connector population in the dp_panel path. Affected-version granularity appears kernel-stream specific, so distribution backports may alter exposure. Avoid assuming exploitability beyond local denial of service without additional evidence.
Mitigation direction
Update to a kernel containing the referenced stable fixes or vendor backports.
Check Linux distribution advisories for the exact fixed package for your kernel stream.
Prioritize endpoints or devices using MSM DisplayPort functionality.
If updates are unavailable, follow vendor guidance for temporary risk reduction.
Validation and detection
Inventory systems running affected Linux kernel versions from the CVE record.
Confirm whether the MSM DisplayPort driver is built, loaded, or used.
Review kernel package changelogs for the referenced stable commit IDs.
Check logs for kernel oops or NULL pointer dereference events in drm/msm/dp paths.
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.
cwe · low confidence lookup
CWE-476: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
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.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-476 · source CWE mapping
NULL Pointer Dereference
NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.