CVE-2024-45030 (GCVE-0-2024-45030)

Vulnerability from cvelistv5 – Published: 2024-09-11 15:14 – Updated: 2026-08-05 11:37
VLAI
Title
igb: cope with large MAX_SKB_FRAGS
Summary
In the Linux kernel, the following vulnerability has been resolved: igb: cope with large MAX_SKB_FRAGS Sabrina reports that the igb driver does not cope well with large MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload corruption on TX. An easy reproducer is to run ssh to connect to the machine. With MAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails. This has been reported originally in https://bugzilla.redhat.com/show_bug.cgi?id=2265320 The root cause of the issue is that the driver does not take into account properly the (possibly large) shared info size when selecting the ring layout, and will try to fit two packets inside the same 4K page even when the 1st fraglist will trump over the 2nd head. Address the issue by checking if 2K buffers are insufficient.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator (v2.0.3)
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 3948b05950fdd64002a5f182c65ba5cf2d53cf71 , < 8ea80ff5d8298356d28077bc30913ed37df65109 (git)
Affected: 3948b05950fdd64002a5f182c65ba5cf2d53cf71 , < b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab (git)
Affected: 3948b05950fdd64002a5f182c65ba5cf2d53cf71 , < 8aba27c4a5020abdf60149239198297f88338a8d (git)
Create a notification for this product.
Linux Linux Affected: 6.4
Unaffected: 0 , < 6.4 (semver)
Unaffected: 6.6.48 , ≤ 6.6.* (semver)
Unaffected: 6.10.7 , ≤ 6.10.* (semver)
Unaffected: 6.11 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-45030",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-29T15:45:35.285052Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-29T15:45:49.478Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/igb/igb_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8ea80ff5d8298356d28077bc30913ed37df65109",
              "status": "affected",
              "version": "3948b05950fdd64002a5f182c65ba5cf2d53cf71",
              "versionType": "git"
            },
            {
              "lessThan": "b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab",
              "status": "affected",
              "version": "3948b05950fdd64002a5f182c65ba5cf2d53cf71",
              "versionType": "git"
            },
            {
              "lessThan": "8aba27c4a5020abdf60149239198297f88338a8d",
              "status": "affected",
              "version": "3948b05950fdd64002a5f182c65ba5cf2d53cf71",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/igb/igb_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.4"
            },
            {
              "lessThan": "6.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.48",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.10.*",
              "status": "unaffected",
              "version": "6.10.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.11",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.48",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.10.7",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nigb: cope with large MAX_SKB_FRAGS\n\nSabrina reports that the igb driver does not cope well with large\nMAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload\ncorruption on TX.\n\nAn easy reproducer is to run ssh to connect to the machine.  With\nMAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails.  This has\nbeen reported originally in\nhttps://bugzilla.redhat.com/show_bug.cgi?id=2265320\n\nThe root cause of the issue is that the driver does not take into\naccount properly the (possibly large) shared info size when selecting\nthe ring layout, and will try to fit two packets inside the same 4K\npage even when the 1st fraglist will trump over the 2nd head.\n\nAddress the issue by checking if 2K buffers are insufficient."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The defect is triggered entirely within the igb RX path (`igb_clean_rx_irq()`/`igb_build_skb()`) by any received Ethernet frame larger than ~1086 bytes, before any socket demultiplexing or filtering. Such frames can be sent by any routed remote host across the internet, not just an on-link peer.\nAC:L - On an affected build the attacker needs only to send normal, full-size packets to the host; the overlap between the linear data area and `skb_shared_info` is deterministic and occurs on every sufficiently large frame, with no race, no memory-layout requirement and 100% reliability. The affected configurations are real deployments (BIG TCP kernels with CONFIG_MAX_SKB_FRAGS\u003e=25, and default configs on 4K-page architectures with \u003e=128-byte cache lines), not attacker-uncontrollable conditions.\nPR:N - The corruption occurs in the NAPI receive handler before any protocol demux, socket lookup or authentication, so no credentials or local account on the target are needed. Packets addressed to closed ports are sufficient.\nUI:N - No victim action is required; the flaw triggers automatically as soon as the interface receives large frames during normal operation.\nS:U - The corrupted memory (RX page, `skb_shared_info`, sk_buff invariants) and the impact all reside within the kernel\u0027s own security authority. No VM, IOMMU or sandbox boundary is crossed.\nC:H - Because `skb_shinfo()` aliases the packet\u0027s own linear data, kernel pointers written there afterwards (`frag_list` = kernel `sk_buff *`, `frags[].page` = `struct page *` written by GRO merging, hwtstamps, destructor_arg) become part of the payload copied to userspace via recvmsg, disclosing kernel heap addresses; this is memory corruption of kernel metadata directly leveragable for information disclosure and KASLR defeat.\nI:H - build_skb\u0027s shinfo memset plus every subsequent shinfo update overwrite received packet bytes at deterministic offsets, and igb still marks these frames CHECKSUM_UNNECESSARY, so silently corrupted data is delivered to applications as valid; conversely attacker-controlled network bytes occupy the `skb_shared_info` region (nr_frags/frag_list/frags[]/destructor_arg), corrupting kernel data structures.\nA:H - Every such skb violates the `skb-\u003etail \u003c= skb-\u003eend` invariant, so paths like `skb_copy()` (reached via `skb_unshare()` whenever the skb is cloned, e.g. with tcpdump/AF_PACKET or DSA) call `skb_put()` past `end` and hit `skb_over_panic()` -\u003e `BUG()` in softirq context, i.e. kernel panic; even without a panic, all large frames are corrupted, destroying network connectivity on the interface."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:37:51.310Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8ea80ff5d8298356d28077bc30913ed37df65109"
        },
        {
          "url": "https://git.kernel.org/stable/c/b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab"
        },
        {
          "url": "https://git.kernel.org/stable/c/8aba27c4a5020abdf60149239198297f88338a8d"
        }
      ],
      "title": "igb: cope with large MAX_SKB_FRAGS",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-45030",
    "datePublished": "2024-09-11T15:14:00.886Z",
    "dateReserved": "2024-08-21T05:34:56.685Z",
    "dateUpdated": "2026-08-05T11:37:51.310Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-45030",
      "date": "2026-08-09",
      "epss": "0.00478",
      "percentile": "0.38831"
    },
    "fkie_nvd": {
      "configurations": "[{\"nodes\": [{\"operator\": \"OR\", \"negate\": false, \"cpeMatch\": [{\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"6.4\", \"versionEndExcluding\": \"6.6.48\", \"matchCriteriaId\": \"EFA932A8-AACF-430D-AFBC-9A93F0749D68\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"versionStartIncluding\": \"6.7\", \"versionEndExcluding\": \"6.10.7\", \"matchCriteriaId\": \"D2AFDFD1-D95A-4EB7-843B-5E7659518B67\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*\", \"matchCriteriaId\": \"8B3CE743-2126-47A3-8B7C-822B502CF119\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*\", \"matchCriteriaId\": \"4DEB27E7-30AA-45CC-8934-B89263EF3551\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*\", \"matchCriteriaId\": \"E0005AEF-856E-47EB-BFE4-90C46899394D\"}, {\"vulnerable\": true, \"criteria\": \"cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*\", \"matchCriteriaId\": \"39889A68-6D34-47A6-82FC-CD0BF23D6754\"}]}]}]",
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nigb: cope with large MAX_SKB_FRAGS\\n\\nSabrina reports that the igb driver does not cope well with large\\nMAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload\\ncorruption on TX.\\n\\nAn easy reproducer is to run ssh to connect to the machine.  With\\nMAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails.  This has\\nbeen reported originally in\\nhttps://bugzilla.redhat.com/show_bug.cgi?id=2265320\\n\\nThe root cause of the issue is that the driver does not take into\\naccount properly the (possibly large) shared info size when selecting\\nthe ring layout, and will try to fit two packets inside the same 4K\\npage even when the 1st fraglist will trump over the 2nd head.\\n\\nAddress the issue by checking if 2K buffers are insufficient.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: igb: maneja valores MAX_SKB_FRAGS grandes Sabrina informa que el controlador igb no maneja bien valores MAX_SKB_FRAG grandes: configurar MAX_SKB_FRAG en 45 causa corrupci\\u00f3n de payload en TX. Un reproductor f\\u00e1cil es ejecutar ssh para conectarse a la m\\u00e1quina. Con MAX_SKB_FRAGS=17 funciona, con MAX_SKB_FRAGS=45 falla. Esto se inform\\u00f3 originalmente en https://bugzilla.redhat.com/show_bug.cgi?id=2265320 La causa ra\\u00edz del problema es que el controlador no tiene en cuenta correctamente el tama\\u00f1o de informaci\\u00f3n compartida (posiblemente grande) al seleccionar el dise\\u00f1o de anillo, e intentar\\u00e1 ajustar dos paquetes dentro de la misma p\\u00e1gina de 4K incluso cuando la primera lista de fragmentos prevalecer\\u00e1 sobre la segunda cabeza. Aborde el problema verificando si los b\\u00faferes de 2K son insuficientes.\"}]",
      "id": "CVE-2024-45030",
      "lastModified": "2024-09-13T16:29:23.557",
      "metrics": "{\"cvssMetricV31\": [{\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\", \"baseScore\": 5.5, \"baseSeverity\": \"MEDIUM\", \"attackVector\": \"LOCAL\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"HIGH\"}, \"exploitabilityScore\": 1.8, \"impactScore\": 3.6}]}",
      "published": "2024-09-11T16:15:07.770",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/8aba27c4a5020abdf60149239198297f88338a8d\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/8ea80ff5d8298356d28077bc30913ed37df65109\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}, {\"url\": \"https://git.kernel.org/stable/c/b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"tags\": [\"Patch\"]}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Analyzed",
      "weaknesses": "[{\"source\": \"nvd@nist.gov\", \"type\": \"Primary\", \"description\": [{\"lang\": \"en\", \"value\": \"CWE-787\"}]}]"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-21T01:04:34.000Z",
      "cve": "CVE-2024-45030",
      "id": "msrc_CVE-2024-45030",
      "initial_release_date": "2024-09-01T07:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "igb: cope with large MAX_SKB_FRAGS",
      "url": "https://msrc.microsoft.com/csaf/vex/2024/msrc_cve-2024-45030.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-45030\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-09-11T16:15:07.770\",\"lastModified\":\"2026-08-04T11:20:13.290\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nigb: cope with large MAX_SKB_FRAGS\\n\\nSabrina reports that the igb driver does not cope well with large\\nMAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload\\ncorruption on TX.\\n\\nAn easy reproducer is to run ssh to connect to the machine.  With\\nMAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails.  This has\\nbeen reported originally in\\nhttps://bugzilla.redhat.com/show_bug.cgi?id=2265320\\n\\nThe root cause of the issue is that the driver does not take into\\naccount properly the (possibly large) shared info size when selecting\\nthe ring layout, and will try to fit two packets inside the same 4K\\npage even when the 1st fraglist will trump over the 2nd head.\\n\\nAddress the issue by checking if 2K buffers are insufficient.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: igb: maneja valores MAX_SKB_FRAGS grandes Sabrina informa que el controlador igb no maneja bien valores MAX_SKB_FRAG grandes: configurar MAX_SKB_FRAG en 45 causa corrupci\u00f3n de payload en TX. Un reproductor f\u00e1cil es ejecutar ssh para conectarse a la m\u00e1quina. Con MAX_SKB_FRAGS=17 funciona, con MAX_SKB_FRAGS=45 falla. Esto se inform\u00f3 originalmente en https://bugzilla.redhat.com/show_bug.cgi?id=2265320 La causa ra\u00edz del problema es que el controlador no tiene en cuenta correctamente el tama\u00f1o de informaci\u00f3n compartida (posiblemente grande) al seleccionar el dise\u00f1o de anillo, e intentar\u00e1 ajustar dos paquetes dentro de la misma p\u00e1gina de 4K incluso cuando la primera lista de fragmentos prevalecer\u00e1 sobre la segunda cabeza. Aborde el problema verificando si los b\u00faferes de 2K son insuficientes.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/intel/igb/igb_main.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3948b05950fdd64002a5f182c65ba5cf2d53cf71\",\"lessThan\":\"8ea80ff5d8298356d28077bc30913ed37df65109\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3948b05950fdd64002a5f182c65ba5cf2d53cf71\",\"lessThan\":\"b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3948b05950fdd64002a5f182c65ba5cf2d53cf71\",\"lessThan\":\"8aba27c4a5020abdf60149239198297f88338a8d\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/intel/igb/igb_main.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.48\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.10.7\",\"lessThanOrEqual\":\"6.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.11\",\"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:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-09-29T15:45:35.285052Z\",\"id\":\"CVE-2024-45030\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-787\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.4\",\"versionEndExcluding\":\"6.6.48\",\"matchCriteriaId\":\"EFA932A8-AACF-430D-AFBC-9A93F0749D68\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.10.7\",\"matchCriteriaId\":\"D2AFDFD1-D95A-4EB7-843B-5E7659518B67\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"8B3CE743-2126-47A3-8B7C-822B502CF119\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4DEB27E7-30AA-45CC-8934-B89263EF3551\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"E0005AEF-856E-47EB-BFE4-90C46899394D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"39889A68-6D34-47A6-82FC-CD0BF23D6754\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/8aba27c4a5020abdf60149239198297f88338a8d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/8ea80ff5d8298356d28077bc30913ed37df65109\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T18:18:30+00:00",
      "cve": "CVE-2024-45030",
      "id": "CVE-2024-45030",
      "initial_release_date": "2024-09-11T00:00:00+00:00",
      "product_status:known_affected": "42",
      "product_status:known_not_affected": "156",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: igb: cope with large MAX_SKB_FRAGS",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-45030.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-05T00:53:09Z",
      "cve": "CVE-2024-45030",
      "id": "CVE-2024-45030",
      "initial_release_date": "2024-09-12T02:51:05Z",
      "product_status:known_affected": "394",
      "product_status:known_not_affected": "353",
      "product_status:recommended": "357",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-45030",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-45030.json",
      "version": "75"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-45030\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-29T15:45:35.285052Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-29T15:45:39.365Z\"}}], \"cna\": {\"title\": \"igb: cope with large MAX_SKB_FRAGS\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 9.8, \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:N - The defect is triggered entirely within the igb RX path (`igb_clean_rx_irq()`/`igb_build_skb()`) by any received Ethernet frame larger than ~1086 bytes, before any socket demultiplexing or filtering. Such frames can be sent by any routed remote host across the internet, not just an on-link peer.\\nAC:L - On an affected build the attacker needs only to send normal, full-size packets to the host; the overlap between the linear data area and `skb_shared_info` is deterministic and occurs on every sufficiently large frame, with no race, no memory-layout requirement and 100% reliability. The affected configurations are real deployments (BIG TCP kernels with CONFIG_MAX_SKB_FRAGS\u003e=25, and default configs on 4K-page architectures with \u003e=128-byte cache lines), not attacker-uncontrollable conditions.\\nPR:N - The corruption occurs in the NAPI receive handler before any protocol demux, socket lookup or authentication, so no credentials or local account on the target are needed. Packets addressed to closed ports are sufficient.\\nUI:N - No victim action is required; the flaw triggers automatically as soon as the interface receives large frames during normal operation.\\nS:U - The corrupted memory (RX page, `skb_shared_info`, sk_buff invariants) and the impact all reside within the kernel\u0027s own security authority. No VM, IOMMU or sandbox boundary is crossed.\\nC:H - Because `skb_shinfo()` aliases the packet\u0027s own linear data, kernel pointers written there afterwards (`frag_list` = kernel `sk_buff *`, `frags[].page` = `struct page *` written by GRO merging, hwtstamps, destructor_arg) become part of the payload copied to userspace via recvmsg, disclosing kernel heap addresses; this is memory corruption of kernel metadata directly leveragable for information disclosure and KASLR defeat.\\nI:H - build_skb\u0027s shinfo memset plus every subsequent shinfo update overwrite received packet bytes at deterministic offsets, and igb still marks these frames CHECKSUM_UNNECESSARY, so silently corrupted data is delivered to applications as valid; conversely attacker-controlled network bytes occupy the `skb_shared_info` region (nr_frags/frag_list/frags[]/destructor_arg), corrupting kernel data structures.\\nA:H - Every such skb violates the `skb-\u003etail \u003c= skb-\u003eend` invariant, so paths like `skb_copy()` (reached via `skb_unshare()` whenever the skb is cloned, e.g. with tcpdump/AF_PACKET or DSA) call `skb_put()` past `end` and hit `skb_over_panic()` -\u003e `BUG()` in softirq context, i.e. kernel panic; even without a panic, all large frames are corrupted, destroying network connectivity on the interface.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"3948b05950fdd64002a5f182c65ba5cf2d53cf71\", \"lessThan\": \"8ea80ff5d8298356d28077bc30913ed37df65109\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"3948b05950fdd64002a5f182c65ba5cf2d53cf71\", \"lessThan\": \"b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"3948b05950fdd64002a5f182c65ba5cf2d53cf71\", \"lessThan\": \"8aba27c4a5020abdf60149239198297f88338a8d\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/intel/igb/igb_main.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.4\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.4\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.6.48\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10.7\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/ethernet/intel/igb/igb_main.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/8ea80ff5d8298356d28077bc30913ed37df65109\"}, {\"url\": \"https://git.kernel.org/stable/c/b52bd8bcb9e8ff250c79b44f9af8b15cae8911ab\"}, {\"url\": \"https://git.kernel.org/stable/c/8aba27c4a5020abdf60149239198297f88338a8d\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nigb: cope with large MAX_SKB_FRAGS\\n\\nSabrina reports that the igb driver does not cope well with large\\nMAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload\\ncorruption on TX.\\n\\nAn easy reproducer is to run ssh to connect to the machine.  With\\nMAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails.  This has\\nbeen reported originally in\\nhttps://bugzilla.redhat.com/show_bug.cgi?id=2265320\\n\\nThe root cause of the issue is that the driver does not take into\\naccount properly the (possibly large) shared info size when selecting\\nthe ring layout, and will try to fit two packets inside the same 4K\\npage even when the 1st fraglist will trump over the 2nd head.\\n\\nAddress the issue by checking if 2K buffers are insufficient.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.48\", \"versionStartIncluding\": \"6.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.10.7\", \"versionStartIncluding\": \"6.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.11\", \"versionStartIncluding\": \"6.4\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:37:51.310Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-45030\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:37:51.310Z\", \"dateReserved\": \"2024-08-21T05:34:56.685Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-09-11T15:14:00.886Z\", \"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…

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…

Loading…