{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2023-53600",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2023-53600"
  ],
  "published": "2025-10-04T15:52:53Z",
  "summary": "tunnels: fix kasan splat when generating ipv4 pmtu error",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ntunnels: fix kasan splat when generating ipv4 pmtu error\n\nIf we try to emit an icmp error in response to a nonliner skb, we get\n\nBUG: KASAN: slab-out-of-bounds in ip_compute_csum+0x134/0x220\nRead of size 4 at addr ffff88811c50db00 by task iperf3/1691\nCPU: 2 PID: 1691 Comm: iperf3 Not tainted 6.5.0-rc3+ #309\n[..]\n kasan_report+0x105/0x140\n ip_compute_csum+0x134/0x220\n iptunnel_pmtud_build_icmp+0x554/0x1020\n skb_tunnel_check_pmtu+0x513/0xb80\n vxlan_xmit_one+0x139e/0x2ef0\n vxlan_xmit+0x1867/0x2760\n dev_hard_start_xmit+0x1ee/0x4f0\n br_dev_queue_push_xmit+0x4d1/0x660\n [..]\n\nip_compute_csum() cannot deal with nonlinear skbs, so avoid it.\nAfter this change, splat is gone and iperf3 is no longer stuck.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.21-1+rpt1"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v6",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v7",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v7l",
            "binary_version": "1:6.1.21-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi1-rpi-v8",
            "binary_version": "1:6.1.21-1+rpt1"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.21-1+rpt1": {
            "linux_commit": "0afb5e98488aed7017b9bf321b575d0177feb7ed",
            "upstream_version": "6.1.21",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.46"
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2023-53600"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/5850c391fd7e25662334cb3cbf29a62bcbff1084"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/e95808121953410db8c59f0abfde70ac0d34222c"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/da5f42a6e7485fbb7a6dbd6a2b3045e19e4df5cc"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/fe6a9f7516735be9fdabab00e47ef7a3403a174d"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/6a7ac3d20593865209dceb554d8b3f094c6bd940"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T11:24:39Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 9.1,
      "cvss_v3_severity": "Critical",
      "scenario": "AV:N - The vulnerable code runs on the bridge/tunnel forwarding path (`br_dev_queue_push_xmit` \u2192 `vxlan_xmit` \u2192 `skb_tunnel_check_pmtu`), driven entirely by the size, DF flag and layout of an IP packet that a remote host injected into the bridged VXLAN/Geneve overlay; no local access is needed and the leaked checksum is mailed back to the sender.\nAC:L - The attacker controls every trigger condition \u2014 packet size above the tunnel PMTU, the DF bit, and the addresses/protocol that pass the filters in `iptunnel_pmtud_check_icmp()` \u2014 and nonlinearity is the default state for large skbs (NIC page frags, GRO, GSO), so the OOB read fires reliably on the first oversized packet.\nPR:N - No privileges exist on this path: the packet is processed unauthenticated on the bridge forwarding/transmit path with no capability, credential or namespace check between packet reception and `ip_compute_csum()`.\nUI:N - No victim action is required; the kernel autonomously generates the PMTU ICMP error as soon as an oversized DF packet is forwarded to the tunnel port.\nS:U - The out-of-bounds read and its effects stay within the kernel's own security authority; no VM, IOMMU or sandbox boundary is crossed.\nC:H - Up to ~514 bytes of slab memory adjacent to the skb head are read out of bounds and folded into the ICMP checksum of a packet sent back to the attacker, disclosing adjacent kernel heap state to an off-host observer.\nI:N - The defect is a pure read overrun \u2014 `ip_compute_csum()` only reads, and all writes (`skb_push`, header construction) remain within the region guaranteed by `skb_cow()`, so no kernel memory is modified.\nA:H - The bogus checksum makes the peer drop the ICMP FRAG_NEEDED, black-holing PMTU discovery and hanging tunneled TCP transfers indefinitely (the reported stuck iperf3), and the multi-hundred-byte slab overread oopses the kernel under hardened/debug memory configurations."
    }
  }
}
