CVE-2021-47641: video: fbdev: cirrusfb: check pixclock to avoid divide by zero
In the Linux kernel, the following vulnerability has been resolved:
video: fbdev: cirrusfb: check pixclock to avoid divide by zero
Do a sanity check on pixclock value to avoid divide by zero.
If the pixclock value is zero, the cirrusfb driver will round up
pixclock to get the derived frequency as close to maxclock as
possible.
Syzkaller reported a divide error in cirrusfb_check_pixclock.
divide error: 0000 [#1] SMP KASAN PTI
CPU: 0 PID: 14938 Comm: cirrusfb_test Not tainted 5.15.0-rc6 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2
RIP: 0010:cirrusfb_check_var+0x6f1/0x1260
Call Trace:
fb_set_var+0x398/0xf90
do_fb_ioctl+0x4b8/0x6f0
fb_ioctl+0xeb/0x130
__x64_sys_ioctl+0x19d/0x220
do_syscall_64+0x3a/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
Security readout for executives and security teams
Plain-English summary
CVE-2021-47641 is a Linux kernel crash bug in the cirrusfb framebuffer driver. A local low-privileged user may trigger a divide-by-zero condition by reaching the affected framebuffer ioctl path, causing a denial of service. It does not indicate data theft or privilege escalation in the supplied sources.
Executive priority
Treat this as a moderate availability risk, not a breach indicator. Patch through normal kernel maintenance, with earlier attention for shared Linux hosts, virtualized environments, or systems where untrusted local users exist.
Technical view
The cirrusfb driver failed to sanity-check a zero pixclock value before calculating derived frequency, leading to CWE-369 divide-by-zero in cirrusfb_check_var via fb_set_var and fb_ioctl. The fix adds pixclock validation and rounding behavior. CVSS is 5.5: local, low complexity, low privilege, no user interaction, availability impact only.
Likely exposure
Exposure is most likely on Linux systems running affected kernels with the cirrusfb framebuffer driver reachable locally. This is not described as remotely exploitable. Systems without the affected driver path exposed are less likely to be practically exposed, but source data does not provide a full product matrix.
Exploitation context
The source describes a Syzkaller-triggered kernel divide error on Linux 5.15.0-rc6 under QEMU. The record is not in KEV, and the provided sources do not claim active exploitation in the wild or public weaponization.
Researcher notes
The evidence supports local denial of service through framebuffer ioctl handling. The affected data lists Linux versions and stable commits, but does not name distributions, package versions, exploit availability, or non-Linux products. Avoid broad claims beyond kernels carrying the vulnerable cirrusfb code.
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-369: 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-369 · source CWE mapping
Divide By Zero
Divide By Zero represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.