CVE-2026-90078 (GCVE-0-2026-90078)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:05 – Updated: 2026-09-17 16:05
VLAI
Title
net/sched: act_skbmod: fix length calculations and avoid invalid header warnings
Summary
In the Linux kernel, the following vulnerability has been resolved: net/sched: act_skbmod: fix length calculations and avoid invalid header warnings syzbot reported a warning in skb_network_header_len() triggered by tcf_skbmod_act(): !skb_transport_header_was_set(skb) WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline] WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55 There are a few issues in tcf_skbmod_act(): 1. Calling skb_network_header_len() assumes skb->transport_header is set, which is not guaranteed when tcf_skbmod_act() runs at TC ingress. 2. Unconditionally calling skb_mac_header_len() at the beginning of tcf_skbmod_act() triggers a warning on L3 devices (e.g. TUN) where the MAC header is unset, evaluating to an underflowed garbage length. 3. On TC ingress, skb->data points to the network header. Adding the MAC header length to the IP header length causes skb_ensure_writable() to request more bytes than the actual IP packet length, dropping valid short packets (e.g. 28-byte UDP/IPv4 packets). Fix these by: - Using skb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr) for SKBMOD_F_ECN so that the required length is correctly calculated on both ingress (offset == 0) and egress (offset == mac_len). - Setting max_edit_len to ETH_HLEN for Ethernet header modifications after validating ARPHRD_ETHER.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < 985a37781ade19061400100c2ba0f43979dd4d63 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < d896843d8d925f0adbba319020595cfb1a7bcd57 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < 0675cff3c2924eb9b80d9dd250cf56a1140af157 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < e8a2027b7e686784a69b2dfcee841d779919f313 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < 1719865b20b22c88d2a55e922eff5ca31b0841f6 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < 62126464f3a6159c0a3dd89e196ba65bfeb0afc6 (git)
Affected: 56af5e749f20c3a540310c207dcc373f4f09156e , < 81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.15
Unaffected: 0 , < 5.15 (semver)
Unaffected: 5.15.221 , ≤ 5.15.* (semver)
Unaffected: 6.1.188 , ≤ 6.1.* (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.52 , ≤ 6.18.* (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (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/sched/act_skbmod.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "985a37781ade19061400100c2ba0f43979dd4d63",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "d896843d8d925f0adbba319020595cfb1a7bcd57",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "0675cff3c2924eb9b80d9dd250cf56a1140af157",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "e8a2027b7e686784a69b2dfcee841d779919f313",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "1719865b20b22c88d2a55e922eff5ca31b0841f6",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "62126464f3a6159c0a3dd89e196ba65bfeb0afc6",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            },
            {
              "lessThan": "81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb",
              "status": "affected",
              "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sched/act_skbmod.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "lessThan": "5.15",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.52",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "5.15",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_skbmod: fix length calculations and avoid invalid header warnings\n\nsyzbot reported a warning in skb_network_header_len() triggered\nby tcf_skbmod_act():\n\n  !skb_transport_header_was_set(skb)\n  WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline]\n  WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55\n\nThere are a few issues in tcf_skbmod_act():\n\n1. Calling skb_network_header_len() assumes skb-\u003etransport_header is set,\n   which is not guaranteed when tcf_skbmod_act() runs at TC ingress.\n2. Unconditionally calling skb_mac_header_len() at the beginning of\n   tcf_skbmod_act() triggers a warning on L3 devices (e.g. TUN) where the\n   MAC header is unset, evaluating to an underflowed garbage length.\n3. On TC ingress, skb-\u003edata points to the network header. Adding the MAC\n   header length to the IP header length causes skb_ensure_writable() to\n   request more bytes than the actual IP packet length, dropping valid\n   short packets (e.g. 28-byte UDP/IPv4 packets).\n\nFix these by:\n- Using skb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr) for\n  SKBMOD_F_ECN so that the required length is correctly calculated on\n  both ingress (offset == 0) and egress (offset == mac_len).\n- Setting max_edit_len to ETH_HLEN for Ethernet header modifications\n  after validating ARPHRD_ETHER."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-17T16:05:56.878Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/985a37781ade19061400100c2ba0f43979dd4d63"
        },
        {
          "url": "https://git.kernel.org/stable/c/d896843d8d925f0adbba319020595cfb1a7bcd57"
        },
        {
          "url": "https://git.kernel.org/stable/c/0675cff3c2924eb9b80d9dd250cf56a1140af157"
        },
        {
          "url": "https://git.kernel.org/stable/c/e8a2027b7e686784a69b2dfcee841d779919f313"
        },
        {
          "url": "https://git.kernel.org/stable/c/1719865b20b22c88d2a55e922eff5ca31b0841f6"
        },
        {
          "url": "https://git.kernel.org/stable/c/62126464f3a6159c0a3dd89e196ba65bfeb0afc6"
        },
        {
          "url": "https://git.kernel.org/stable/c/81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb"
        }
      ],
      "title": "net/sched: act_skbmod: fix length calculations and avoid invalid header warnings",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90078",
    "datePublished": "2026-09-17T16:05:56.878Z",
    "dateReserved": "2026-09-11T19:38:34.785Z",
    "dateUpdated": "2026-09-17T16:05:56.878Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90078",
      "date": "2026-09-25",
      "epss": "0.00206",
      "percentile": "0.09399"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-24T01:26:17.000Z",
      "cve": "CVE-2026-90078",
      "id": "msrc_CVE-2026-90078",
      "initial_release_date": "2026-09-19T01:08:51.000Z",
      "product_status:fixed": "1",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "net/sched: act_skbmod: fix length calculations and avoid invalid header warnings",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-90078.json",
      "version": "4"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/sched/act_skbmod.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "985a37781ade19061400100c2ba0f43979dd4d63",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d896843d8d925f0adbba319020595cfb1a7bcd57",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0675cff3c2924eb9b80d9dd250cf56a1140af157",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e8a2027b7e686784a69b2dfcee841d779919f313",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "1719865b20b22c88d2a55e922eff5ca31b0841f6",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "62126464f3a6159c0a3dd89e196ba65bfeb0afc6",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb",
                    "status": "affected",
                    "version": "56af5e749f20c3a540310c207dcc373f4f09156e",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/sched/act_skbmod.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.15"
                  },
                  {
                    "lessThan": "5.15",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.221",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.188",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.157",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.110",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.52",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.6",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_skbmod: fix length calculations and avoid invalid header warnings\n\nsyzbot reported a warning in skb_network_header_len() triggered\nby tcf_skbmod_act():\n\n  !skb_transport_header_was_set(skb)\n  WARNING: CPU: 0 PID: 14949 at include/linux/skbuff.h:3243 skb_network_header_len include/linux/skbuff.h:3243 [inline]\n  WARNING: CPU: 0 PID: 14949 at net/sched/act_skbmod.c:55 tcf_skbmod_act+0xfe8/0x1810 net/sched/act_skbmod.c:55\n\nThere are a few issues in tcf_skbmod_act():\n\n1. Calling skb_network_header_len() assumes skb-\u003etransport_header is set,\n   which is not guaranteed when tcf_skbmod_act() runs at TC ingress.\n2. Unconditionally calling skb_mac_header_len() at the beginning of\n   tcf_skbmod_act() triggers a warning on L3 devices (e.g. TUN) where the\n   MAC header is unset, evaluating to an underflowed garbage length.\n3. On TC ingress, skb-\u003edata points to the network header. Adding the MAC\n   header length to the IP header length causes skb_ensure_writable() to\n   request more bytes than the actual IP packet length, dropping valid\n   short packets (e.g. 28-byte UDP/IPv4 packets).\n\nFix these by:\n- Using skb_network_offset(skb) + sizeof(struct iphdr/ipv6hdr) for\n  SKBMOD_F_ECN so that the required length is correctly calculated on\n  both ingress (offset == 0) and egress (offset == mac_len).\n- Setting max_edit_len to ETH_HLEN for Ethernet header modifications\n  after validating ARPHRD_ETHER."
          }
        ],
        "id": "CVE-2026-90078",
        "lastModified": "2026-09-17T17:16:57.057",
        "metrics": {},
        "published": "2026-09-17T17:16:57.057",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0675cff3c2924eb9b80d9dd250cf56a1140af157"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/1719865b20b22c88d2a55e922eff5ca31b0841f6"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/62126464f3a6159c0a3dd89e196ba65bfeb0afc6"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/81d0d1e64f30d9989c829c0953cd6e6c68d9c5fb"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/985a37781ade19061400100c2ba0f43979dd4d63"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d896843d8d925f0adbba319020595cfb1a7bcd57"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e8a2027b7e686784a69b2dfcee841d779919f313"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…

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…