CVE-2023-52731 (GCVE-0-2023-52731)
Vulnerability from cvelistv5
Published
2024-05-21 15:22
Modified
2026-08-05 09:11
Summary
In the Linux kernel, the following vulnerability has been resolved: fbdev: Fix invalid page access after closing deferred I/O devices When a fbdev with deferred I/O is once opened and closed, the dirty pages still remain queued in the pageref list, and eventually later those may be processed in the delayed work. This may lead to a corruption of pages, hitting an Oops. This patch makes sure to cancel the delayed work and clean up the pageref list at closing the device for addressing the bug. A part of the cleanup code is factored out as a new helper function that is called from the common fb_release().
Impacted products
Vendor Product Version
Linux Linux Version: 186b89659c4c67cccead52961eab0ca3b23951dc
Version: 56c134f7f1b58be08bdb0ca8372474a4a5165f31
Version: 56c134f7f1b58be08bdb0ca8372474a4a5165f31
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T23:11:35.499Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/87b9802ca824fcee7915e717e9a60471af62e8e9"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/f1d91f0e9d5a240a809698d7d9c5a538e7dcc149"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/3efc61d95259956db25347e2a9562c3e54546e20"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2023-52731",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:37:38.155499Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:36.311Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/video/fbdev/core/fb_defio.c",
            "drivers/video/fbdev/core/fbmem.c",
            "include/linux/fb.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "87b9802ca824fcee7915e717e9a60471af62e8e9",
              "status": "affected",
              "version": "186b89659c4c67cccead52961eab0ca3b23951dc",
              "versionType": "git"
            },
            {
              "lessThan": "f1d91f0e9d5a240a809698d7d9c5a538e7dcc149",
              "status": "affected",
              "version": "56c134f7f1b58be08bdb0ca8372474a4a5165f31",
              "versionType": "git"
            },
            {
              "lessThan": "3efc61d95259956db25347e2a9562c3e54546e20",
              "status": "affected",
              "version": "56c134f7f1b58be08bdb0ca8372474a4a5165f31",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/video/fbdev/core/fb_defio.c",
            "drivers/video/fbdev/core/fbmem.c",
            "include/linux/fb.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.19"
            },
            {
              "lessThan": "5.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.13",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2",
                  "versionStartIncluding": "5.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: Fix invalid page access after closing deferred I/O devices\n\nWhen a fbdev with deferred I/O is once opened and closed, the dirty\npages still remain queued in the pageref list, and eventually later\nthose may be processed in the delayed work.  This may lead to a\ncorruption of pages, hitting an Oops.\n\nThis patch makes sure to cancel the delayed work and clean up the\npageref list at closing the device for addressing the bug.  A part of\nthe cleanup code is factored out as a new helper function that is\ncalled from the common fb_release()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires opening, mmaping, writing, and closing a local framebuffer device node (/dev/fb*), which is a local syscall/device-file attack path rather than network or adjacent-network access.\nAC:L - The attacker fully controls the trigger sequence (mmap write to queue dirty pagerefs and schedule delayed work, then close before the work runs); the deferred-I/O delay is deterministic and requires no conditions outside attacker control.\nPR:L - fb_open/fb_mmap impose no capability checks; access is gated only by /dev/fb* permissions (typically root:video), so an unprivileged video-group or similarly permitted local user can reach the bug without real root.\nUI:N - The attacker performs open/mmap/write/close themselves; no separate victim action is required to trigger the deferred work on the stale pageref list.\nS:U - Impact is confined to the host kernel authority (local privilege escalation / crash); this is not a VM escape, IOMMU bypass, or other cross-boundary scope change.\nC:H - Closing leaves dirty pagerefs queued and page-\u003emapping set on framebuffer pages, so later deferred work performs invalid page access and page corruption; such kernel memory corruption can be leveraged for information disclosure.\nI:H - The same stale-pageref / unclean page-\u003emapping path corrupts kernel page state and can be abused for integrity violation or control-flow hijacking, consistent with treating this class of memory corruption as high integrity impact.\nA:H - The commit explicitly documents that processing the leftover pagerefs after close leads to an Oops/kernel crash, which is high availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:11:07.269Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/87b9802ca824fcee7915e717e9a60471af62e8e9"
        },
        {
          "url": "https://git.kernel.org/stable/c/f1d91f0e9d5a240a809698d7d9c5a538e7dcc149"
        },
        {
          "url": "https://git.kernel.org/stable/c/3efc61d95259956db25347e2a9562c3e54546e20"
        }
      ],
      "title": "fbdev: Fix invalid page access after closing deferred I/O devices",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-52731",
    "datePublished": "2024-05-21T15:22:57.282Z",
    "dateReserved": "2024-05-21T15:19:24.232Z",
    "dateUpdated": "2026-08-05T09:11:07.269Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/87b9802ca824fcee7915e717e9a60471af62e8e9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/f1d91f0e9d5a240a809698d7d9c5a538e7dcc149\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3efc61d95259956db25347e2a9562c3e54546e20\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T23:11:35.499Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2023-52731\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:37:38.155499Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:17.587Z\"}}], \"cna\": {\"title\": \"fbdev: Fix invalid page access after closing deferred I/O devices\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - Exploitation requires opening, mmaping, writing, and closing a local framebuffer device node (/dev/fb*), which is a local syscall/device-file attack path rather than network or adjacent-network access.\\nAC:L - The attacker fully controls the trigger sequence (mmap write to queue dirty pagerefs and schedule delayed work, then close before the work runs); the deferred-I/O delay is deterministic and requires no conditions outside attacker control.\\nPR:L - fb_open/fb_mmap impose no capability checks; access is gated only by /dev/fb* permissions (typically root:video), so an unprivileged video-group or similarly permitted local user can reach the bug without real root.\\nUI:N - The attacker performs open/mmap/write/close themselves; no separate victim action is required to trigger the deferred work on the stale pageref list.\\nS:U - Impact is confined to the host kernel authority (local privilege escalation / crash); this is not a VM escape, IOMMU bypass, or other cross-boundary scope change.\\nC:H - Closing leaves dirty pagerefs queued and page-\u003emapping set on framebuffer pages, so later deferred work performs invalid page access and page corruption; such kernel memory corruption can be leveraged for information disclosure.\\nI:H - The same stale-pageref / unclean page-\u003emapping path corrupts kernel page state and can be abused for integrity violation or control-flow hijacking, consistent with treating this class of memory corruption as high integrity impact.\\nA:H - The commit explicitly documents that processing the leftover pagerefs after close leads to an Oops/kernel crash, which is high availability impact.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"186b89659c4c67cccead52961eab0ca3b23951dc\", \"lessThan\": \"87b9802ca824fcee7915e717e9a60471af62e8e9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"56c134f7f1b58be08bdb0ca8372474a4a5165f31\", \"lessThan\": \"f1d91f0e9d5a240a809698d7d9c5a538e7dcc149\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"56c134f7f1b58be08bdb0ca8372474a4a5165f31\", \"lessThan\": \"3efc61d95259956db25347e2a9562c3e54546e20\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/video/fbdev/core/fb_defio.c\", \"drivers/video/fbdev/core/fbmem.c\", \"include/linux/fb.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.19\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.19\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.1.13\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.2\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/video/fbdev/core/fb_defio.c\", \"drivers/video/fbdev/core/fbmem.c\", \"include/linux/fb.h\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/87b9802ca824fcee7915e717e9a60471af62e8e9\"}, {\"url\": \"https://git.kernel.org/stable/c/f1d91f0e9d5a240a809698d7d9c5a538e7dcc149\"}, {\"url\": \"https://git.kernel.org/stable/c/3efc61d95259956db25347e2a9562c3e54546e20\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nfbdev: Fix invalid page access after closing deferred I/O devices\\n\\nWhen a fbdev with deferred I/O is once opened and closed, the dirty\\npages still remain queued in the pageref list, and eventually later\\nthose may be processed in the delayed work.  This may lead to a\\ncorruption of pages, hitting an Oops.\\n\\nThis patch makes sure to cancel the delayed work and clean up the\\npageref list at closing the device for addressing the bug.  A part of\\nthe cleanup code is factored out as a new helper function that is\\ncalled from the common fb_release().\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.13\", \"versionStartIncluding\": \"5.19\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.2\", \"versionStartIncluding\": \"5.19\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T09:11:07.269Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2023-52731\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T09:11:07.269Z\", \"dateReserved\": \"2024-05-21T15:19:24.232Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-21T15:22:57.282Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…