{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-23180",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-23180"
  ],
  "published": "2026-02-14T16:28:50Z",
  "summary": "dpaa2-switch: add bounds check for if_id in IRQ handler",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ndpaa2-switch: add bounds check for if_id in IRQ handler\n\nThe IRQ handler extracts if_id from the upper 16 bits of the hardware\nstatus register and uses it to index into ethsw->ports[] without\nvalidation. Since if_id can be any 16-bit value (0-65535) but the ports\narray is only allocated with sw_attr.num_ifs elements, this can lead to\nan out-of-bounds read potentially.\n\nAdd a bounds check before accessing the array, consistent with the\nexisting validation in dpaa2_switch_rx().",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:H/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.163",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-23180"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/77611cab5bdfff7a070ae574bbfba20a1de99d1b"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/34b56c16efd61325d80bf1d780d0e176be662f59"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/f89e33c9c37f0001b730e23b3b05ab7b1ecface2"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/2447edc367800ba914acf7ddd5d250416b45fb31"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/1b381a638e1851d8cfdfe08ed9cdbec5295b18c9"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/31a7a0bbeb006bac2d9c81a2874825025214b6d8"
    }
  ],
  "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.0,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The vulnerability is in a hardware IRQ handler for NXP DPAA2 Ethernet switch hardware. The if_id comes from MC firmware via hardware registers, requiring at minimum local access to the system running this hardware. Not remotely triggerable via network packets.\nAC:H - The attacker cannot control the if_id value returned by the MC firmware in the IRQ status register. Triggering an out-of-bounds if_id requires a firmware bug or hardware anomaly, which are conditions beyond the attacker's control.\nPR:L - While the IRQ fires from hardware events, a local user on a system with DPAA2 hardware could potentially trigger link state change events. No special privileges beyond basic local access are required to cause network interface events.\nUI:N - No user interaction is required. The IRQ handler fires automatically in response to hardware events without any user action.\nS:U - The vulnerability affects the kernel in its own security context. There is no crossing of security boundaries such as VM escape or IOMMU bypass.\nC:H - The OOB read on the heap-allocated ports pointer array (up to 64K entries beyond bounds) reads arbitrary kernel heap memory. The dereferenced pointer then accesses further arbitrary memory, potentially disclosing kernel data.\nI:H - The OOB-read pointer is dereferenced and used to call functions that modify port state (link state update, MAC address set, MAC connect/disconnect). If the OOB-read pointer happens to point to attacker-influenced memory, this could enable arbitrary writes.\nA:H - Dereferencing a garbage pointer read from OOB heap memory will almost certainly cause a kernel crash (oops or panic), resulting in complete denial of service."
    }
  }
}
