CVE-2022-48883 (GCVE-0-2022-48883)
Vulnerability from cvelistv5
Published
2024-08-21 06:10
Modified
2026-08-05 08:52
Summary
In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent A user is able to configure an arbitrary number of rx queues when creating an interface via netlink. This doesn't work for child PKEY interfaces because the child interface uses the parent receive channels. Although the child shares the parent's receive channels, the number of rx queues is important for the channel_stats array: the parent's rx channel index is used to access the child's channel_stats. So the array has to be at least as large as the parent's rx queue size for the counting to work correctly and to prevent out of bound accesses. This patch checks for the mentioned scenario and returns an error when trying to create the interface. The error is propagated to the user.
Impacted products
Vendor Product Version
Linux Linux Version: be98737a4faa3a0dc1781ced5bbf5c47865e29d7
Version: be98737a4faa3a0dc1781ced5bbf5c47865e29d7
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2022-48883",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T16:04:49.165689Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:32:52.439Z",
          "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/ipoib/ipoib_vlan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5844a46f09f768da866d6b0ffbf1a9073266bf24",
              "status": "affected",
              "version": "be98737a4faa3a0dc1781ced5bbf5c47865e29d7",
              "versionType": "git"
            },
            {
              "lessThan": "31c70bfe58ef09fe36327ddcced9143a16e9e83d",
              "status": "affected",
              "version": "be98737a4faa3a0dc1781ced5bbf5c47865e29d7",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.17"
            },
            {
              "lessThan": "5.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.7",
              "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": "6.1.7",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2",
                  "versionStartIncluding": "5.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent\n\nA user is able to configure an arbitrary number of rx queues when\ncreating an interface via netlink. This doesn\u0027t work for child PKEY\ninterfaces because the child interface uses the parent receive channels.\n\nAlthough the child shares the parent\u0027s receive channels, the number of\nrx queues is important for the channel_stats array: the parent\u0027s rx\nchannel index is used to access the child\u0027s channel_stats. So the array\nhas to be at least as large as the parent\u0027s rx queue size for the\ncounting to work correctly and to prevent out of bound accesses.\n\nThis patch checks for the mentioned scenario and returns an error when\ntrying to create the interface. The error is propagated to the user."
        }
      ],
      "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 - Exploitation requires creating an mlx5 IPoIB PKEY child via local rtnl/netlink (IFLA_NUM_RX_QUEUES) or sysfs; remote IB packets alone do not create the undersized channel_stats array.\nAC:L - The attacker fully controls the child\u0027s rx queue count at creation time, and any later RX on a parent channel whose index exceeds that size deterministically OOBs in mlx5i_complete_rx_cqe with no race or uncontrolled layout required.\nPR:L - The primary path is RTM_NEWLINK, gated by netlink_net_capable(CAP_NET_ADMIN) in the netns user_ns, which an unprivileged user can obtain via user+network namespaces (and containers with NET_ADMIN on an assigned IPoIB parent).\nUI:N - The attacker creates and brings up the undersized PKEY interface themselves; no separate victim action is required.\nS:U - Impact is heap corruption inside the host kernel\u0027s mlx5e IPoIB RX path under the same OS authority, not a VM escape, IOMMU bypass, or other cross-boundary breakout.\nC:H - Parent RQ index indexes past the child\u0027s channel_stats pointer array (heap OOB), which is memory corruption leverageable for kernel information disclosure per OOB-write guidance.\nI:H - The OOB pointer is used to increment stats counters (csum_complete/csum_none), an out-of-bounds heap write enabling arbitrary-write / control-flow hijacking primitives.\nA:H - Invalid or NULL channel_stats entries cause kernel oops/panic on RX completion, which is a full availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:52:47.276Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/5844a46f09f768da866d6b0ffbf1a9073266bf24"
        },
        {
          "url": "https://git.kernel.org/stable/c/31c70bfe58ef09fe36327ddcced9143a16e9e83d"
        }
      ],
      "title": "net/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-48883",
    "datePublished": "2024-08-21T06:10:14.763Z",
    "dateReserved": "2024-07-16T11:38:08.924Z",
    "dateUpdated": "2026-08-05T08:52:47.276Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2022-48883\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T16:04:49.165689Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:11.815Z\"}}], \"cna\": {\"title\": \"net/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - Exploitation requires creating an mlx5 IPoIB PKEY child via local rtnl/netlink (IFLA_NUM_RX_QUEUES) or sysfs; remote IB packets alone do not create the undersized channel_stats array.\\nAC:L - The attacker fully controls the child\u0027s rx queue count at creation time, and any later RX on a parent channel whose index exceeds that size deterministically OOBs in mlx5i_complete_rx_cqe with no race or uncontrolled layout required.\\nPR:L - The primary path is RTM_NEWLINK, gated by netlink_net_capable(CAP_NET_ADMIN) in the netns user_ns, which an unprivileged user can obtain via user+network namespaces (and containers with NET_ADMIN on an assigned IPoIB parent).\\nUI:N - The attacker creates and brings up the undersized PKEY interface themselves; no separate victim action is required.\\nS:U - Impact is heap corruption inside the host kernel\u0027s mlx5e IPoIB RX path under the same OS authority, not a VM escape, IOMMU bypass, or other cross-boundary breakout.\\nC:H - Parent RQ index indexes past the child\u0027s channel_stats pointer array (heap OOB), which is memory corruption leverageable for kernel information disclosure per OOB-write guidance.\\nI:H - The OOB pointer is used to increment stats counters (csum_complete/csum_none), an out-of-bounds heap write enabling arbitrary-write / control-flow hijacking primitives.\\nA:H - Invalid or NULL channel_stats entries cause kernel oops/panic on RX completion, which is a full availability impact.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"be98737a4faa3a0dc1781ced5bbf5c47865e29d7\", \"lessThan\": \"5844a46f09f768da866d6b0ffbf1a9073266bf24\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"be98737a4faa3a0dc1781ced5bbf5c47865e29d7\", \"lessThan\": \"31c70bfe58ef09fe36327ddcced9143a16e9e83d\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.17\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.17\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.1.7\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.2\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/5844a46f09f768da866d6b0ffbf1a9073266bf24\"}, {\"url\": \"https://git.kernel.org/stable/c/31c70bfe58ef09fe36327ddcced9143a16e9e83d\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet/mlx5e: IPoIB, Block PKEY interfaces with less rx queues than parent\\n\\nA user is able to configure an arbitrary number of rx queues when\\ncreating an interface via netlink. This doesn\u0027t work for child PKEY\\ninterfaces because the child interface uses the parent receive channels.\\n\\nAlthough the child shares the parent\u0027s receive channels, the number of\\nrx queues is important for the channel_stats array: the parent\u0027s rx\\nchannel index is used to access the child\u0027s channel_stats. So the array\\nhas to be at least as large as the parent\u0027s rx queue size for the\\ncounting to work correctly and to prevent out of bound accesses.\\n\\nThis patch checks for the mentioned scenario and returns an error when\\ntrying to create the interface. The error is propagated to the user.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.7\", \"versionStartIncluding\": \"5.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.2\", \"versionStartIncluding\": \"5.17\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:52:47.276Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2022-48883\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:52:47.276Z\", \"dateReserved\": \"2024-07-16T11:38:08.924Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-08-21T06:10:14.763Z\", \"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…

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.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • 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…

Loading…