{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-43236",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-43236"
  ],
  "published": "2026-05-06T11:29:17Z",
  "summary": "drm/atmel-hlcdc: fix use-after-free of drm_crtc_commit after release",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/atmel-hlcdc: fix use-after-free of drm_crtc_commit after release\n\nThe atmel_hlcdc_plane_atomic_duplicate_state() callback was copying\nthe atmel_hlcdc_plane state structure without properly duplicating the\ndrm_plane_state. In particular, state->commit remained set to the old\nstate commit, which can lead to a use-after-free in the next\ndrm_atomic_commit() call.\n\nFix this by calling\n__drm_atomic_helper_duplicate_plane_state(), which correctly clones\nthe base drm_plane_state (including the ->commit pointer).\n\nIt has been seen when closing and re-opening the device node while\nanother DRM client (e.g. fbdev) is still attached:\n\n=============================================================================\nBUG kmalloc-64 (Not tainted): Poison overwritten\n-----------------------------------------------------------------------------\n\n0xc611b344-0xc611b344 @offset=836. First byte 0x6a instead of 0x6b\nFIX kmalloc-64: Restoring Poison 0xc611b344-0xc611b344=0x6b\nAllocated in drm_atomic_helper_setup_commit+0x1e8/0x7bc age=178 cpu=0\npid=29\n drm_atomic_helper_setup_commit+0x1e8/0x7bc\n drm_atomic_helper_commit+0x3c/0x15c\n drm_atomic_commit+0xc0/0xf4\n drm_framebuffer_remove+0x4cc/0x5a8\n drm_mode_rmfb_work_fn+0x6c/0x80\n process_one_work+0x12c/0x2cc\n worker_thread+0x2a8/0x400\n kthread+0xc0/0xdc\n ret_from_fork+0x14/0x28\nFreed in drm_atomic_helper_commit_hw_done+0x100/0x150 age=8 cpu=0\npid=169\n drm_atomic_helper_commit_hw_done+0x100/0x150\n drm_atomic_helper_commit_tail+0x64/0x8c\n commit_tail+0x168/0x18c\n drm_atomic_helper_commit+0x138/0x15c\n drm_atomic_commit+0xc0/0xf4\n drm_atomic_helper_set_config+0x84/0xb8\n drm_mode_setcrtc+0x32c/0x810\n drm_ioctl+0x20c/0x488\n sys_ioctl+0x14c/0xc20\n ret_fast_syscall+0x0/0x54\nSlab 0xef8bc360 objects=21 used=16 fp=0xc611b7c0\nflags=0x200(workingset|zone=0)\nObject 0xc611b340 @offset=832 fp=0xc611b7c0",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.47-1+rpt4"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.165",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-43236"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/fd4a4d0711f48a99b25bcd45e00eef8339eff82d"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/6404898af86d986db1dbbe06177c143e40652e49"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/796e77c14c4c1e2cd36473760fb6cc66c695eb47"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/ac2d898da5095d46bd1ff8585fdd753d58ad91e7"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/a205740a7231e967ac77cb731171642901c327af"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7b4d0fab3ff2c00c6d34e1952c9df5129a826aee"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/549c6db503dbb85dbff4840830971853feac6625"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/bc847787233277a337788568e90a6ee1557595eb"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T13:16:28Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.8,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The vulnerable atmel-hlcdc DRM driver is reached through local DRM/KMS device-node operations such as SETCRTC, atomic commits, framebuffer removal, and close/reopen cleanup. There is no network, adjacent-radio, or physical-device parsing path to this code.\nAC:L - The trigger is a repeatable local sequence that duplicates plane state with a stale commit pointer and then runs another atomic commit; it does not require winning an attacker-uncontrolled race. Closing/reopening while another DRM client such as fbdev is attached is a normal and reasonable display-device condition.\nPR:L - The relevant KMS modeset paths require DRM master, but an unprivileged local seat/display user can obtain or be delegated a DRM primary-node master fd without real root. Framebuffer removal and file-close cleanup paths are ordinary local file operations after that setup.\nUI:N - The attacker can trigger the needed DRM ioctls and file lifecycle operations directly from their own process. No separate victim action is required.\nS:U - The bug corrupts kernel DRM state within the same host kernel security authority. It is not a VM escape, IOMMU bypass, or cross-scope hardware isolation break.\nC:H - This is a kernel use-after-free of a kmalloc-backed drm_crtc_commit object, with stale references later used by DRM atomic commit handling. Such freed-object reuse can plausibly be shaped into kernel memory disclosure, so confidentiality impact is High.\nI:H - The stale commit pointer can lead to writes/refcount/completion operations on freed and potentially reallocated kernel heap memory. As a kernel UAF with plausible heap spraying and control-flow or data corruption potential, integrity impact is High.\nA:H - The reported failure already shows slab poison corruption after the freed commit object is reused, and repeated triggering can crash or destabilize the kernel. Kernel oops/panic-level denial of service makes availability impact High."
    }
  }
}
