CVE-2026-53024 (GCVE-0-2026-53024)

Vulnerability from cvelistv5 – Published: 2026-06-24 16:29 – Updated: 2026-08-05 12:32
VLAI
Title
greybus: raw: fix use-after-free if write is called after disconnect
Summary
In the Linux kernel, the following vulnerability has been resolved: greybus: raw: fix use-after-free if write is called after disconnect If a user writes to the chardev after disconnect has been called, the kernel panics with the following trace (with CONFIG_INIT_ON_FREE_DEFAULT_ON=y): BUG: kernel NULL pointer dereference, address: 0000000000000218 ... Call Trace: <TASK> gb_operation_create_common+0x61/0x180 gb_operation_create_flags+0x28/0xa0 gb_operation_sync_timeout+0x6f/0x100 raw_write+0x7b/0xc7 [gb_raw] vfs_write+0xcf/0x420 ? task_mm_cid_work+0x136/0x220 ksys_write+0x63/0xe0 do_syscall_64+0xa4/0x290 entry_SYSCALL_64_after_hwframe+0x77/0x7f Disconnect calls gb_connection_destroy, which ends up freeing the connection object. When gb_operation_sync is called in the write file operations, its gets a freed connection as parameter and the kernel panics. The gb_connection_destroy cannot be moved out of the disconnect function, as the Greybus subsystem expect all connections belonging to a bundle to be destroyed when disconnect returns. To prevent this bug, use a rw lock to synchronize access between write and disconnect. This guarantees that the write function doesn't try to use a disconnected connection.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: e806c7fb8e9bae87fc23958c3789f2c2f96f54a4 , < 48d6c32bc049abd114e8f0836c0e7d7cbfba7827 (git)
Affected: e806c7fb8e9bae87fc23958c3789f2c2f96f54a4 , < 84265cbd96b97058ef67e3f8be3933667a000835 (git)
Create a notification for this product.
Linux Linux Affected: 4.9
Unaffected: 0 , < 4.9 (semver)
Unaffected: 7.0.10 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/staging/greybus/raw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "48d6c32bc049abd114e8f0836c0e7d7cbfba7827",
              "status": "affected",
              "version": "e806c7fb8e9bae87fc23958c3789f2c2f96f54a4",
              "versionType": "git"
            },
            {
              "lessThan": "84265cbd96b97058ef67e3f8be3933667a000835",
              "status": "affected",
              "version": "e806c7fb8e9bae87fc23958c3789f2c2f96f54a4",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/staging/greybus/raw.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.9"
            },
            {
              "lessThan": "4.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.10",
                  "versionStartIncluding": "4.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "4.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngreybus: raw: fix use-after-free if write is called after disconnect\n\nIf a user writes to the chardev after disconnect has been called, the\nkernel panics with the following trace (with\nCONFIG_INIT_ON_FREE_DEFAULT_ON=y):\n\n        BUG: kernel NULL pointer dereference, address: 0000000000000218\n         ...\n        Call Trace:\n         \u003cTASK\u003e\n         gb_operation_create_common+0x61/0x180\n         gb_operation_create_flags+0x28/0xa0\n         gb_operation_sync_timeout+0x6f/0x100\n         raw_write+0x7b/0xc7 [gb_raw]\n         vfs_write+0xcf/0x420\n         ? task_mm_cid_work+0x136/0x220\n         ksys_write+0x63/0xe0\n         do_syscall_64+0xa4/0x290\n         entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nDisconnect calls gb_connection_destroy, which ends up freeing the\nconnection object. When gb_operation_sync is called in the write file\noperations, its gets a freed connection as parameter and the kernel\npanics.\n\nThe gb_connection_destroy cannot be moved out of the disconnect\nfunction, as the Greybus subsystem expect all connections belonging to a\nbundle to be destroyed when disconnect returns.\n\nTo prevent this bug, use a rw lock to synchronize access between write\nand disconnect. This guarantees that the write function doesn\u0027t try\nto use a disconnected connection."
        }
      ],
      "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 - The vulnerable path is reached by a local `write(2)` to the Greybus raw character device, not by network packets. Although disconnect can be caused by Greybus hotplug/removal events, the crashing UAF is triggered from the local file operation.\nAC:L - After a process keeps the raw chardev open across disconnect, a subsequent write reliably uses the destroyed `gb_connection`; no hard race or attacker-uncontrolled memory layout is required to trigger the bug. Under the conservative rule, the UAF exploitation complexity is Low.\nPR:L - The raw driver has no capability, ioctl, or authentication checks in open/write; access is gated by ordinary permission to the created chardev. A basic local user with write access to that device can reach the vulnerable path.\nUI:N - The attacker can open the device, keep the fd, and issue the write after disconnect without requiring another user to perform an action. No victim interaction is inherent to the vulnerable syscall path.\nS:U - The impact is within the kernel/host security authority. This is not a guest-to-host, IOMMU, or separate-scope boundary crossing.\nC:H - The bug is a use-after-free of `struct gb_connection`, and the stale object is dereferenced by Greybus operation creation and transport paths. As a kernel UAF, it is conservatively treated as capable of enabling kernel memory disclosure.\nI:H - The freed connection contains pointers used to reach host-device and driver operation paths, so heap reuse could plausibly turn the stale pointer into control-flow or write primitives. Under the required conservative UAF guidance, integrity impact is High.\nA:H - The upstream report shows a kernel panic/NULL dereference when writing after disconnect, and UAFs can repeatedly crash the kernel. Availability impact is therefore High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:32:41.861Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/48d6c32bc049abd114e8f0836c0e7d7cbfba7827"
        },
        {
          "url": "https://git.kernel.org/stable/c/84265cbd96b97058ef67e3f8be3933667a000835"
        }
      ],
      "title": "greybus: raw: fix use-after-free if write is called after disconnect",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53024",
    "datePublished": "2026-06-24T16:29:33.184Z",
    "dateReserved": "2026-06-09T07:44:35.379Z",
    "dateUpdated": "2026-08-05T12:32:41.861Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-53024",
      "date": "2026-08-05",
      "epss": "0.00129",
      "percentile": "0.02972"
    },
    "microsoft_vex": {
      "current_release_date": "2026-07-02T14:46:49.000Z",
      "cve": "CVE-2026-53024",
      "id": "msrc_CVE-2026-53024",
      "initial_release_date": "2026-06-02T00:00:00.000Z",
      "product_status:known_affected": "1",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "greybus: raw: fix use-after-free if write is called after disconnect",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-53024.json",
      "version": "3"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-53024\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-06-24T17:17:13.760\",\"lastModified\":\"2026-07-15T13:56:25.090\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ngreybus: raw: fix use-after-free if write is called after disconnect\\n\\nIf a user writes to the chardev after disconnect has been called, the\\nkernel panics with the following trace (with\\nCONFIG_INIT_ON_FREE_DEFAULT_ON=y):\\n\\n        BUG: kernel NULL pointer dereference, address: 0000000000000218\\n         ...\\n        Call Trace:\\n         \u003cTASK\u003e\\n         gb_operation_create_common+0x61/0x180\\n         gb_operation_create_flags+0x28/0xa0\\n         gb_operation_sync_timeout+0x6f/0x100\\n         raw_write+0x7b/0xc7 [gb_raw]\\n         vfs_write+0xcf/0x420\\n         ? task_mm_cid_work+0x136/0x220\\n         ksys_write+0x63/0xe0\\n         do_syscall_64+0xa4/0x290\\n         entry_SYSCALL_64_after_hwframe+0x77/0x7f\\n\\nDisconnect calls gb_connection_destroy, which ends up freeing the\\nconnection object. When gb_operation_sync is called in the write file\\noperations, its gets a freed connection as parameter and the kernel\\npanics.\\n\\nThe gb_connection_destroy cannot be moved out of the disconnect\\nfunction, as the Greybus subsystem expect all connections belonging to a\\nbundle to be destroyed when disconnect returns.\\n\\nTo prevent this bug, use a rw lock to synchronize access between write\\nand disconnect. This guarantees that the write function doesn\u0027t try\\nto use a disconnected connection.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/staging/greybus/raw.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e806c7fb8e9bae87fc23958c3789f2c2f96f54a4\",\"lessThan\":\"48d6c32bc049abd114e8f0836c0e7d7cbfba7827\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"e806c7fb8e9bae87fc23958c3789f2c2f96f54a4\",\"lessThan\":\"84265cbd96b97058ef67e3f8be3933667a000835\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/staging/greybus/raw.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.9\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.9\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0.10\",\"lessThanOrEqual\":\"7.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"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\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.9\",\"versionEndExcluding\":\"7.0.10\",\"matchCriteriaId\":\"678B0323-855A-490E-976E-4D1E35083C62\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/48d6c32bc049abd114e8f0836c0e7d7cbfba7827\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/84265cbd96b97058ef67e3f8be3933667a000835\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-26T19:05:04+00:00",
      "cve": "CVE-2026-53024",
      "id": "CVE-2026-53024",
      "initial_release_date": "2026-06-24T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: greybus: raw: fix use-after-free if write is called after disconnect",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-53024.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-06-26T02:13:14Z",
      "cve": "CVE-2026-53024",
      "id": "CVE-2026-53024",
      "initial_release_date": "2026-06-26T02:13:14Z",
      "product_status:known_affected": "285",
      "product_status:known_not_affected": "6",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-53024",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-53024.json",
      "version": "2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…