---
id: CVE-2024-49948
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: add more sanity checks to qdisc_pkt_len_init()

  One path takes care of SKB_GSO_DODGY, assuming
  skb->len is bigger than hdr_len.

  virtio_net_hdr_to_skb() does not f…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: add more sanity checks to qdisc_pkt_len_init()

  One path takes care of SKB_GSO_DODGY, assuming
  skb->len is bigger than hdr_len.

  virtio_net_hdr_to_skb() does not f…
severity: medium
cvss: 5.5
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 3.9, < 4.19.323'
  - 'linux_kernel >= 4.20, < 5.4.285'
  - 'linux_kernel >= 5.5, < 5.10.227'
  - 'linux_kernel >= 5.11, < 5.15.168'
  - 'linux_kernel >= 5.16, < 6.1.113'
  - 'linux_kernel >= 6.2, < 6.6.55'
  - 'linux_kernel >= 6.7, < 6.10.14'
  - 'linux_kernel >= 6.11, < 6.11.3'
  - linux_kernel = 6.12
patched:
  - linux_kernel 6.11.3
published: '2024-10-21'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T01:19:01.690'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2024-49948'
references:
  - url: 'https://git.kernel.org/stable/c/1eebe602a8d8264a12e35e39d0645fa88dbbacdd'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/2415f465730e48b6e38da1c7c097317bf5dd2d20'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/27a8fabc54d2f960d47bdfbebf2bdc6e8a92a4c4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/473426a1d53a68dd1e718e6cd00d57936993fa6c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/566a931a1436d0e0ad13708ea55479b95426213c'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/9b0ee571d20a238a22722126abdfde61f1b2bdd0'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ab9a9a9e9647392a19e7a885b08000e89c86b535'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/d7d1a28f5dd57b4d83def876f8d7b4403bd37df9'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ff1c3cadcf405ab37dd91418a62a7acecf3bc5e2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-265688.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-355557.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-398330.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00291
epssPercentile: 0.21535
ingestedAt: '2026-10-15T03:30:12.755Z'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2024-10-22T13:36:47.619949Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

net: add more sanity checks to qdisc_pkt_len_init()

One path takes care of SKB_GSO_DODGY, assuming
skb->len is bigger than hdr_len.

virtio_net_hdr_to_skb() does not fully dissect TCP headers,
it only make sure it is at least 20 bytes.

It is possible for an user to provide a malicious 'GSO' packet,
total length of 80 bytes.

- 20 bytes of IPv4 header
- 60 bytes TCP header
- a small gso_size like 8

virtio_net_hdr_to_skb() would declare this packet as a normal
GSO packet, because it would see 40 bytes of payload,
bigger than gso_size.

We need to make detect this case to not underflow
qdisc_skb_cb(skb)->pkt_len.

## Affected

- `linux_kernel >= 3.9, < 4.19.323`
- `linux_kernel >= 4.20, < 5.4.285`
- `linux_kernel >= 5.5, < 5.10.227`
- `linux_kernel >= 5.11, < 5.15.168`
- `linux_kernel >= 5.16, < 6.1.113`
- `linux_kernel >= 6.2, < 6.6.55`
- `linux_kernel >= 6.7, < 6.10.14`
- `linux_kernel >= 6.11, < 6.11.3`
- `linux_kernel = 6.12`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.11.3`
