CVE-2024-27016 (GCVE-0-2024-27016)
Vulnerability from cvelistv5
Published
2024-05-01 05:29
Modified
2026-08-05 11:28
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: flowtable: validate pppoe header Ensure there is sufficient room to access the protocol field of the PPPoe header. Validate it once before the flowtable lookup, then use a helper function to access protocol field.
Impacted products
Vendor Product Version
Linux Linux Version: 72efd585f7144a047f7da63864284764596ccad9
Version: 72efd585f7144a047f7da63864284764596ccad9
Version: 72efd585f7144a047f7da63864284764596ccad9
Version: 72efd585f7144a047f7da63864284764596ccad9
Version: 72efd585f7144a047f7da63864284764596ccad9
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-27016",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-07-17T15:04:34.814514Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-07-17T15:04:50.051Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-04T17:17:20.124Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/d06977b9a4109f8738bb276125eb6a0b772bc433"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8bf7c76a2a207ca2b4cfda0a279192adf27678d7"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a2471d271042ea18e8a6babc132a8716bb2f08b9"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/cf366ee3bc1b7d1c76a882640ba3b3f8f1039163"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/87b3593bed1868b2d9fe096c01bcdf0ea86cbebf"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/net/netfilter/nf_flow_table.h",
            "net/netfilter/nf_flow_table_inet.c",
            "net/netfilter/nf_flow_table_ip.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d06977b9a4109f8738bb276125eb6a0b772bc433",
              "status": "affected",
              "version": "72efd585f7144a047f7da63864284764596ccad9",
              "versionType": "git"
            },
            {
              "lessThan": "8bf7c76a2a207ca2b4cfda0a279192adf27678d7",
              "status": "affected",
              "version": "72efd585f7144a047f7da63864284764596ccad9",
              "versionType": "git"
            },
            {
              "lessThan": "a2471d271042ea18e8a6babc132a8716bb2f08b9",
              "status": "affected",
              "version": "72efd585f7144a047f7da63864284764596ccad9",
              "versionType": "git"
            },
            {
              "lessThan": "cf366ee3bc1b7d1c76a882640ba3b3f8f1039163",
              "status": "affected",
              "version": "72efd585f7144a047f7da63864284764596ccad9",
              "versionType": "git"
            },
            {
              "lessThan": "87b3593bed1868b2d9fe096c01bcdf0ea86cbebf",
              "status": "affected",
              "version": "72efd585f7144a047f7da63864284764596ccad9",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/net/netfilter/nf_flow_table.h",
            "net/netfilter/nf_flow_table_inet.c",
            "net/netfilter/nf_flow_table_ip.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.13"
            },
            {
              "lessThan": "5.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.88",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.29",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.157",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.88",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.29",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.8",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: flowtable: validate pppoe header\n\nEnsure there is sufficient room to access the protocol field of the\nPPPoe header. Validate it once before the flowtable lookup, then use a\nhelper function to access protocol field."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - The vulnerable code is the netfilter flowtable NF_NETDEV_INGRESS hook, reached purely by receiving an Ethernet frame with ethertype 0x8864 (ETH_P_PPP_SES); PPPoE session frames are a link-layer encapsulation and are not routable across L3, so the attacker must be on the same L2 segment (ISP access network of a PPPoE CPE, the router LAN, or a bridged VM/tap network).\nAC:L - The attacker simply emits a truncated PPPoE session frame carrying fewer than 8 bytes past the Ethernet header \u2014 there is no race, no memory-layout dependency, and no state the attacker cannot create, since tap/virtio, veth, and L2-tunnel decap paths impose no minimum-frame padding and can be triggered repeatedly at will.\nPR:N - No credentials or privileges on the target are needed \u2014 the flowtable ingress hook processes every received frame before any authentication, and the nftables flowtable configuration is the victim admin\u0027s normal router/offload setup, not an attacker prerequisite.\nUI:N - The out-of-bounds read happens automatically in softirq packet-receive context as soon as the crafted frame arrives on the flowtable-bound interface; no action by any local user or administrator is required.\nS:U - The out-of-bounds read and its consequences are confined to the kernel\u0027s own memory and the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:L - The bug reads 2 bytes of adjacent kernel heap memory beyond the packet buffer, but the read is strictly bounded to a fixed offset and the value is only compared against PPP_IP/PPP_IPV6, giving at most a weak fast-path-versus-slow-path oracle rather than a general memory-disclosure primitive.\nI:N - The defect is a read-only over-read; no kernel memory is written, and the misclassified packet\u0027s subsequent handling is re-validated by pskb_may_pull() in nf_flow_tuple_ip() before any header mangling occurs.\nA:H - The slab-out-of-bounds read is a KASAN-detectable memory-safety violation that panics debug/hardened kernels and can fault when the skb head abuts an unmapped region, and it is triggerable remotely, repeatedly, and without authentication on every arriving frame."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:28:59.141Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d06977b9a4109f8738bb276125eb6a0b772bc433"
        },
        {
          "url": "https://git.kernel.org/stable/c/8bf7c76a2a207ca2b4cfda0a279192adf27678d7"
        },
        {
          "url": "https://git.kernel.org/stable/c/a2471d271042ea18e8a6babc132a8716bb2f08b9"
        },
        {
          "url": "https://git.kernel.org/stable/c/cf366ee3bc1b7d1c76a882640ba3b3f8f1039163"
        },
        {
          "url": "https://git.kernel.org/stable/c/87b3593bed1868b2d9fe096c01bcdf0ea86cbebf"
        }
      ],
      "title": "netfilter: flowtable: validate pppoe header",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-27016",
    "datePublished": "2024-05-01T05:29:57.099Z",
    "dateReserved": "2024-02-19T14:20:24.209Z",
    "dateUpdated": "2026-08-05T11:28:59.141Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/d06977b9a4109f8738bb276125eb6a0b772bc433\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/8bf7c76a2a207ca2b4cfda0a279192adf27678d7\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/a2471d271042ea18e8a6babc132a8716bb2f08b9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/cf366ee3bc1b7d1c76a882640ba3b3f8f1039163\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/87b3593bed1868b2d9fe096c01bcdf0ea86cbebf\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/\"}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/\"}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-04T17:17:20.124Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-27016\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-07-17T15:04:34.814514Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-07-17T15:04:41.998Z\"}}], \"cna\": {\"title\": \"netfilter: flowtable: validate pppoe header\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.1, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:A - The vulnerable code is the netfilter flowtable NF_NETDEV_INGRESS hook, reached purely by receiving an Ethernet frame with ethertype 0x8864 (ETH_P_PPP_SES); PPPoE session frames are a link-layer encapsulation and are not routable across L3, so the attacker must be on the same L2 segment (ISP access network of a PPPoE CPE, the router LAN, or a bridged VM/tap network).\\nAC:L - The attacker simply emits a truncated PPPoE session frame carrying fewer than 8 bytes past the Ethernet header \\u2014 there is no race, no memory-layout dependency, and no state the attacker cannot create, since tap/virtio, veth, and L2-tunnel decap paths impose no minimum-frame padding and can be triggered repeatedly at will.\\nPR:N - No credentials or privileges on the target are needed \\u2014 the flowtable ingress hook processes every received frame before any authentication, and the nftables flowtable configuration is the victim admin\u0027s normal router/offload setup, not an attacker prerequisite.\\nUI:N - The out-of-bounds read happens automatically in softirq packet-receive context as soon as the crafted frame arrives on the flowtable-bound interface; no action by any local user or administrator is required.\\nS:U - The out-of-bounds read and its consequences are confined to the kernel\u0027s own memory and the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\\nC:L - The bug reads 2 bytes of adjacent kernel heap memory beyond the packet buffer, but the read is strictly bounded to a fixed offset and the value is only compared against PPP_IP/PPP_IPV6, giving at most a weak fast-path-versus-slow-path oracle rather than a general memory-disclosure primitive.\\nI:N - The defect is a read-only over-read; no kernel memory is written, and the misclassified packet\u0027s subsequent handling is re-validated by pskb_may_pull() in nf_flow_tuple_ip() before any header mangling occurs.\\nA:H - The slab-out-of-bounds read is a KASAN-detectable memory-safety violation that panics debug/hardened kernels and can fault when the skb head abuts an unmapped region, and it is triggerable remotely, repeatedly, and without authentication on every arriving frame.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"72efd585f7144a047f7da63864284764596ccad9\", \"lessThan\": \"d06977b9a4109f8738bb276125eb6a0b772bc433\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"72efd585f7144a047f7da63864284764596ccad9\", \"lessThan\": \"8bf7c76a2a207ca2b4cfda0a279192adf27678d7\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"72efd585f7144a047f7da63864284764596ccad9\", \"lessThan\": \"a2471d271042ea18e8a6babc132a8716bb2f08b9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"72efd585f7144a047f7da63864284764596ccad9\", \"lessThan\": \"cf366ee3bc1b7d1c76a882640ba3b3f8f1039163\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"72efd585f7144a047f7da63864284764596ccad9\", \"lessThan\": \"87b3593bed1868b2d9fe096c01bcdf0ea86cbebf\", \"versionType\": \"git\"}], \"programFiles\": [\"include/net/netfilter/nf_flow_table.h\", \"net/netfilter/nf_flow_table_inet.c\", \"net/netfilter/nf_flow_table_ip.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.13\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.13\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.157\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.88\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.29\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.8\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"include/net/netfilter/nf_flow_table.h\", \"net/netfilter/nf_flow_table_inet.c\", \"net/netfilter/nf_flow_table_ip.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/d06977b9a4109f8738bb276125eb6a0b772bc433\"}, {\"url\": \"https://git.kernel.org/stable/c/8bf7c76a2a207ca2b4cfda0a279192adf27678d7\"}, {\"url\": \"https://git.kernel.org/stable/c/a2471d271042ea18e8a6babc132a8716bb2f08b9\"}, {\"url\": \"https://git.kernel.org/stable/c/cf366ee3bc1b7d1c76a882640ba3b3f8f1039163\"}, {\"url\": \"https://git.kernel.org/stable/c/87b3593bed1868b2d9fe096c01bcdf0ea86cbebf\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnetfilter: flowtable: validate pppoe header\\n\\nEnsure there is sufficient room to access the protocol field of the\\nPPPoe header. Validate it once before the flowtable lookup, then use a\\nhelper function to access protocol field.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.157\", \"versionStartIncluding\": \"5.13\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.88\", \"versionStartIncluding\": \"5.13\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.29\", \"versionStartIncluding\": \"5.13\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.8\", \"versionStartIncluding\": \"5.13\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"5.13\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:28:59.141Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-27016\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:28:59.141Z\", \"dateReserved\": \"2024-02-19T14:20:24.209Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-01T05:29:57.099Z\", \"assignerShortName\": \"Linux\"}",
      "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…