CVE-2023-54238 (GCVE-0-2023-54238)

Vulnerability from cvelistv5 – Published: 2025-12-30 12:11 – Updated: 2026-10-15 21:41
VLAI
Title
mlx5: fix skb leak while fifo resync and push
Summary
In the Linux kernel, the following vulnerability has been resolved: mlx5: fix skb leak while fifo resync and push During ptp resync operation SKBs were poped from the fifo but were never freed neither by napi_consume nor by dev_kfree_skb_any. Add call to napi_consume_skb to properly free SKBs. Another leak was happening because mlx5e_skb_fifo_has_room() had an error in the check. Comparing free running counters works well unless C promotes the types to something wider than the counter. In this case counters are u16 but the result of the substraction is promouted to int and it causes wrong result (negative value) of the check when producer have already overlapped but consumer haven't yet. Explicit cast to u16 fixes the issue.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-15 21:39 UTC
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6641 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 58a518948f60153e8f6cb8361d2712aa3a1af94a , < 234cffda95e1049f58e8ec136ef105c633f0ed19 (git)
Affected: 58a518948f60153e8f6cb8361d2712aa3a1af94a , < 68504c66d08c70fb92799722e25a932d311d74fd (git)
Affected: 58a518948f60153e8f6cb8361d2712aa3a1af94a , < e435941b1da1a0be4ff8a7ae425774c76a5ac514 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.1.18 , ≤ 6.1.* (semver)
Unaffected: 6.2.5 , ≤ 6.2.* (semver)
Unaffected: 6.3 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2023-54238",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-15T21:39:43.149613Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-15T21:41:42.874Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
            "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "234cffda95e1049f58e8ec136ef105c633f0ed19",
              "status": "affected",
              "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
              "versionType": "git"
            },
            {
              "lessThan": "68504c66d08c70fb92799722e25a932d311d74fd",
              "status": "affected",
              "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
              "versionType": "git"
            },
            {
              "lessThan": "e435941b1da1a0be4ff8a7ae425774c76a5ac514",
              "status": "affected",
              "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
            "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.2.*",
              "status": "unaffected",
              "version": "6.2.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.18",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2.5",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmlx5: fix skb leak while fifo resync and push\n\nDuring ptp resync operation SKBs were poped from the fifo but were never\nfreed neither by napi_consume nor by dev_kfree_skb_any. Add call to\nnapi_consume_skb to properly free SKBs.\n\nAnother leak was happening because mlx5e_skb_fifo_has_room() had an error\nin the check. Comparing free running counters works well unless C promotes\nthe types to something wider than the counter. In this case counters are\nu16 but the result of the substraction is promouted to int and it causes\nwrong result (negative value) of the check when producer have already\noverlapped but consumer haven\u0027t yet. Explicit cast to u16 fixes the issue."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The defect is in the mlx5 PTP transmit/completion path, reached by locally originated packets \u2014 an unprivileged process opening a UDP socket, enabling SO_TIMESTAMPING with SOF_TIMESTAMPING_TX_HARDWARE, and sending to port 319 (or ethertype 0x88F7). A remote peer cannot set SKBTX_HW_TSTAMP on the host\u0027s outbound skbs, so the reliable trigger is a local syscall path, not received network data.\nAC:L - Both preconditions are entirely under the attacker\u0027s control: the u16 producer counter is advanced by the attacker\u0027s own packets, so wrapping into the broken-comparison window is deterministic after ~65536 sends, and outrunning the slower port-timestamp CQ is achieved by simply bursting traffic. No race the attacker cannot drive, no unpredictable memory layout, and the enabling tx_port_ts priv-flag is a routine runtime setting in PTP-timestamping deployments rather than a rare build option.\nPR:L - Neither setsockopt(SO_TIMESTAMPING) with SOF_TIMESTAMPING_TX_HARDWARE nor sending UDP to port 319 requires any capability, and mlx5e_use_ptpsq() checks only the skb tx_flags and packet classification \u2014 no hwtstamp or privilege gate. Any unprivileged local account can therefore drive skbs onto the PTP SQ and overflow the fifo.\nUI:N - The attacker\u0027s own packet transmission drives the fifo overflow and the corrupted TS-CQE consumption entirely; no action by any other user or administrator is needed once the interface is in its normal PTP configuration.\nS:U - The corruption is confined to kernel heap objects (sk_buff slab entries and the driver\u0027s skb fifo) within the same kernel security authority. There is no crossing of a VM, IOMMU, or sandbox boundary.\nC:H - Duplicate pops make the TS-CQ path dereference already-freed sk_buffs \u2014 mlx5e_skb_cb_get_hwts() reads freed slab memory and skb_tstamp_tx() clones the freed (and possibly reallocated) skb and delivers it to a socket\u0027s error queue, exposing kernel heap contents to userspace. The premature-free primitive is also the classic basis for a controlled arbitrary-read via heap spraying.\nI:H - The same duplicate consumption causes skb refcount underflow and double free of a kmem_cache object, corrupting the slab freelist, while mlx5e_skb_cb_hwtstamp_handler() writes hwtstamp values and memsets into the freed object\u0027s cb field. That combination of double-free plus write-into-freed-memory is a heap corruption primitive usable for control-flow hijack.\nA:H - The overflow reliably produces kernel oopses in softirq/NAPI context \u2014 NULL dereference on never-written kvzalloc\u0027d fifo slots during the resync loop, WARN_ON_ONCE in mlx5e_skb_fifo_pop() (fatal under panic_on_warn), and double-free BUGs \u2014 taking down the machine. Independently, the unfreed skbs in the resync path leak memory without bound until OOM."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:18:19.166Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/234cffda95e1049f58e8ec136ef105c633f0ed19"
        },
        {
          "url": "https://git.kernel.org/stable/c/68504c66d08c70fb92799722e25a932d311d74fd"
        },
        {
          "url": "https://git.kernel.org/stable/c/e435941b1da1a0be4ff8a7ae425774c76a5ac514"
        }
      ],
      "title": "mlx5: fix skb leak while fifo resync and push",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54238",
    "datePublished": "2025-12-30T12:11:27.702Z",
    "dateReserved": "2025-12-30T12:06:44.508Z",
    "dateUpdated": "2026-10-15T21:41:42.874Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-54238",
      "date": "2026-11-13",
      "epss": "0.00152",
      "percentile": "0.04458"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
                  "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "234cffda95e1049f58e8ec136ef105c633f0ed19",
                    "status": "affected",
                    "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "68504c66d08c70fb92799722e25a932d311d74fd",
                    "status": "affected",
                    "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e435941b1da1a0be4ff8a7ae425774c76a5ac514",
                    "status": "affected",
                    "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
                  "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.0"
                  },
                  {
                    "lessThan": "6.0",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.18",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.2.*",
                    "status": "unaffected",
                    "version": "6.2.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.3",
                    "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\nmlx5: fix skb leak while fifo resync and push\n\nDuring ptp resync operation SKBs were poped from the fifo but were never\nfreed neither by napi_consume nor by dev_kfree_skb_any. Add call to\nnapi_consume_skb to properly free SKBs.\n\nAnother leak was happening because mlx5e_skb_fifo_has_room() had an error\nin the check. Comparing free running counters works well unless C promotes\nthe types to something wider than the counter. In this case counters are\nu16 but the result of the substraction is promouted to int and it causes\nwrong result (negative value) of the check when producer have already\noverlapped but consumer haven\u0027t yet. Explicit cast to u16 fixes the issue."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nmlx5: corrige la fuga de skb durante la resincronizaci\u00f3n y el env\u00edo de fifo\n\nDurante la operaci\u00f3n de resincronizaci\u00f3n de ptp, los SKB fueron extra\u00eddos de la fifo pero nunca fueron liberados ni por napi_consume ni por dev_kfree_skb_any. A\u00f1ade una llamada a napi_consume_skb para liberar correctamente los SKB.\n\nOtra fuga estaba ocurriendo porque mlx5e_skb_fifo_has_room() ten\u00eda un error en la comprobaci\u00f3n. Comparar contadores de ejecuci\u00f3n libre funciona bien a menos que C promueva los tipos a algo m\u00e1s amplio que el contador. En este caso, los contadores son u16 pero el resultado de la resta es promovido a int y causa un resultado incorrecto (valor negativo) de la comprobaci\u00f3n cuando el productor ya se ha superpuesto pero el consumidor a\u00fan no lo ha hecho. Una conversi\u00f3n expl\u00edcita a u16 soluciona el problema."
          }
        ],
        "id": "CVE-2023-54238",
        "lastModified": "2026-10-15T22:17:56.340",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2023-54238",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-15T21:39:43.149613Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2025-12-30T13:16:12.310",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/234cffda95e1049f58e8ec136ef105c633f0ed19"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/68504c66d08c70fb92799722e25a932d311d74fd"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e435941b1da1a0be4ff8a7ae425774c76a5ac514"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-11-05T11:29:46+00:00",
      "cve": "CVE-2023-54238",
      "id": "CVE-2023-54238",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:fixed": "120",
      "product_status:known_affected": "139",
      "product_status:known_not_affected": "29",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: Linux kernel: Denial of Service in mlx5 driver due to memory leaks",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54238.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2023-54238",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-15T21:39:43.149613Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-15T21:39:43.972Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "Linux",
              "programFiles": [
                "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
                "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "lessThan": "234cffda95e1049f58e8ec136ef105c633f0ed19",
                  "status": "affected",
                  "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                  "versionType": "git"
                },
                {
                  "lessThan": "68504c66d08c70fb92799722e25a932d311d74fd",
                  "status": "affected",
                  "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                  "versionType": "git"
                },
                {
                  "lessThan": "e435941b1da1a0be4ff8a7ae425774c76a5ac514",
                  "status": "affected",
                  "version": "58a518948f60153e8f6cb8361d2712aa3a1af94a",
                  "versionType": "git"
                }
              ]
            },
            {
              "defaultStatus": "affected",
              "product": "Linux",
              "programFiles": [
                "drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c",
                "drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h"
              ],
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "vendor": "Linux",
              "versions": [
                {
                  "status": "affected",
                  "version": "6.0"
                },
                {
                  "lessThan": "6.0",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.1.*",
                  "status": "unaffected",
                  "version": "6.1.18",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "6.2.*",
                  "status": "unaffected",
                  "version": "6.2.5",
                  "versionType": "semver"
                },
                {
                  "lessThanOrEqual": "*",
                  "status": "unaffected",
                  "version": "6.3",
                  "versionType": "original_commit_for_fix"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.1.18",
                      "versionStartIncluding": "6.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.2.5",
                      "versionStartIncluding": "6.0",
                      "vulnerable": true
                    },
                    {
                      "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "6.3",
                      "versionStartIncluding": "6.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmlx5: fix skb leak while fifo resync and push\n\nDuring ptp resync operation SKBs were poped from the fifo but were never\nfreed neither by napi_consume nor by dev_kfree_skb_any. Add call to\nnapi_consume_skb to properly free SKBs.\n\nAnother leak was happening because mlx5e_skb_fifo_has_room() had an error\nin the check. Comparing free running counters works well unless C promotes\nthe types to something wider than the counter. In this case counters are\nu16 but the result of the substraction is promouted to int and it causes\nwrong result (negative value) of the check when producer have already\noverlapped but consumer haven\u0027t yet. Explicit cast to u16 fixes the issue."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "AV:L - The defect is in the mlx5 PTP transmit/completion path, reached by locally originated packets \u2014 an unprivileged process opening a UDP socket, enabling SO_TIMESTAMPING with SOF_TIMESTAMPING_TX_HARDWARE, and sending to port 319 (or ethertype 0x88F7). A remote peer cannot set SKBTX_HW_TSTAMP on the host\u0027s outbound skbs, so the reliable trigger is a local syscall path, not received network data.\nAC:L - Both preconditions are entirely under the attacker\u0027s control: the u16 producer counter is advanced by the attacker\u0027s own packets, so wrapping into the broken-comparison window is deterministic after ~65536 sends, and outrunning the slower port-timestamp CQ is achieved by simply bursting traffic. No race the attacker cannot drive, no unpredictable memory layout, and the enabling tx_port_ts priv-flag is a routine runtime setting in PTP-timestamping deployments rather than a rare build option.\nPR:L - Neither setsockopt(SO_TIMESTAMPING) with SOF_TIMESTAMPING_TX_HARDWARE nor sending UDP to port 319 requires any capability, and mlx5e_use_ptpsq() checks only the skb tx_flags and packet classification \u2014 no hwtstamp or privilege gate. Any unprivileged local account can therefore drive skbs onto the PTP SQ and overflow the fifo.\nUI:N - The attacker\u0027s own packet transmission drives the fifo overflow and the corrupted TS-CQE consumption entirely; no action by any other user or administrator is needed once the interface is in its normal PTP configuration.\nS:U - The corruption is confined to kernel heap objects (sk_buff slab entries and the driver\u0027s skb fifo) within the same kernel security authority. There is no crossing of a VM, IOMMU, or sandbox boundary.\nC:H - Duplicate pops make the TS-CQ path dereference already-freed sk_buffs \u2014 mlx5e_skb_cb_get_hwts() reads freed slab memory and skb_tstamp_tx() clones the freed (and possibly reallocated) skb and delivers it to a socket\u0027s error queue, exposing kernel heap contents to userspace. The premature-free primitive is also the classic basis for a controlled arbitrary-read via heap spraying.\nI:H - The same duplicate consumption causes skb refcount underflow and double free of a kmem_cache object, corrupting the slab freelist, while mlx5e_skb_cb_hwtstamp_handler() writes hwtstamp values and memsets into the freed object\u0027s cb field. That combination of double-free plus write-into-freed-memory is a heap corruption primitive usable for control-flow hijack.\nA:H - The overflow reliably produces kernel oopses in softirq/NAPI context \u2014 NULL dereference on never-written kvzalloc\u0027d fifo slots during the resync loop, WARN_ON_ONCE in mlx5e_skb_fifo_pop() (fatal under panic_on_warn), and double-free BUGs \u2014 taking down the machine. Independently, the unfreed skbs in the resync path leak memory without bound until OOM."
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-05T09:18:19.166Z",
            "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "shortName": "Linux"
          },
          "references": [
            {
              "url": "https://git.kernel.org/stable/c/234cffda95e1049f58e8ec136ef105c633f0ed19"
            },
            {
              "url": "https://git.kernel.org/stable/c/68504c66d08c70fb92799722e25a932d311d74fd"
            },
            {
              "url": "https://git.kernel.org/stable/c/e435941b1da1a0be4ff8a7ae425774c76a5ac514"
            }
          ],
          "title": "mlx5: fix skb leak while fifo resync and push",
          "x_generator": {
            "engine": "bippy-1.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "assignerShortName": "Linux",
        "cveId": "CVE-2023-54238",
        "datePublished": "2025-12-30T12:11:27.702Z",
        "dateReserved": "2025-12-30T12:06:44.508Z",
        "dateUpdated": "2026-10-15T21:41:42.874Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

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.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
How durations are calculated

Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.

Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.

Events included in the timeline

Loading timeline…


    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.