{"id":"CVE-2022-49978","state":"PUBLISHED","title":"fbdev: fb_pm2fb: Avoid potential divide by zero error","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: fb_pm2fb: Avoid potential divide by zero error\n\nIn `do_fb_ioctl()` of fbmem.c, if cmd is FBIOPUT_VSCREENINFO, var will be\ncopied from user, then go through `fb_set_var()` and\n`info->fbops->fb_check_var()` which could may be `pm2fb_check_var()`.\nAlong the path, `var->pixclock` won't be modified. This function checks\nwhether reciprocal of `var->pixclock` is too high. If `var->pixclock` is\nzero, there will be a divide by zero error. So, it is necessary to check\nwhether denominator is zero to avoid crash. As this bug is found by\nSyzkaller, logs are listed below.\n\ndivide error in pm2fb_check_var\nCall Trace:\n <TASK>\n fb_set_var+0x367/0xeb0 drivers/video/fbdev/core/fbmem.c:1015\n do_fb_ioctl+0x234/0x670 drivers/video/fbdev/core/fbmem.c:1110\n fb_ioctl+0xdd/0x130 drivers/video/fbdev/core/fbmem.c:1189","publishedAt":"2025-06-18T11:00:40.693Z","updatedAt":"2026-05-11T19:10:22.754Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"0f1174f4972ea9fad6becf8881d71adca8e9ca91","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"3ec326a6a0d4667585ca595f438c7293e5ced7c4","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"7f88cdfea8d7f4dbaf423d808241403b2bb945e4","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"7d9591b32a9092fc6391a316b56e8016c6181c3d","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"8fc778ee2fb2853f7a3531fa7273349640d8e4e9","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"34c3dea1189525cd533071ed5c176fc4ea8d982b","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"cb4bb011a683532841344ca7f281b5e04389b4f8","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"19f953e7435644b81332dd632ba1b2d80b1e37af","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/pm2fb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.12","versionType":"semver"},{"version":"4.9.327","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.292","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.257","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.212","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.141","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.65","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.7","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/pm2fb.c"]}],"references":["https://git.kernel.org/stable/c/0f1174f4972ea9fad6becf8881d71adca8e9ca91","https://git.kernel.org/stable/c/3ec326a6a0d4667585ca595f438c7293e5ced7c4","https://git.kernel.org/stable/c/7f88cdfea8d7f4dbaf423d808241403b2bb945e4","https://git.kernel.org/stable/c/7d9591b32a9092fc6391a316b56e8016c6181c3d","https://git.kernel.org/stable/c/8fc778ee2fb2853f7a3531fa7273349640d8e4e9","https://git.kernel.org/stable/c/34c3dea1189525cd533071ed5c176fc4ea8d982b","https://git.kernel.org/stable/c/cb4bb011a683532841344ca7f281b5e04389b4f8","https://git.kernel.org/stable/c/19f953e7435644b81332dd632ba1b2d80b1e37af"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/49xxx/CVE-2022-49978.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-49978","state":"PUBLISHED","datePublished":"2025-06-18T11:00:40.693Z","dateUpdated":"2026-05-11T19:10:22.754Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-06-18T10:57:27.385Z"},"containers":{"cna":{"title":"fbdev: fb_pm2fb: Avoid potential divide by zero error","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: fb_pm2fb: Avoid potential divide by zero error\n\nIn `do_fb_ioctl()` of fbmem.c, if cmd is FBIOPUT_VSCREENINFO, var will be\ncopied from user, then go through `fb_set_var()` and\n`info->fbops->fb_check_var()` which could may be `pm2fb_check_var()`.\nAlong the path, `var->pixclock` won't be modified. This function checks\nwhether reciprocal of `var->pixclock` is too high. If `var->pixclock` is\nzero, there will be a divide by zero error. So, it is necessary to check\nwhether denominator is zero to avoid crash. As this bug is found by\nSyzkaller, logs are listed below.\n\ndivide error in pm2fb_check_var\nCall Trace:\n <TASK>\n fb_set_var+0x367/0xeb0 drivers/video/fbdev/core/fbmem.c:1015\n do_fb_ioctl+0x234/0x670 drivers/video/fbdev/core/fbmem.c:1110\n fb_ioctl+0xdd/0x130 drivers/video/fbdev/core/fbmem.c:1189"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"0f1174f4972ea9fad6becf8881d71adca8e9ca91","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"3ec326a6a0d4667585ca595f438c7293e5ced7c4","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"7f88cdfea8d7f4dbaf423d808241403b2bb945e4","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"7d9591b32a9092fc6391a316b56e8016c6181c3d","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"8fc778ee2fb2853f7a3531fa7273349640d8e4e9","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"34c3dea1189525cd533071ed5c176fc4ea8d982b","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"cb4bb011a683532841344ca7f281b5e04389b4f8","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","status":"affected","lessThan":"19f953e7435644b81332dd632ba1b2d80b1e37af","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/pm2fb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.12","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.12","versionType":"semver"},{"version":"4.9.327","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.292","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.257","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.212","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.141","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.65","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.19.7","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/pm2fb.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/0f1174f4972ea9fad6becf8881d71adca8e9ca91"},{"url":"https://git.kernel.org/stable/c/3ec326a6a0d4667585ca595f438c7293e5ced7c4"},{"url":"https://git.kernel.org/stable/c/7f88cdfea8d7f4dbaf423d808241403b2bb945e4"},{"url":"https://git.kernel.org/stable/c/7d9591b32a9092fc6391a316b56e8016c6181c3d"},{"url":"https://git.kernel.org/stable/c/8fc778ee2fb2853f7a3531fa7273349640d8e4e9"},{"url":"https://git.kernel.org/stable/c/34c3dea1189525cd533071ed5c176fc4ea8d982b"},{"url":"https://git.kernel.org/stable/c/cb4bb011a683532841344ca7f281b5e04389b4f8"},{"url":"https://git.kernel.org/stable/c/19f953e7435644b81332dd632ba1b2d80b1e37af"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:10:22.754Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"4.9.327"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"4.14.292"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"4.19.257"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.4.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.10.141"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.15.65"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.19.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}