Skip to content
Heist/ feed
Unrated

net: skbuff: do not leave stale header offsets after pskb_carve()

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: net: skbuff: do not leave stale header offsets after pskb_carve() pskb_carve_inside_header() and pskb_carve_inside_nonlinear() remove the first bytes of a packet and reallocate skb->head. All the headers that were present before the operation are gone, but both functions call skb_headers_offset_update(skb, 0), which is a no-op : skb->mac_header, skb->network_header, skb->transport_header and skb->csum_start keep their old values and now describe bytes which are no longer there. Both helpers size the new head from the old skb_end_offset(), so the stale offsets still land inside the new allocation. They point past skb_tail_pointer() though, to bytes that were never initialized. pskb_carve_inside_nonlinear() is the worst case, because it leaves a zombie skb with an empty linear part (skb->data == skb_tail_pointer(skb), skb_headlen(skb) == 0), while skb_mac_header_was_set() is still true and skb->mac_header is way ahead of skb->data. The only user of pskb_extract() is rds_tcp_data_recv(), and the carved skb is queued on tinc->ti_skb_list. When the RDS incoming message is released, rds_tcp_inc_free() calls skb_queue_purge(), which frees the skbs with SKB_DROP_REASON_QUEUE_PURGE. This is visible from drop_monitor, which then tries to pull back to the (bogus) mac header : skbuff: __skb_pull(len=234) skb len=6968 data_len=6968 headroom=0 headlen=0 tailroom=0 end-tail=384 mac=(234,14) mac_len=14 net=(248,40) trans=288

Announced Source revision 1
Original source ↗

CVE-2026-98271

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-98271

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "6fa01ccd883021105e9f8af7d04b9f156fa3494a",
        "lessThan": "75e4a3e62531738c124c8555a626426fca29d392",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "6fa01ccd883021105e9f8af7d04b9f156fa3494a",
        "lessThan": "bff8a8e53a6d290bc2777bde36d3cb6317b8463d",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "6fa01ccd883021105e9f8af7d04b9f156fa3494a",
        "lessThan": "12929ed66a5166177ef5f06d3da81e4f99993e90",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "6fa01ccd883021105e9f8af7d04b9f156fa3494a",
        "lessThan": "a5117e1eccac6ee3bd4aed7cacf8ebcb6b3eb309",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "net/core/skbuff.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4.7"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "4.7",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.12.112",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.54",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "7.2.8",
        "versionType": "semver",
        "lessThanOrEqual": "7.2.*"
      },
      {
        "status": "unaffected",
        "version": "7.3",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "net/core/skbuff.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-98271

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#38348 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement