{
    "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"
            }
        }
    }
}