{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50099","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-06-18T10:57:27.412Z","datePublished":"2025-06-18T11:02:36.018Z","dateUpdated":"2026-08-05T08:57:26.003Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T08:57:26.003Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nvideo: fbdev: arkfb: Check the size of screen before memset_io()\n\nIn the function arkfb_set_par(), the value of 'screen_size' is\ncalculated by the user input. If the user provides the improper value,\nthe value of 'screen_size' may larger than 'info->screen_size', which\nmay cause the following bug:\n\n[  659.399066] BUG: unable to handle page fault for address: ffffc90003000000\n[  659.399077] #PF: supervisor write access in kernel mode\n[  659.399079] #PF: error_code(0x0002) - not-present page\n[  659.399094] RIP: 0010:memset_orig+0x33/0xb0\n[  659.399116] Call Trace:\n[  659.399122]  arkfb_set_par+0x143f/0x24c0\n[  659.399130]  fb_set_var+0x604/0xeb0\n[  659.399161]  do_fb_ioctl+0x234/0x670\n[  659.399189]  fb_ioctl+0xdd/0x130\n\nFix the this by checking the value of 'screen_size' before memset_io()."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Reachable only via local FBIOPUT_VSCREENINFO on /dev/fb* (ioctl → do_fb_ioctl → fb_set_var → arkfb_set_par); no network or adjacent-protocol path into arkfb.\nAC:L - An attacker who can open the device can reliably trigger the overflow with bits_per_pixel=0 (text mode) and large xres_virtual*yres_virtual; check_var's memory check uses bpp and always yields mem=0 in text mode, so no race or uncontrolled condition is required.\nPR:L - fb_open/FBIOPUT_VSCREENINFO have no capable() gate; access is only DAC on /dev/fbN (typically 660 root:video / seat ACL), which ordinary local graphics users hold—not real root.\nUI:N - The attacker opens /dev/fb* and issues FBIOPUT_VSCREENINFO themselves; no separate victim action is required.\nS:U - Impact is host-kernel memory corruption/oops in the same OS security authority as the fbdev driver; not a VM escape, IOMMU bypass, or other boundary cross.\nC:H - User-controlled out-of-bounds write via memset_io() past the mapped framebuffer is a memory-corruption primitive; per scoring guidance such primitives are treated as enabling high confidentiality impact when exploitation is considered.\nI:H - memset_io() writes past info->screen_size into ioremapped framebuffer memory with an attacker-controlled length, which is an out-of-bounds write and is scored as high integrity impact.\nA:H - The demonstrated impact is a kernel page fault/oops in memset_io() when the write walks off the mapped region, which is a full availability compromise of the kernel."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/arkfb.c"],"versions":[{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"4a20c5510aa2c031a096a58deb356e91609781c9","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"352305ea50d682b8e081d826da53caf9e744d7d0","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"53198b81930e567ad6b879812d88052a1e8ac79e","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"09e733d6ac948e6fda4b16252e44ea46f98fc8b4","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"0701df594bc1d7ae55fed407fb65dd90a93f8a9c","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"8bcb1a06e3091716b7cbebe0e91d1de9895068cd","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"2ce61c39c2a0b8ec82f48e0f7136f0dac105ae75","status":"affected","versionType":"git"},{"version":"681e14730c73cc2c71af282c001de6bc71c22f00","lessThan":"96b550971c65d54d64728d8ba973487878a06454","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/video/fbdev/arkfb.c"],"versions":[{"version":"2.6.22","status":"affected"},{"version":"0","lessThan":"2.6.22","status":"unaffected","versionType":"semver"},{"version":"4.14.291","lessThanOrEqual":"4.14.*","status":"unaffected","versionType":"semver"},{"version":"4.19.256","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.211","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.137","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.61","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"5.18.18","lessThanOrEqual":"5.18.*","status":"unaffected","versionType":"semver"},{"version":"5.19.2","lessThanOrEqual":"5.19.*","status":"unaffected","versionType":"semver"},{"version":"6.0","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"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"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/4a20c5510aa2c031a096a58deb356e91609781c9"},{"url":"https://git.kernel.org/stable/c/352305ea50d682b8e081d826da53caf9e744d7d0"},{"url":"https://git.kernel.org/stable/c/53198b81930e567ad6b879812d88052a1e8ac79e"},{"url":"https://git.kernel.org/stable/c/09e733d6ac948e6fda4b16252e44ea46f98fc8b4"},{"url":"https://git.kernel.org/stable/c/0701df594bc1d7ae55fed407fb65dd90a93f8a9c"},{"url":"https://git.kernel.org/stable/c/8bcb1a06e3091716b7cbebe0e91d1de9895068cd"},{"url":"https://git.kernel.org/stable/c/2ce61c39c2a0b8ec82f48e0f7136f0dac105ae75"},{"url":"https://git.kernel.org/stable/c/96b550971c65d54d64728d8ba973487878a06454"}],"title":"video: fbdev: arkfb: Check the size of screen before memset_io()","x_generator":{"engine":"bippy-1.2.0"}}}}