cve-2021-47127
Vulnerability from cvelistv5
Published
2024-03-15 20:14
Modified
2024-12-19 07:35
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: ice: track AF_XDP ZC enabled queues in bitmap Commit c7a219048e45 ("ice: Remove xsk_buff_pool from VSI structure") silently introduced a regression and broke the Tx side of AF_XDP in copy mode. xsk_pool on ice_ring is set only based on the existence of the XDP prog on the VSI which in turn picks ice_clean_tx_irq_zc to be executed. That is not something that should happen for copy mode as it should use the regular data path ice_clean_tx_irq. This results in a following splat when xdpsock is run in txonly or l2fwd scenarios in copy mode: <snip> [ 106.050195] BUG: kernel NULL pointer dereference, address: 0000000000000030 [ 106.057269] #PF: supervisor read access in kernel mode [ 106.062493] #PF: error_code(0x0000) - not-present page [ 106.067709] PGD 0 P4D 0 [ 106.070293] Oops: 0000 [#1] PREEMPT SMP NOPTI [ 106.074721] CPU: 61 PID: 0 Comm: swapper/61 Not tainted 5.12.0-rc2+ #45 [ 106.081436] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019 [ 106.092027] RIP: 0010:xp_raw_get_dma+0x36/0x50 [ 106.096551] Code: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c <48> 8b 04 d0 48 83 e0 fe 48 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00 [ 106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206 [ 106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800 [ 106.128137] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88984cd8b800 [ 106.135383] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800 [ 106.142628] R10: 0000000000000000 R11: ffffffff826060c0 R12: 00000000000000ff [ 106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018 [ 106.157117] FS: 0000000000000000(0000) GS:ffff8897e0f40000(0000) knlGS:0000000000000000 [ 106.165332] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0 [ 106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 106.185653] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 106.192898] PKRU: 55555554 [ 106.195653] Call Trace: [ 106.198143] <IRQ> [ 106.200196] ice_clean_tx_irq_zc+0x183/0x2a0 [ice] [ 106.205087] ice_napi_poll+0x3e/0x590 [ice] [ 106.209356] __napi_poll+0x2a/0x160 [ 106.212911] net_rx_action+0xd6/0x200 [ 106.216634] __do_softirq+0xbf/0x29b [ 106.220274] irq_exit_rcu+0x88/0xc0 [ 106.223819] common_interrupt+0x7b/0xa0 [ 106.227719] </IRQ> [ 106.229857] asm_common_interrupt+0x1e/0x40 </snip> Fix this by introducing the bitmap of queues that are zero-copy enabled, where each bit, corresponding to a queue id that xsk pool is being configured on, will be set/cleared within ice_xsk_pool_{en,dis}able and checked within ice_xsk_pool(). The latter is a function used for deciding which napi poll routine is executed. Idea is being taken from our other drivers such as i40e and ixgbe.
Impacted products
Vendor Product Version
Linux Linux Version: c7a219048e459cf99c6fec0f7c1e42414e9e6202
Version: c7a219048e459cf99c6fec0f7c1e42414e9e6202
Create a notification for this product.
   Linux Linux Version: 5.12
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:24:39.881Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47127",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:55:26.106391Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:32:52.269Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/ice/ice.h",
            "drivers/net/ethernet/intel/ice/ice_lib.c",
            "drivers/net/ethernet/intel/ice/ice_xsk.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1d34fa4fcf06649036ba0c97854fcf7a741ee18c",
              "status": "affected",
              "version": "c7a219048e459cf99c6fec0f7c1e42414e9e6202",
              "versionType": "git"
            },
            {
              "lessThan": "e102db780e1c14f10c70dafa7684af22a745b51d",
              "status": "affected",
              "version": "c7a219048e459cf99c6fec0f7c1e42414e9e6202",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/ice/ice.h",
            "drivers/net/ethernet/intel/ice/ice_lib.c",
            "drivers/net/ethernet/intel/ice/ice_xsk.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.12"
            },
            {
              "lessThan": "5.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.12.*",
              "status": "unaffected",
              "version": "5.12.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.13",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nice: track AF_XDP ZC enabled queues in bitmap\n\nCommit c7a219048e45 (\"ice: Remove xsk_buff_pool from VSI structure\")\nsilently introduced a regression and broke the Tx side of AF_XDP in copy\nmode. xsk_pool on ice_ring is set only based on the existence of the XDP\nprog on the VSI which in turn picks ice_clean_tx_irq_zc to be executed.\nThat is not something that should happen for copy mode as it should use\nthe regular data path ice_clean_tx_irq.\n\nThis results in a following splat when xdpsock is run in txonly or l2fwd\nscenarios in copy mode:\n\n\u003csnip\u003e\n[  106.050195] BUG: kernel NULL pointer dereference, address: 0000000000000030\n[  106.057269] #PF: supervisor read access in kernel mode\n[  106.062493] #PF: error_code(0x0000) - not-present page\n[  106.067709] PGD 0 P4D 0\n[  106.070293] Oops: 0000 [#1] PREEMPT SMP NOPTI\n[  106.074721] CPU: 61 PID: 0 Comm: swapper/61 Not tainted 5.12.0-rc2+ #45\n[  106.081436] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019\n[  106.092027] RIP: 0010:xp_raw_get_dma+0x36/0x50\n[  106.096551] Code: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c \u003c48\u003e 8b 04 d0 48 83 e0 fe 48 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00\n[  106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206\n[  106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800\n[  106.128137] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88984cd8b800\n[  106.135383] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800\n[  106.142628] R10: 0000000000000000 R11: ffffffff826060c0 R12: 00000000000000ff\n[  106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018\n[  106.157117] FS:  0000000000000000(0000) GS:ffff8897e0f40000(0000) knlGS:0000000000000000\n[  106.165332] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0\n[  106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[  106.185653] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\n[  106.192898] PKRU: 55555554\n[  106.195653] Call Trace:\n[  106.198143]  \u003cIRQ\u003e\n[  106.200196]  ice_clean_tx_irq_zc+0x183/0x2a0 [ice]\n[  106.205087]  ice_napi_poll+0x3e/0x590 [ice]\n[  106.209356]  __napi_poll+0x2a/0x160\n[  106.212911]  net_rx_action+0xd6/0x200\n[  106.216634]  __do_softirq+0xbf/0x29b\n[  106.220274]  irq_exit_rcu+0x88/0xc0\n[  106.223819]  common_interrupt+0x7b/0xa0\n[  106.227719]  \u003c/IRQ\u003e\n[  106.229857]  asm_common_interrupt+0x1e/0x40\n\u003c/snip\u003e\n\nFix this by introducing the bitmap of queues that are zero-copy enabled,\nwhere each bit, corresponding to a queue id that xsk pool is being\nconfigured on, will be set/cleared within ice_xsk_pool_{en,dis}able and\nchecked within ice_xsk_pool(). The latter is a function used for\ndeciding which napi poll routine is executed.\nIdea is being taken from our other drivers such as i40e and ixgbe."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-12-19T07:35:44.078Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c"
        },
        {
          "url": "https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d"
        }
      ],
      "title": "ice: track AF_XDP ZC enabled queues in bitmap",
      "x_generator": {
        "engine": "bippy-5f407fcff5a0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47127",
    "datePublished": "2024-03-15T20:14:31.658Z",
    "dateReserved": "2024-03-04T18:12:48.839Z",
    "dateUpdated": "2024-12-19T07:35:44.078Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2021-47127\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-03-15T21:15:07.417\",\"lastModified\":\"2025-01-07T17:59:07.007\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nice: track AF_XDP ZC enabled queues in bitmap\\n\\nCommit c7a219048e45 (\\\"ice: Remove xsk_buff_pool from VSI structure\\\")\\nsilently introduced a regression and broke the Tx side of AF_XDP in copy\\nmode. xsk_pool on ice_ring is set only based on the existence of the XDP\\nprog on the VSI which in turn picks ice_clean_tx_irq_zc to be executed.\\nThat is not something that should happen for copy mode as it should use\\nthe regular data path ice_clean_tx_irq.\\n\\nThis results in a following splat when xdpsock is run in txonly or l2fwd\\nscenarios in copy mode:\\n\\n\u003csnip\u003e\\n[  106.050195] BUG: kernel NULL pointer dereference, address: 0000000000000030\\n[  106.057269] #PF: supervisor read access in kernel mode\\n[  106.062493] #PF: error_code(0x0000) - not-present page\\n[  106.067709] PGD 0 P4D 0\\n[  106.070293] Oops: 0000 [#1] PREEMPT SMP NOPTI\\n[  106.074721] CPU: 61 PID: 0 Comm: swapper/61 Not tainted 5.12.0-rc2+ #45\\n[  106.081436] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019\\n[  106.092027] RIP: 0010:xp_raw_get_dma+0x36/0x50\\n[  106.096551] Code: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c \u003c48\u003e 8b 04 d0 48 83 e0 fe 48 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00\\n[  106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206\\n[  106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800\\n[  106.128137] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88984cd8b800\\n[  106.135383] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800\\n[  106.142628] R10: 0000000000000000 R11: ffffffff826060c0 R12: 00000000000000ff\\n[  106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018\\n[  106.157117] FS:  0000000000000000(0000) GS:ffff8897e0f40000(0000) knlGS:0000000000000000\\n[  106.165332] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\n[  106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0\\n[  106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\\n[  106.185653] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\\n[  106.192898] PKRU: 55555554\\n[  106.195653] Call Trace:\\n[  106.198143]  \u003cIRQ\u003e\\n[  106.200196]  ice_clean_tx_irq_zc+0x183/0x2a0 [ice]\\n[  106.205087]  ice_napi_poll+0x3e/0x590 [ice]\\n[  106.209356]  __napi_poll+0x2a/0x160\\n[  106.212911]  net_rx_action+0xd6/0x200\\n[  106.216634]  __do_softirq+0xbf/0x29b\\n[  106.220274]  irq_exit_rcu+0x88/0xc0\\n[  106.223819]  common_interrupt+0x7b/0xa0\\n[  106.227719]  \u003c/IRQ\u003e\\n[  106.229857]  asm_common_interrupt+0x1e/0x40\\n\u003c/snip\u003e\\n\\nFix this by introducing the bitmap of queues that are zero-copy enabled,\\nwhere each bit, corresponding to a queue id that xsk pool is being\\nconfigured on, will be set/cleared within ice_xsk_pool_{en,dis}able and\\nchecked within ice_xsk_pool(). The latter is a function used for\\ndeciding which napi poll routine is executed.\\nIdea is being taken from our other drivers such as i40e and ixgbe.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: ice: rastrear colas habilitadas para AF_XDP ZC en mapa de bits. El commit c7a219048e45 (\\\"ice: Remove xsk_buff_pool from VSI Structure\\\") introdujo silenciosamente una regresi\u00f3n y rompi\u00f3 el lado Tx de AF_XDP en modo de copia. xsk_pool en ice_ring se configura \u00fanicamente en funci\u00f3n de la existencia del programa XDP en la VSI, que a su vez selecciona ice_clean_tx_irq_zc para ejecutarse. Eso no es algo que deber\u00eda suceder en el modo de copia, ya que deber\u00eda usar la ruta de datos normal ice_clean_tx_irq. Esto da como resultado el siguiente s\u00edmbolo cuando xdpsock se ejecuta en escenarios txonly o l2fwd en modo copia:  [ 106.050195] ERROR: desreferencia del puntero NULL del kernel, direcci\u00f3n: 00000000000000030 [ 106.057269] #PF: acceso de lectura del supervisor en modo kernel [ 106.062493] #PF: error_code(0x0000) - p\u00e1gina no presente [106.067709] PGD 0 P4D 0 [106.070293] Ups: 0000 [#1] PREEMPT SMP NOPTI [106.074721] CPU: 61 PID: 0 Comm: swapper/61 No contaminado 5.12. 0-rc2+ #45 [ 106.081436] Nombre de hardware: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 19/03/2019 [ 106.092027] RIP: 0010:xp_raw_get_dma+0x3 6/0x50 [ 106.096551] C\u00f3digo: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c \u0026lt;48\u0026gt; 8b 04 d0 48 83 e0 fe 4 8 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00 [ 106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206 [ 106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800 [ 106.128137] RDX: 0000000000000006 RSI: 000000000000000000 RDI: ffff88984cd8b800 [ 106.135383 ] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800 [ 106.142628] R10: 00000000000000000 R11: ffffffff826060c0 R12: 00000000 000000ff [ 106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018 [ 106.157117] FS: 0000000000000000(0000) GS:ffff8 897e0f40000(0000) knlGS :0000000000000000 [ 106.165332] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0 [ 106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000000000 [ 106.185653] DR3: 0000000000000000 0 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 106.192898] PKRU: 55555554 [ 106.195653] Seguimiento de llamadas: [ 106.198143]  [ 106.200196] ice_clean_tx_irq_zc+0x183/0x2a0 [ice] [ 106 .205087] ice_napi_poll+0x3e/0x590 [hielo] [ 106.209356] __napi_poll+0x2a/ 0x160 [ 106.212911] net_rx_action+0xd6/0x200 [ 106.216634] __do_softirq+0xbf/0x29b [ 106.220274] irq_exit_rcu+0x88/0xc0 [ 106.223819] common_interrupt+0x7b/0xa0 [ 106.227719]  [ 106.229857] asm_common_interrupt+0x1e/0x40  Solucione este problema introduciendo el mapa de bits de las colas que est\u00e1n habilitadas para copia cero, donde cada bit, correspondiente a una identificaci\u00f3n de cola en la que se est\u00e1 configurando el grupo xsk, se establecer\u00e1/borrar\u00e1 dentro de ice_xsk_pool_{en,dis}able y se verificar\u00e1 dentro ice_xsk_pool(). Esta \u00faltima es una funci\u00f3n utilizada para decidir qu\u00e9 rutina de encuesta napi se ejecuta. La idea se ha tomado de nuestros otros controladores, como i40e e ixgbe.\"}],\"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}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-476\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.12\",\"versionEndExcluding\":\"5.12.10\",\"matchCriteriaId\":\"C68A4290-9FFF-4037-9467-4FF878E3085F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"0CBAD0FC-C281-4666-AB2F-F8E6E1165DF7\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.13:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"96AC23B2-D46A-49D9-8203-8E1BEDCA8532\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.13:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"DA610E30-717C-4700-9F77-A3C9244F3BFD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.13:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"1ECD33F5-85BE-430B-8F86-8D7BD560311D\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:24:39.881Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47127\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:55:26.106391Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:13.166Z\"}}], \"cna\": {\"title\": \"ice: track AF_XDP ZC enabled queues in bitmap\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"c7a219048e45\", \"lessThan\": \"1d34fa4fcf06\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"c7a219048e45\", \"lessThan\": \"e102db780e1c\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/intel/ice/ice.h\", \"drivers/net/ethernet/intel/ice/ice_lib.c\", \"drivers/net/ethernet/intel/ice/ice_xsk.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.12\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.12\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.12.10\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.12.*\"}, {\"status\": \"unaffected\", \"version\": \"5.13\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/ethernet/intel/ice/ice.h\", \"drivers/net/ethernet/intel/ice/ice_lib.c\", \"drivers/net/ethernet/intel/ice/ice_xsk.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/1d34fa4fcf06649036ba0c97854fcf7a741ee18c\"}, {\"url\": \"https://git.kernel.org/stable/c/e102db780e1c14f10c70dafa7684af22a745b51d\"}], \"x_generator\": {\"engine\": \"bippy-9e1c9544281a\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nice: track AF_XDP ZC enabled queues in bitmap\\n\\nCommit c7a219048e45 (\\\"ice: Remove xsk_buff_pool from VSI structure\\\")\\nsilently introduced a regression and broke the Tx side of AF_XDP in copy\\nmode. xsk_pool on ice_ring is set only based on the existence of the XDP\\nprog on the VSI which in turn picks ice_clean_tx_irq_zc to be executed.\\nThat is not something that should happen for copy mode as it should use\\nthe regular data path ice_clean_tx_irq.\\n\\nThis results in a following splat when xdpsock is run in txonly or l2fwd\\nscenarios in copy mode:\\n\\n\u003csnip\u003e\\n[  106.050195] BUG: kernel NULL pointer dereference, address: 0000000000000030\\n[  106.057269] #PF: supervisor read access in kernel mode\\n[  106.062493] #PF: error_code(0x0000) - not-present page\\n[  106.067709] PGD 0 P4D 0\\n[  106.070293] Oops: 0000 [#1] PREEMPT SMP NOPTI\\n[  106.074721] CPU: 61 PID: 0 Comm: swapper/61 Not tainted 5.12.0-rc2+ #45\\n[  106.081436] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019\\n[  106.092027] RIP: 0010:xp_raw_get_dma+0x36/0x50\\n[  106.096551] Code: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c \u003c48\u003e 8b 04 d0 48 83 e0 fe 48 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00\\n[  106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206\\n[  106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800\\n[  106.128137] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88984cd8b800\\n[  106.135383] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800\\n[  106.142628] R10: 0000000000000000 R11: ffffffff826060c0 R12: 00000000000000ff\\n[  106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018\\n[  106.157117] FS:  0000000000000000(0000) GS:ffff8897e0f40000(0000) knlGS:0000000000000000\\n[  106.165332] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\n[  106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0\\n[  106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\\n[  106.185653] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\\n[  106.192898] PKRU: 55555554\\n[  106.195653] Call Trace:\\n[  106.198143]  \u003cIRQ\u003e\\n[  106.200196]  ice_clean_tx_irq_zc+0x183/0x2a0 [ice]\\n[  106.205087]  ice_napi_poll+0x3e/0x590 [ice]\\n[  106.209356]  __napi_poll+0x2a/0x160\\n[  106.212911]  net_rx_action+0xd6/0x200\\n[  106.216634]  __do_softirq+0xbf/0x29b\\n[  106.220274]  irq_exit_rcu+0x88/0xc0\\n[  106.223819]  common_interrupt+0x7b/0xa0\\n[  106.227719]  \u003c/IRQ\u003e\\n[  106.229857]  asm_common_interrupt+0x1e/0x40\\n\u003c/snip\u003e\\n\\nFix this by introducing the bitmap of queues that are zero-copy enabled,\\nwhere each bit, corresponding to a queue id that xsk pool is being\\nconfigured on, will be set/cleared within ice_xsk_pool_{en,dis}able and\\nchecked within ice_xsk_pool(). The latter is a function used for\\ndeciding which napi poll routine is executed.\\nIdea is being taken from our other drivers such as i40e and ixgbe.\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-11-04T11:59:56.619Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47127\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-11-04T11:59:56.619Z\", \"dateReserved\": \"2024-03-04T18:12:48.839Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-03-15T20:14:31.658Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }
  }
}


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.