GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-53235 (GCVE-0-2026-53235)

Vulnerability from cvelistv5 – Published: 2026-06-25 08:39 – Updated: 2026-08-05 12:34
VLAI
Title
net: add pskb_may_pull() to skb_gro_receive_list()
Summary
In the Linux kernel, the following vulnerability has been resolved: net: add pskb_may_pull() to skb_gro_receive_list() skb_gro_receive_list() calls skb_pull(skb, skb_gro_offset(skb)) without first ensuring the data is in the linear area via pskb_may_pull(). When the skb arrives via napi_gro_frags(), skb_headlen can be 0 (all data in page fragments) while skb_gro_offset is non-zero (after IP+TCP header parsing). The skb_pull() then decrements skb->len by skb_gro_offset but skb->data_len stays unchanged, hitting BUG_ON(skb->len < skb->data_len) in __skb_pull(). The UDP fraglist GRO path already contains this guard at udp_offload.c:749. Adding it to skb_gro_receive_list() itself provides centralized protection for all callers (TCP, UDP, and any future protocols), and ensures the precondition of skb_pull() is satisfied before it is called. On pskb_may_pull() failure, set NAPI_GRO_CB(skb)->flush = 1 so the skb is not held as a new GRO head and is instead delivered through the normal receive path, matching the UDP handling.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 8d95dc474f85481652a0e422d2f1f079de81f63c , < 9e636c995b7beeb74ea882968248752821c244c4 (git)
Affected: 8d95dc474f85481652a0e422d2f1f079de81f63c , < 0cde3a004119db637b401c54e77536e4145fc0b4 (git)
Affected: 8d95dc474f85481652a0e422d2f1f079de81f63c , < 848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac (git)
Affected: 8d95dc474f85481652a0e422d2f1f079de81f63c , < f2bb3434544454099a5b6dec213567267b05d79d (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.10
Unaffected: 0 , < 6.10 (semver)
Unaffected: 6.12.94 , ≤ 6.12.* (semver)
Unaffected: 6.18.36 , ≤ 6.18.* (semver)
Unaffected: 7.0.13 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/core/gro.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9e636c995b7beeb74ea882968248752821c244c4",
              "status": "affected",
              "version": "8d95dc474f85481652a0e422d2f1f079de81f63c",
              "versionType": "git"
            },
            {
              "lessThan": "0cde3a004119db637b401c54e77536e4145fc0b4",
              "status": "affected",
              "version": "8d95dc474f85481652a0e422d2f1f079de81f63c",
              "versionType": "git"
            },
            {
              "lessThan": "848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac",
              "status": "affected",
              "version": "8d95dc474f85481652a0e422d2f1f079de81f63c",
              "versionType": "git"
            },
            {
              "lessThan": "f2bb3434544454099a5b6dec213567267b05d79d",
              "status": "affected",
              "version": "8d95dc474f85481652a0e422d2f1f079de81f63c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/core/gro.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.10"
            },
            {
              "lessThan": "6.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.94",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.36",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.94",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.36",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.13",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "6.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: add pskb_may_pull() to skb_gro_receive_list()\n\nskb_gro_receive_list() calls skb_pull(skb, skb_gro_offset(skb)) without\nfirst ensuring the data is in the linear area via pskb_may_pull(). When\nthe skb arrives via napi_gro_frags(), skb_headlen can be 0 (all data in\npage fragments) while skb_gro_offset is non-zero (after IP+TCP header\nparsing). The skb_pull() then decrements skb-\u003elen by skb_gro_offset\nbut skb-\u003edata_len stays unchanged, hitting BUG_ON(skb-\u003elen \u003c skb-\u003edata_len)\nin __skb_pull().\n\nThe UDP fraglist GRO path already contains this guard at\nudp_offload.c:749. Adding it to skb_gro_receive_list() itself provides\ncentralized protection for all callers (TCP, UDP, and any future\nprotocols), and ensures the precondition of skb_pull() is satisfied\nbefore it is called.\n\nOn pskb_may_pull() failure, set NAPI_GRO_CB(skb)-\u003eflush = 1 so the\nskb is not held as a new GRO head and is instead delivered through the\nnormal receive path, matching the UDP handling."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable GRO path processes received IPv4/IPv6 TCP packets in the network stack before socket authentication or routing decisions. A remote peer can send crafted same-flow packets to an exposed interface with fraglist GRO enabled.\nAC:L - Given a vulnerable deployment with rx-gro-list enabled, the attacker controls the packet stream, header layout, checksums, and sequencing needed to reach skb_gro_receive_list(). No race or victim state outside the attacker\u2019s packet timing is required.\nPR:N - The code runs on unauthenticated packet receive before any application or TCP connection authorization. No local account or kernel capability is required for a remote sender.\nUI:N - Exploitation only requires packet delivery to the target network interface. No victim user action is needed.\nS:U - The impact is within the kernel/network stack security authority of the targeted system. There is no VM, IOMMU, or sandbox boundary crossing.\nC:N - The bug triggers an internal skb length invariant failure in __skb_pull() and immediately BUGs. I found no out-of-bounds read, use-after-free, or usable information disclosure primitive before the crash.\nI:N - The vulnerable operation corrupts skb metadata only enough to trip the immediate BUG_ON path. It does not provide an attacker-controlled write or persistent data modification primitive.\nA:H - The reachable failure is BUG() in __skb_pull(), causing a kernel oops/panic or loss of system availability. A remote attacker can repeat the packet sequence to repeatedly crash affected deployments."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:34:24.581Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9e636c995b7beeb74ea882968248752821c244c4"
        },
        {
          "url": "https://git.kernel.org/stable/c/0cde3a004119db637b401c54e77536e4145fc0b4"
        },
        {
          "url": "https://git.kernel.org/stable/c/848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac"
        },
        {
          "url": "https://git.kernel.org/stable/c/f2bb3434544454099a5b6dec213567267b05d79d"
        }
      ],
      "title": "net: add pskb_may_pull() to skb_gro_receive_list()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53235",
    "datePublished": "2026-06-25T08:39:32.518Z",
    "dateReserved": "2026-06-09T07:44:35.393Z",
    "dateUpdated": "2026-08-05T12:34:24.581Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-53235",
      "date": "2026-09-16",
      "epss": "0.00441",
      "percentile": "0.37471"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-53235\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-06-25T09:16:41.397\",\"lastModified\":\"2026-07-08T19:00:57.917\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: add pskb_may_pull() to skb_gro_receive_list()\\n\\nskb_gro_receive_list() calls skb_pull(skb, skb_gro_offset(skb)) without\\nfirst ensuring the data is in the linear area via pskb_may_pull(). When\\nthe skb arrives via napi_gro_frags(), skb_headlen can be 0 (all data in\\npage fragments) while skb_gro_offset is non-zero (after IP+TCP header\\nparsing). The skb_pull() then decrements skb-\u003elen by skb_gro_offset\\nbut skb-\u003edata_len stays unchanged, hitting BUG_ON(skb-\u003elen \u003c skb-\u003edata_len)\\nin __skb_pull().\\n\\nThe UDP fraglist GRO path already contains this guard at\\nudp_offload.c:749. Adding it to skb_gro_receive_list() itself provides\\ncentralized protection for all callers (TCP, UDP, and any future\\nprotocols), and ensures the precondition of skb_pull() is satisfied\\nbefore it is called.\\n\\nOn pskb_may_pull() failure, set NAPI_GRO_CB(skb)-\u003eflush = 1 so the\\nskb is not held as a new GRO head and is instead delivered through the\\nnormal receive path, matching the UDP handling.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/core/gro.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"8d95dc474f85481652a0e422d2f1f079de81f63c\",\"lessThan\":\"9e636c995b7beeb74ea882968248752821c244c4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8d95dc474f85481652a0e422d2f1f079de81f63c\",\"lessThan\":\"0cde3a004119db637b401c54e77536e4145fc0b4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8d95dc474f85481652a0e422d2f1f079de81f63c\",\"lessThan\":\"848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"8d95dc474f85481652a0e422d2f1f079de81f63c\",\"lessThan\":\"f2bb3434544454099a5b6dec213567267b05d79d\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/core/gro.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.10\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.10\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.94\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.36\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0.13\",\"lessThanOrEqual\":\"7.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.10\",\"versionEndExcluding\":\"6.12.94\",\"matchCriteriaId\":\"75F2C460-8745-4342-9F01-D6B029B4B9ED\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.18.36\",\"matchCriteriaId\":\"389025D2-958D-41BD-BD96-70ED1033A9F3\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19\",\"versionEndExcluding\":\"7.0.13\",\"matchCriteriaId\":\"6A64BF9F-3BCA-42FD-98CB-8F03474D2B1E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"B1EF7059-E670-45F4-B422-54C40FA86390\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"0D38F0BF-A728-4133-A358-D44A2F7EE6D6\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"EC732D08-5F7B-46D9-B154-E60C7F4F0A97\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"E5910A9D-F60A-409A-B486-FE66BFEBA9B9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"81DFF19E-9CF8-49C6-8C36-1E4038622933\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"B0E8FC71-3952-444C-83E9-718DBBBEC615\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.1:rc7:*:*:*:*:*:*\",\"matchCriteriaId\":\"1039E95A-8CC3-4C88-8FF9-5C08EEB861C9\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0cde3a004119db637b401c54e77536e4145fc0b4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/848571dcbbbea7ba44dd4f7ebe1fbb274afe08ac\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9e636c995b7beeb74ea882968248752821c244c4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f2bb3434544454099a5b6dec213567267b05d79d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-08T22:29:34+00:00",
      "cve": "CVE-2026-53235",
      "id": "CVE-2026-53235",
      "initial_release_date": "2026-06-25T00:00:00+00:00",
      "product_status:fixed": "309",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: net: add pskb_may_pull() to skb_gro_receive_list()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-53235.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-12T16:40:47Z",
      "cve": "CVE-2026-53235",
      "id": "CVE-2026-53235",
      "initial_release_date": "2026-06-26T02:09:10Z",
      "product_status:first_fixed": "2",
      "product_status:known_not_affected": "370",
      "product_status:recommended": "187",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-53235",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-53235.json",
      "version": "9"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…