{"id":"CVE-2022-50102","state":"PUBLISHED","title":"video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nvideo: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()\n\nSince the user can control the arguments of the ioctl() from the user\nspace, under special arguments that may result in a divide-by-zero bug\nin:\n  drivers/video/fbdev/arkfb.c:784: ark_set_pixclock(info, (hdiv * info->var.pixclock) / hmul);\nwith hdiv=1, pixclock=1 and hmul=2 you end up with (1*1)/2 = (int) 0.\nand then in:\n  drivers/video/fbdev/arkfb.c:504: rv = dac_set_freq(par->dac, 0, 1000000000 / pixclock);\nwe'll get a division-by-zero.\n\nThe following log can reveal it:\n\ndivide error: 0000 [#1] PREEMPT SMP KASAN PTI\nRIP: 0010:ark_set_pixclock drivers/video/fbdev/arkfb.c:504 [inline]\nRIP: 0010:arkfb_set_par+0x10fc/0x24c0 drivers/video/fbdev/arkfb.c:784\nCall Trace:\n fb_set_var+0x604/0xeb0 drivers/video/fbdev/core/fbmem.c:1034\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\n\nFix this by checking the argument of ark_set_pixclock() first.","publishedAt":"2025-06-18T11:02:38.099Z","updatedAt":"2026-05-11T19:12:52.428Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"76b3f0a0b56e53a960a14624a0f48b3d94b5e7e7","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"b9a66f23612b84617e04412169e155a4b92f632d","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"a249e1b89ca25e1c34bdf96154e3f6224a91a9af","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"0288fa799e273b08839037499d704dc7bdc13e9a","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"236c1502520b7b08955467ec2e50b3232e34f1f9","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"9ebc5031958c1f3a2795e4533b4091d77c738d14","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"15661642511b2b192077684a89f42a8d95d54286","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"2f1c4523f7a3aaabe7e53d3ebd378292947e95c8","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/arkfb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.22","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.22","versionType":"semver"},{"version":"4.14.291","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.256","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.211","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.61","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.18","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19.2","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/arkfb.c"]}],"references":["https://git.kernel.org/stable/c/76b3f0a0b56e53a960a14624a0f48b3d94b5e7e7","https://git.kernel.org/stable/c/b9a66f23612b84617e04412169e155a4b92f632d","https://git.kernel.org/stable/c/a249e1b89ca25e1c34bdf96154e3f6224a91a9af","https://git.kernel.org/stable/c/0288fa799e273b08839037499d704dc7bdc13e9a","https://git.kernel.org/stable/c/236c1502520b7b08955467ec2e50b3232e34f1f9","https://git.kernel.org/stable/c/9ebc5031958c1f3a2795e4533b4091d77c738d14","https://git.kernel.org/stable/c/15661642511b2b192077684a89f42a8d95d54286","https://git.kernel.org/stable/c/2f1c4523f7a3aaabe7e53d3ebd378292947e95c8"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/50xxx/CVE-2022-50102.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50102","state":"PUBLISHED","datePublished":"2025-06-18T11:02:38.099Z","dateUpdated":"2026-05-11T19:12:52.428Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-06-18T10:57:27.412Z"},"containers":{"cna":{"title":"video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nvideo: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()\n\nSince the user can control the arguments of the ioctl() from the user\nspace, under special arguments that may result in a divide-by-zero bug\nin:\n  drivers/video/fbdev/arkfb.c:784: ark_set_pixclock(info, (hdiv * info->var.pixclock) / hmul);\nwith hdiv=1, pixclock=1 and hmul=2 you end up with (1*1)/2 = (int) 0.\nand then in:\n  drivers/video/fbdev/arkfb.c:504: rv = dac_set_freq(par->dac, 0, 1000000000 / pixclock);\nwe'll get a division-by-zero.\n\nThe following log can reveal it:\n\ndivide error: 0000 [#1] PREEMPT SMP KASAN PTI\nRIP: 0010:ark_set_pixclock drivers/video/fbdev/arkfb.c:504 [inline]\nRIP: 0010:arkfb_set_par+0x10fc/0x24c0 drivers/video/fbdev/arkfb.c:784\nCall Trace:\n fb_set_var+0x604/0xeb0 drivers/video/fbdev/core/fbmem.c:1034\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\n\nFix this by checking the argument of ark_set_pixclock() first."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"76b3f0a0b56e53a960a14624a0f48b3d94b5e7e7","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"b9a66f23612b84617e04412169e155a4b92f632d","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"a249e1b89ca25e1c34bdf96154e3f6224a91a9af","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"0288fa799e273b08839037499d704dc7bdc13e9a","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"236c1502520b7b08955467ec2e50b3232e34f1f9","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"9ebc5031958c1f3a2795e4533b4091d77c738d14","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"15661642511b2b192077684a89f42a8d95d54286","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","status":"affected","lessThan":"2f1c4523f7a3aaabe7e53d3ebd378292947e95c8","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/arkfb.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.22","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.22","versionType":"semver"},{"version":"4.14.291","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.256","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.211","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.61","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.18","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19.2","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/arkfb.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/76b3f0a0b56e53a960a14624a0f48b3d94b5e7e7"},{"url":"https://git.kernel.org/stable/c/b9a66f23612b84617e04412169e155a4b92f632d"},{"url":"https://git.kernel.org/stable/c/a249e1b89ca25e1c34bdf96154e3f6224a91a9af"},{"url":"https://git.kernel.org/stable/c/0288fa799e273b08839037499d704dc7bdc13e9a"},{"url":"https://git.kernel.org/stable/c/236c1502520b7b08955467ec2e50b3232e34f1f9"},{"url":"https://git.kernel.org/stable/c/9ebc5031958c1f3a2795e4533b4091d77c738d14"},{"url":"https://git.kernel.org/stable/c/15661642511b2b192077684a89f42a8d95d54286"},{"url":"https://git.kernel.org/stable/c/2f1c4523f7a3aaabe7e53d3ebd378292947e95c8"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:12:52.428Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"4.14.291"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"4.19.256"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"5.4.211"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"5.10.137"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"5.15.61"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"5.18.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"5.19.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.22","versionEndExcluding":"6.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}