{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2024-46865",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2024-46865"
  ],
  "published": "2024-09-27T12:43:58Z",
  "summary": "fou: fix initialization of grc",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nfou: fix initialization of grc\n\nThe grc must be initialize first. There can be a condition where if\nfou is NULL, goto out will be executed and grc would be used\nuninitialized.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.6.51-1+rpt1",
        "1:6.6.51-1+rpt2",
        "1:6.6.51-1+rpt3"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-2712",
            "binary_version": "1:6.6.51-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v6",
            "binary_version": "1:6.6.51-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7",
            "binary_version": "1:6.6.51-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7l",
            "binary_version": "1:6.6.51-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v8",
            "binary_version": "1:6.6.51-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-2712",
            "binary_version": "1:6.6.51-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v6",
            "binary_version": "1:6.6.51-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7",
            "binary_version": "1:6.6.51-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7l",
            "binary_version": "1:6.6.51-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v8",
            "binary_version": "1:6.6.51-1+rpt2"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-2712",
            "binary_version": "1:6.6.51-1+rpt3"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v6",
            "binary_version": "1:6.6.51-1+rpt3"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7",
            "binary_version": "1:6.6.51-1+rpt3"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v7l",
            "binary_version": "1:6.6.51-1+rpt3"
          },
          {
            "binary_name": "linux-image-6.6.51+rpt-rpi-v8",
            "binary_version": "1:6.6.51-1+rpt3"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.6.51-1+rpt1": {
            "linux_commit": "0094eba3f2a4338cfa6854b0b5104d02ba0fa01f",
            "upstream_version": "6.6.51",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.6.52"
          },
          "1:6.6.51-1+rpt2": {
            "linux_commit": "82a50e430ef1d6eb37d78e25aa572c1f6ea56160",
            "upstream_version": "6.6.51",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.6.52"
          },
          "1:6.6.51-1+rpt3": {
            "linux_commit": "5aeecea9f4a45248bcf564dec924965e066a7bfd",
            "upstream_version": "6.6.51",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.6.52"
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2024-46865"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/392f6a97fcbecc64f0c00058b2db5bb0e4b8cc3e"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/16ff0895283058b0f96d4fe277aa25ee096f0ea8"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/5d537b8d900514509622ce92330b70d2e581d409"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7ae890ee19479eeeb87724cca8430b5cb3660c74"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/aca06c617c83295f0caa486ad608fbef7bdc11e8"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/4c8002277167125078e6b9b90137bdf443ebaa08"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-05T11:52:36Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 9.8,
      "cvss_v3_severity": "Critical",
      "scenario": "AV:N - The vulnerable code is the GUE/FOU GRO receive handler, reached purely from an inbound UDP datagram addressed to the configured FOU port via napi_gro_receive \u2192 inet_gro_receive \u2192 udp4_gro_receive \u2192 gue_gro_receive. A remote attacker anywhere on the network can drive this path with crafted packets.\nAC:L - The attacker can flood the FOU port continuously so a packet is always in flight, and FOU/netns teardown (the window where sk_user_data is NULL) is routine, frequent churn on container and cloud hosts that use FOU-encapsulated tunnels. The attacker also controls the value in the uninitialized stack slot by first sending a GUE packet with GUE_PFLAG_REMCSUM, which stores attacker-derived offset/delta into that exact frame slot in the same function.\nPR:N - There is no authentication, credential check, or capability test anywhere between packet reception and gue_gro_receive; the FOU socket accepts unsolicited datagrams. No local account or privilege of any kind is required.\nUI:N - Exploitation occurs entirely in softirq context on packet receipt with no victim action required.\nS:U - The uninitialized-value use and the resulting write both occur within the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The bug reads uninitialized kernel stack memory and folds it into a 16-bit value written into an in-flight network buffer, and the same defect provides an out-of-bounds write primitive at a partially attacker-influenced offset, which under kernel scoring practice is treated as leverageable for arbitrary memory disclosure.\nI:H - remcsum_unadjust() performs a 2-byte write through a pointer computed from the uninitialized (and attacker-groomable) grc->offset; when the size_t arithmetic wraps the write lands far outside any legitimate buffer, giving an out-of-bounds write into kernel memory that can be leveraged for control-flow-relevant corruption.\nA:H - The wild-pointer 2-byte write at frag0 + ~4GiB faults on unmapped kernel memory and oopses in softirq context, and the surrounding corruption of GRO/checksum state destabilises the receive path \u2014 a remote unauthenticated kernel crash."
    }
  }
}
