Skip to content
Heist/ feed
Back to feed
UnratedFix available

qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure adapter->dcb would get silently freed inside qlcnic_dcb_enable() in case qlcnic_dcb_attach() would return an error, which always happens under OOM conditions. This would lead to use-after-free because both of the existing callers invoke qlcnic_dcb_get_info() on the obtained pointer, which is potentially freed at that point. Propagate errors from qlcnic_dcb_enable(), and instead free the dcb pointer at callsite using qlcnic_dcb_free(). This also removes the now unused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around kfree() also causing memory leaks for partially initialized dcb. Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.

Products
Kernel
Affected versions
Not specified
Fixed versions
4.14.303, 4.19.270, 5.10.163, 5.15.87, 5.4.229, 6.0.19, 6.1.5
CVEs
CVE-2022-50288
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 20:29 UTC · Revision 1

Source evidence

qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure

core-osv · Original source

Published 15 Sept 2025, 14:21 UTC

In the Linux kernel, the following vulnerability has been resolved: qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure adapter->dcb would get silently freed inside qlcnic_dcb_enable() in case qlcnic_dcb_attach() would return an error, which always happens under OOM conditions. This would lead to use-after-free because both of the existing callers invoke qlcnic_dcb_get_info() on the obtained pointer, which is potentially freed at that point. Propagate errors from qlcnic_dcb_enable(), and instead free the dcb pointer at callsite using qlcnic_dcb_free(). This also removes the now unused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around kfree() also causing memory leaks for partially initialized dcb. Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.

osv:CVE-2022-50288

Kernel

Fixed versions: 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.87, 6.0.19, 6.1.5

Complete source record
{
  "id": "db272151ad5885bb3e2769d9baae6863cd64632ffa0446528121f2a5c4817fc3",
  "url": "https://osv.dev/vulnerability/CVE-2022-50288",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure adapter->dcb would get silently freed inside qlcnic_dcb_enable() in case qlcnic_dcb_attach() would return an error, which always happens under OOM conditions. This would lead to use-after-free because both of the existing callers invoke qlcnic_dcb_get_info() on the obtained pointer, which is potentially freed at that point. Propagate errors from qlcnic_dcb_enable(), and instead free the dcb pointer at callsite using qlcnic_dcb_free(). This also removes the now unused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around kfree() also causing memory leaks for partially initialized dcb. Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
    "evidence": "osv:CVE-2022-50288",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "4.14.303",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "4.19.270",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.4.229",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.10.163",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.87",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.0.19",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.5",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2022-50288",
      "aliases": [
        "CVE-2022-50288"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "3c44bba1d270cb1620b4fe76786d0968118cb86b"
                },
                {
                  "fixed": "36999236f0b12d5de21a6f40e93b570727b9ceb2"
                },
                {
                  "fixed": "d12a7510293d3370b234b0b7c5eda33e58786768"
                },
                {
                  "fixed": "8f97eeb02a553cdc78c83a0596448a370e1518c4"
                },
                {
                  "fixed": "513787ff9a331b461115e8a145a983d650a84fcb"
                },
                {
                  "fixed": "95df720e64a6409d8152827a776c43f615e3321a"
                },
                {
                  "fixed": "8df1dc04ce0e4c03b51a756749c250a9cb17d707"
                },
                {
                  "fixed": "a2a694e6edbdb3efb34e1613a31fdcf6cf444a55"
                },
                {
                  "fixed": "13a7c8964afcd8ca43c0b6001ebb0127baa95362"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-50288.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.14.0"
                },
                {
                  "fixed": "4.14.303"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.15.0"
                },
                {
                  "fixed": "4.19.270"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.20.0"
                },
                {
                  "fixed": "5.4.229"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.5.0"
                },
                {
                  "fixed": "5.10.163"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.87"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.0.19"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.1.0"
                },
                {
                  "fixed": "6.1.5"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-50288.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:23.792255246Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362",
        "https://git.kernel.org/stable/c/36999236f0b12d5de21a6f40e93b570727b9ceb2",
        "https://git.kernel.org/stable/c/513787ff9a331b461115e8a145a983d650a84fcb",
        "https://git.kernel.org/stable/c/8df1dc04ce0e4c03b51a756749c250a9cb17d707",
        "https://git.kernel.org/stable/c/8f97eeb02a553cdc78c83a0596448a370e1518c4",
        "https://git.kernel.org/stable/c/95df720e64a6409d8152827a776c43f615e3321a",
        "https://git.kernel.org/stable/c/a2a694e6edbdb3efb34e1613a31fdcf6cf444a55",
        "https://git.kernel.org/stable/c/d12a7510293d3370b234b0b7c5eda33e58786768",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50288.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2022-50288",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50288.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2022-50288",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 489855,
  "published_at": "2025-09-15T14:21:24.427+00:00"
}