CVE-2022-50288 (GCVE-0-2022-50288)
Vulnerability from cvelistv5
Published
2025-09-15 14:21
Modified
2025-09-15 14:21
Severity ?
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.
Impacted products
Vendor Product Version
Linux Linux Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Version: 3c44bba1d270cb1620b4fe76786d0968118cb86b
Create a notification for this product.
   Linux Linux Version: 3.14
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c",
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h",
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "36999236f0b12d5de21a6f40e93b570727b9ceb2",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "d12a7510293d3370b234b0b7c5eda33e58786768",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "8f97eeb02a553cdc78c83a0596448a370e1518c4",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "513787ff9a331b461115e8a145a983d650a84fcb",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "95df720e64a6409d8152827a776c43f615e3321a",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "8df1dc04ce0e4c03b51a756749c250a9cb17d707",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "a2a694e6edbdb3efb34e1613a31fdcf6cf444a55",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            },
            {
              "lessThan": "13a7c8964afcd8ca43c0b6001ebb0127baa95362",
              "status": "affected",
              "version": "3c44bba1d270cb1620b4fe76786d0968118cb86b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c",
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h",
            "drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.14"
            },
            {
              "lessThan": "3.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.14.*",
              "status": "unaffected",
              "version": "4.14.303",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.229",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.163",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.87",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.0.*",
              "status": "unaffected",
              "version": "6.0.19",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.14.303",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.270",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.229",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.163",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.87",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.19",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.5",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2",
                  "versionStartIncluding": "3.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nqlcnic: prevent -\u003edcb use-after-free on qlcnic_dcb_enable() failure\n\nadapter-\u003edcb would get silently freed inside qlcnic_dcb_enable() in\ncase qlcnic_dcb_attach() would return an error, which always happens\nunder OOM conditions. This would lead to use-after-free because both\nof the existing callers invoke qlcnic_dcb_get_info() on the obtained\npointer, which is potentially freed at that point.\n\nPropagate errors from qlcnic_dcb_enable(), and instead free the dcb\npointer at callsite using qlcnic_dcb_free(). This also removes the now\nunused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around\nkfree() also causing memory leaks for partially initialized dcb.\n\nFound by Linux Verification Center (linuxtesting.org) with the SVACE\nstatic analysis tool."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-09-15T14:21:24.427Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/36999236f0b12d5de21a6f40e93b570727b9ceb2"
        },
        {
          "url": "https://git.kernel.org/stable/c/d12a7510293d3370b234b0b7c5eda33e58786768"
        },
        {
          "url": "https://git.kernel.org/stable/c/8f97eeb02a553cdc78c83a0596448a370e1518c4"
        },
        {
          "url": "https://git.kernel.org/stable/c/513787ff9a331b461115e8a145a983d650a84fcb"
        },
        {
          "url": "https://git.kernel.org/stable/c/95df720e64a6409d8152827a776c43f615e3321a"
        },
        {
          "url": "https://git.kernel.org/stable/c/8df1dc04ce0e4c03b51a756749c250a9cb17d707"
        },
        {
          "url": "https://git.kernel.org/stable/c/a2a694e6edbdb3efb34e1613a31fdcf6cf444a55"
        },
        {
          "url": "https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362"
        }
      ],
      "title": "qlcnic: prevent -\u003edcb use-after-free on qlcnic_dcb_enable() failure",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50288",
    "datePublished": "2025-09-15T14:21:24.427Z",
    "dateReserved": "2025-09-15T13:58:00.977Z",
    "dateUpdated": "2025-09-15T14:21:24.427Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50288\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-09-15T15:15:40.020\",\"lastModified\":\"2025-09-15T15:22:27.090\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nqlcnic: prevent -\u003edcb use-after-free on qlcnic_dcb_enable() failure\\n\\nadapter-\u003edcb would get silently freed inside qlcnic_dcb_enable() in\\ncase qlcnic_dcb_attach() would return an error, which always happens\\nunder OOM conditions. This would lead to use-after-free because both\\nof the existing callers invoke qlcnic_dcb_get_info() on the obtained\\npointer, which is potentially freed at that point.\\n\\nPropagate errors from qlcnic_dcb_enable(), and instead free the dcb\\npointer at callsite using qlcnic_dcb_free(). This also removes the now\\nunused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around\\nkfree() also causing memory leaks for partially initialized dcb.\\n\\nFound by Linux Verification Center (linuxtesting.org) with the SVACE\\nstatic analysis tool.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/36999236f0b12d5de21a6f40e93b570727b9ceb2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/513787ff9a331b461115e8a145a983d650a84fcb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8df1dc04ce0e4c03b51a756749c250a9cb17d707\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8f97eeb02a553cdc78c83a0596448a370e1518c4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/95df720e64a6409d8152827a776c43f615e3321a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a2a694e6edbdb3efb34e1613a31fdcf6cf444a55\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d12a7510293d3370b234b0b7c5eda33e58786768\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…