CVE-2024-53099 (GCVE-0-2024-53099)
Vulnerability from cvelistv5
Published
2024-11-25 21:21
Modified
2026-08-05 11:43
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Check validity of link->type in bpf_link_show_fdinfo() If a newly-added link type doesn't invoke BPF_LINK_TYPE(), accessing bpf_link_type_strs[link->type] may result in an out-of-bounds access. To spot such missed invocations early in the future, checking the validity of link->type in bpf_link_show_fdinfo() and emitting a warning when such invocations are missed.
Impacted products
Vendor Product Version
Linux Linux Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Version: 70ed506c3bbcfa846d4636b23051ca79fa4781f7
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T20:45:50.627Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"
          },
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/syscall.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "79f87a6ec39fb5968049a6775a528bf58b25c20a",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            },
            {
              "lessThan": "24fec234d2ba9ca3c14e545ebe3fd6dcb47f074d",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            },
            {
              "lessThan": "4e8074bb33d18f56af30a0252cb3606d27eb1c13",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            },
            {
              "lessThan": "d5092b0a1aaf35d77ebd8d33384d7930bec5cb5d",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            },
            {
              "lessThan": "b3eb1b6a9f745d6941b345f0fae014dc8bb06d36",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            },
            {
              "lessThan": "8421d4c8762bd022cb491f2f0f7019ef51b4f0a7",
              "status": "affected",
              "version": "70ed506c3bbcfa846d4636b23051ca79fa4781f7",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/syscall.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.7"
            },
            {
              "lessThan": "5.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.233",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.176",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.123",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.62",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.11.*",
              "status": "unaffected",
              "version": "6.11.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.12",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.233",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.176",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.123",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.62",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11.9",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Check validity of link-\u003etype in bpf_link_show_fdinfo()\n\nIf a newly-added link type doesn\u0027t invoke BPF_LINK_TYPE(), accessing\nbpf_link_type_strs[link-\u003etype] may result in an out-of-bounds access.\n\nTo spot such missed invocations early in the future, checking the\nvalidity of link-\u003etype in bpf_link_show_fdinfo() and emitting a warning\nwhen such invocations are missed."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Triggering requires the local `bpf()` syscall to create a link and a local `read()` of `/proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e`; there is no remote or adjacent-network path into `bpf_link_show_fdinfo()`. Per kernel guidance, BPF subsystem bugs are Local.\nAC:L - The out-of-bounds slot and its contents are fixed for a given kernel build, so the attacker simply creates the link and reads its fdinfo \u2014 no race to win, no memory grooming, and no condition outside attacker control. Success is deterministic and repeatable.\nPR:L - A local unprivileged account suffices: link creation needs only CAP_BPF/CAP_NET_ADMIN, which are commonly delegated to non-root containers and services and are unnecessary altogether on the many embedded/Android/distro configs with `unprivileged_bpf_disabled=0`. Reading a bpffs-pinned or inherited link fd\u0027s fdinfo requires no capability at all beyond owning the task.\nUI:N - The attacker performs both steps \u2014 creating the bpf_link and reading its fdinfo \u2014 entirely within its own process. No victim action or privileged helper is involved.\nS:U - The out-of-bounds read and the resulting disclosure or fault are confined to the kernel of the running system, the same security authority that manages the attacking process. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - The OOB-loaded `const char *` is dereferenced by `seq_printf(\"%s\")` and copied verbatim into the fdinfo output read by userspace, leaking an unbounded NUL-terminated run of kernel `.rodata`/`.data` from an address the kernel never validated. The leak is not bounded to a few bytes and can disclose kernel pointers usable for KASLR defeat.\nI:N - The defect is strictly a read: the out-of-bounds pointer is loaded and dereferenced but never written back, and the only write is into the length-checked seq_file buffer. No memory corruption, write primitive, or control-flow hijack arises from it.\nA:H - When the out-of-bounds slot does not hold a valid kernel address, `vsnprintf` dereferences it and faults inside the procfs read path, producing a kernel oops. The added `WARN_ONCE` also panics the machine under `panic_on_warn`, which is standard on hardened and automotive deployments."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:43:41.204Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/79f87a6ec39fb5968049a6775a528bf58b25c20a"
        },
        {
          "url": "https://git.kernel.org/stable/c/24fec234d2ba9ca3c14e545ebe3fd6dcb47f074d"
        },
        {
          "url": "https://git.kernel.org/stable/c/4e8074bb33d18f56af30a0252cb3606d27eb1c13"
        },
        {
          "url": "https://git.kernel.org/stable/c/d5092b0a1aaf35d77ebd8d33384d7930bec5cb5d"
        },
        {
          "url": "https://git.kernel.org/stable/c/b3eb1b6a9f745d6941b345f0fae014dc8bb06d36"
        },
        {
          "url": "https://git.kernel.org/stable/c/8421d4c8762bd022cb491f2f0f7019ef51b4f0a7"
        }
      ],
      "title": "bpf: Check validity of link-\u003etype in bpf_link_show_fdinfo()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-53099",
    "datePublished": "2024-11-25T21:21:27.691Z",
    "dateReserved": "2024-11-19T17:17:24.983Z",
    "dateUpdated": "2026-08-05T11:43:41.204Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…