Skip to content
Heist/ feed
Back to feed
HighFix available

fbdev: core: Fix pointer desynchronization in fb_io_read()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: fbdev: core: Fix pointer desynchronization in fb_io_read() In fb_io_read(), if copy_to_user() performs a partial copy (e.g., due to a faulty user buffer), the loop adjusts the chunk size 'c' and updates the remaining 'count'. However, the hardware 'src' pointer has already been eagerly advanced by the original chunk size. If the loop is allowed to continue, the read will resume from an incorrect, over-advanced offset. Since the remaining 'count' was only decremented by the successful bytes, this desynchronization causes the next iterations to execute more hardware reads than originally bounded, eventually leading to out-of-bounds I/O reads. Fix this by breaking out of the loop immediately upon a partial copy_to_user(). A partial copy indicates a faulty user buffer, making subsequent read attempts futile. Breaking out ensures we return the number of successfully read bytes without risking out-of-bounds hardware accesses in subsequent mismatched iterations.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.12.105, 6.18.46, 6.6.153, 7.1.10
CVEs
CVE-2026-80578
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 02:58 UTC · Revision 1

Source evidence

fbdev: core: Fix pointer desynchronization in fb_io_read()

core-osv · Original source

Published 26 Aug 2026, 14:37 UTC

In the Linux kernel, the following vulnerability has been resolved: fbdev: core: Fix pointer desynchronization in fb_io_read() In fb_io_read(), if copy_to_user() performs a partial copy (e.g., due to a faulty user buffer), the loop adjusts the chunk size 'c' and updates the remaining 'count'. However, the hardware 'src' pointer has already been eagerly advanced by the original chunk size. If the loop is allowed to continue, the read will resume from an incorrect, over-advanced offset. Since the remaining 'count' was only decremented by the successful bytes, this desynchronization causes the next iterations to execute more hardware reads than originally bounded, eventually leading to out-of-bounds I/O reads. Fix this by breaking out of the loop immediately upon a partial copy_to_user(). A partial copy indicates a faulty user buffer, making subsequent read attempts futile. Breaking out ensures we return the number of successfully read bytes without risking out-of-bounds hardware accesses in subsequent mismatched iterations.

osv:CVE-2026-80578

Kernel

Fixed versions: 6.6.153, 6.12.105, 6.18.46, 7.1.10

Complete source record
{
  "id": "5a2db79b59d28fad4931bfd3f3a3003de433c3535343570a641b0e9df9c72b76",
  "url": "https://osv.dev/vulnerability/CVE-2026-80578",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "fbdev: core: Fix pointer desynchronization in fb_io_read()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: fbdev: core: Fix pointer desynchronization in fb_io_read() In fb_io_read(), if copy_to_user() performs a partial copy (e.g., due to a faulty user buffer), the loop adjusts the chunk size 'c' and updates the remaining 'count'. However, the hardware 'src' pointer has already been eagerly advanced by the original chunk size. If the loop is allowed to continue, the read will resume from an incorrect, over-advanced offset. Since the remaining 'count' was only decremented by the successful bytes, this desynchronization causes the next iterations to execute more hardware reads than originally bounded, eventually leading to out-of-bounds I/O reads. Fix this by breaking out of the loop immediately upon a partial copy_to_user(). A partial copy indicates a faulty user buffer, making subsequent read attempts futile. Breaking out ensures we return the number of successfully read bytes without risking out-of-bounds hardware accesses in subsequent mismatched iterations.",
    "evidence": "osv:CVE-2026-80578",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.6.153",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.105",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.46",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.1.10",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-80578",
      "aliases": [
        "CVE-2026-80578"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "6121cd9ef911432b14c2a17aefaf8cd2f3cfcdff"
                },
                {
                  "fixed": "42bc07b4e5a3c8a02a433388f562a8f46d093e11"
                },
                {
                  "fixed": "42a6d8126c194133eafab2b0fd5c8668ebfcba5b"
                },
                {
                  "fixed": "7ff87a01ae3a8cd0208f7499386998223a8b5dba"
                },
                {
                  "fixed": "7110b7b794a2aac2c5cf8eb06ebf2af724c74d50"
                },
                {
                  "fixed": "81cc73be40c6f028f1ee3f438ace46afe666dbae"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80578.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.5.0"
                },
                {
                  "fixed": "6.6.153"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.105"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.46"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.1.10"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80578.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.048433618Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/42a6d8126c194133eafab2b0fd5c8668ebfcba5b",
        "https://git.kernel.org/stable/c/42bc07b4e5a3c8a02a433388f562a8f46d093e11",
        "https://git.kernel.org/stable/c/7110b7b794a2aac2c5cf8eb06ebf2af724c74d50",
        "https://git.kernel.org/stable/c/7ff87a01ae3a8cd0208f7499386998223a8b5dba",
        "https://git.kernel.org/stable/c/81cc73be40c6f028f1ee3f438ace46afe666dbae",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80578.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-80578",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80578.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-80578",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517563,
  "published_at": "2026-08-26T14:37:36.722+00:00"
}