GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2024-26698 (GCVE-0-2024-26698)

Vulnerability from cvelistv5 – Published: 2024-04-03 14:54 – Updated: 2026-05-11 20:02
VLAI
Title
hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove
Summary
In the Linux kernel, the following vulnerability has been resolved: hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove In commit ac5047671758 ("hv_netvsc: Disable NAPI before closing the VMBus channel"), napi_disable was getting called for all channels, including all subchannels without confirming if they are enabled or not. This caused hv_netvsc getting hung at napi_disable, when netvsc_probe() has finished running but nvdev->subchan_work has not started yet. netvsc_subchan_work() -> rndis_set_subchannel() has not created the sub-channels and because of that netvsc_sc_open() is not running. netvsc_remove() calls cancel_work_sync(&nvdev->subchan_work), for which netvsc_subchan_work did not run. netif_napi_add() sets the bit NAPI_STATE_SCHED because it ensures NAPI cannot be scheduled. Then netvsc_sc_open() -> napi_enable will clear the NAPIF_STATE_SCHED bit, so it can be scheduled. napi_disable() does the opposite. Now during netvsc_device_remove(), when napi_disable is called for those subchannels, napi_disable gets stuck on infinite msleep. This fix addresses this problem by ensuring that napi_disable() is not getting called for non-enabled NAPI struct. But netif_napi_del() is still necessary for these non-enabled NAPI struct for cleanup purpose. Call trace: [ 654.559417] task:modprobe state:D stack: 0 pid: 2321 ppid: 1091 flags:0x00004002 [ 654.568030] Call Trace: [ 654.571221] <TASK> [ 654.573790] __schedule+0x2d6/0x960 [ 654.577733] schedule+0x69/0xf0 [ 654.581214] schedule_timeout+0x87/0x140 [ 654.585463] ? __bpf_trace_tick_stop+0x20/0x20 [ 654.590291] msleep+0x2d/0x40 [ 654.593625] napi_disable+0x2b/0x80 [ 654.597437] netvsc_device_remove+0x8a/0x1f0 [hv_netvsc] [ 654.603935] rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc] [ 654.611101] ? do_wait_intr+0xb0/0xb0 [ 654.615753] netvsc_remove+0x7c/0x120 [hv_netvsc] [ 654.621675] vmbus_remove+0x27/0x40 [hv_vmbus]
Severity
No CVSS data available.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-04-03 18:03 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < 9ec807e7b6f5fcf9499f3baa69f254bb239a847f (git)
Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < 7656372ae190e54e8c8cf1039725a5ea59fdf84a (git)
Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < 48a8ccccffbae10c91d31fc872db5c31aba07518 (git)
Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < 22a77c0f5b8233237731df3288d067af51a2fd7b (git)
Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < 0e8875de9dad12805ff66e92cd5edea6a421f1cd (git)
Affected: ac5047671758ad4be9f93898247b3a8b6dfde4c7 , < e0526ec5360a48ad3ab2e26e802b0532302a7e11 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.8
Unaffected: 0 , < 5.8 (semver)
Unaffected: 5.10.210 , ≤ 5.10.* (semver)
Unaffected: 5.15.149 , ≤ 5.15.* (semver)
Unaffected: 6.1.79 , ≤ 6.1.* (semver)
Unaffected: 6.6.18 , ≤ 6.6.* (semver)
Unaffected: 6.7.6 , ≤ 6.7.* (semver)
Unaffected: 6.8 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26698",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-04-03T18:03:45.740958Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:49:08.824Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:14:12.951Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/hyperv/netvsc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9ec807e7b6f5fcf9499f3baa69f254bb239a847f",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            },
            {
              "lessThan": "7656372ae190e54e8c8cf1039725a5ea59fdf84a",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            },
            {
              "lessThan": "48a8ccccffbae10c91d31fc872db5c31aba07518",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            },
            {
              "lessThan": "22a77c0f5b8233237731df3288d067af51a2fd7b",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            },
            {
              "lessThan": "0e8875de9dad12805ff66e92cd5edea6a421f1cd",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            },
            {
              "lessThan": "e0526ec5360a48ad3ab2e26e802b0532302a7e11",
              "status": "affected",
              "version": "ac5047671758ad4be9f93898247b3a8b6dfde4c7",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/hyperv/netvsc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.8"
            },
            {
              "lessThan": "5.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.210",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.149",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.79",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.210",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.149",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.79",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.18",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7.6",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8",
                  "versionStartIncluding": "5.8",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhv_netvsc: Fix race condition between netvsc_probe and netvsc_remove\n\nIn commit ac5047671758 (\"hv_netvsc: Disable NAPI before closing the\nVMBus channel\"), napi_disable was getting called for all channels,\nincluding all subchannels without confirming if they are enabled or not.\n\nThis caused hv_netvsc getting hung at napi_disable, when netvsc_probe()\nhas finished running but nvdev-\u003esubchan_work has not started yet.\nnetvsc_subchan_work() -\u003e rndis_set_subchannel() has not created the\nsub-channels and because of that netvsc_sc_open() is not running.\nnetvsc_remove() calls cancel_work_sync(\u0026nvdev-\u003esubchan_work), for which\nnetvsc_subchan_work did not run.\n\nnetif_napi_add() sets the bit NAPI_STATE_SCHED because it ensures NAPI\ncannot be scheduled. Then netvsc_sc_open() -\u003e napi_enable will clear the\nNAPIF_STATE_SCHED bit, so it can be scheduled. napi_disable() does the\nopposite.\n\nNow during netvsc_device_remove(), when napi_disable is called for those\nsubchannels, napi_disable gets stuck on infinite msleep.\n\nThis fix addresses this problem by ensuring that napi_disable() is not\ngetting called for non-enabled NAPI struct.\nBut netif_napi_del() is still necessary for these non-enabled NAPI struct\nfor cleanup purpose.\n\nCall trace:\n[  654.559417] task:modprobe        state:D stack:    0 pid: 2321 ppid:  1091 flags:0x00004002\n[  654.568030] Call Trace:\n[  654.571221]  \u003cTASK\u003e\n[  654.573790]  __schedule+0x2d6/0x960\n[  654.577733]  schedule+0x69/0xf0\n[  654.581214]  schedule_timeout+0x87/0x140\n[  654.585463]  ? __bpf_trace_tick_stop+0x20/0x20\n[  654.590291]  msleep+0x2d/0x40\n[  654.593625]  napi_disable+0x2b/0x80\n[  654.597437]  netvsc_device_remove+0x8a/0x1f0 [hv_netvsc]\n[  654.603935]  rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc]\n[  654.611101]  ? do_wait_intr+0xb0/0xb0\n[  654.615753]  netvsc_remove+0x7c/0x120 [hv_netvsc]\n[  654.621675]  vmbus_remove+0x27/0x40 [hv_vmbus]"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T20:02:28.322Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f"
        },
        {
          "url": "https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a"
        },
        {
          "url": "https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518"
        },
        {
          "url": "https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b"
        },
        {
          "url": "https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11"
        }
      ],
      "title": "hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26698",
    "datePublished": "2024-04-03T14:54:58.577Z",
    "dateReserved": "2024-02-19T14:20:24.157Z",
    "dateUpdated": "2026-05-11T20:02:28.322Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-26698",
      "date": "2026-09-16",
      "epss": "0.00183",
      "percentile": "0.08078"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nhv_netvsc: Fix race condition between netvsc_probe and netvsc_remove\\n\\nIn commit ac5047671758 (\\\"hv_netvsc: Disable NAPI before closing the\\nVMBus channel\\\"), napi_disable was getting called for all channels,\\nincluding all subchannels without confirming if they are enabled or not.\\n\\nThis caused hv_netvsc getting hung at napi_disable, when netvsc_probe()\\nhas finished running but nvdev-\u003esubchan_work has not started yet.\\nnetvsc_subchan_work() -\u003e rndis_set_subchannel() has not created the\\nsub-channels and because of that netvsc_sc_open() is not running.\\nnetvsc_remove() calls cancel_work_sync(\u0026nvdev-\u003esubchan_work), for which\\nnetvsc_subchan_work did not run.\\n\\nnetif_napi_add() sets the bit NAPI_STATE_SCHED because it ensures NAPI\\ncannot be scheduled. Then netvsc_sc_open() -\u003e napi_enable will clear the\\nNAPIF_STATE_SCHED bit, so it can be scheduled. napi_disable() does the\\nopposite.\\n\\nNow during netvsc_device_remove(), when napi_disable is called for those\\nsubchannels, napi_disable gets stuck on infinite msleep.\\n\\nThis fix addresses this problem by ensuring that napi_disable() is not\\ngetting called for non-enabled NAPI struct.\\nBut netif_napi_del() is still necessary for these non-enabled NAPI struct\\nfor cleanup purpose.\\n\\nCall trace:\\n[  654.559417] task:modprobe        state:D stack:    0 pid: 2321 ppid:  1091 flags:0x00004002\\n[  654.568030] Call Trace:\\n[  654.571221]  \u003cTASK\u003e\\n[  654.573790]  __schedule+0x2d6/0x960\\n[  654.577733]  schedule+0x69/0xf0\\n[  654.581214]  schedule_timeout+0x87/0x140\\n[  654.585463]  ? __bpf_trace_tick_stop+0x20/0x20\\n[  654.590291]  msleep+0x2d/0x40\\n[  654.593625]  napi_disable+0x2b/0x80\\n[  654.597437]  netvsc_device_remove+0x8a/0x1f0 [hv_netvsc]\\n[  654.603935]  rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc]\\n[  654.611101]  ? do_wait_intr+0xb0/0xb0\\n[  654.615753]  netvsc_remove+0x7c/0x120 [hv_netvsc]\\n[  654.621675]  vmbus_remove+0x27/0x40 [hv_vmbus]\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se resolvi\\u00f3 la siguiente vulnerabilidad: hv_netvsc: corrige la condici\\u00f3n de ejecuci\\u00f3n entre netvsc_probe y netvsc_remove En el commit ac5047671758 (\\\"hv_netvsc: deshabilite NAPI antes de cerrar el canal VMBus\\\"), se llamaba a napi_disable para todos los canales, incluidos todos los subcanales sin confirmando si est\\u00e1n habilitados o no. Esto provoc\\u00f3 que hv_netvsc se colgara en napi_disable, cuando netvsc_probe() termin\\u00f3 de ejecutarse pero nvdev-\u0026gt;subchan_work a\\u00fan no se inici\\u00f3. netvsc_subchan_work() -\u0026gt; rndis_set_subchannel() no ha creado los subcanales y por eso netvsc_sc_open() no se est\\u00e1 ejecutando. netvsc_remove() llama a cancel_work_sync(\u0026amp;nvdev-\u0026gt;subchan_work), para lo cual netvsc_subchan_work no se ejecut\\u00f3. netif_napi_add() establece el bit NAPI_STATE_SCHED porque garantiza que NAPI no se pueda programar. Luego netvsc_sc_open() -\u0026gt; napi_enable borrar\\u00e1 el bit NAPIF_STATE_SCHED, para que pueda programarse. napi_disable() hace lo contrario. Ahora, durante netvsc_device_remove(), cuando se llama a napi_disable para esos subcanales, napi_disable se atasca en msleep infinito. Esta soluci\\u00f3n soluciona este problema garantizando que no se llame a napi_disable() para una estructura NAPI no habilitada. Pero netif_napi_del() sigue siendo necesario para estas estructuras NAPI no habilitadas con fines de limpieza. Rastreo de llamadas: [654.559417] tarea:modprobe estado:D pila: 0 pid: 2321 ppid: 1091 banderas:0x00004002 [654.568030] Rastreo de llamadas: [654.571221]  [654.573790] __schedule+0x2d6/0x960 [ 65 4.577733] horario+0x69 /0xf0 [654.581214] Schedule_timeout+0x87/0x140 [654.585463]? __bpf_trace_tick_stop+0x20/0x20 [ 654.590291] msleep+0x2d/0x40 [ 654.593625] napi_disable+0x2b/0x80 [ 654.597437] netvsc_device_remove+0x8a/0x1f0 [hv_netvsc] [ 6 54.603935] rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc] [654.611101]? do_wait_intr+0xb0/0xb0 [ 654.615753] netvsc_remove+0x7c/0x120 [hv_netvsc] [ 654.621675] vmbus_remove+0x27/0x40 [hv_vmbus]\"}]",
      "id": "CVE-2024-26698",
      "lastModified": "2024-11-21T09:02:52.217",
      "published": "2024-04-03T15:15:52.933",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-26698\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-04-03T15:15:52.933\",\"lastModified\":\"2026-06-17T07:18:07.517\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nhv_netvsc: Fix race condition between netvsc_probe and netvsc_remove\\n\\nIn commit ac5047671758 (\\\"hv_netvsc: Disable NAPI before closing the\\nVMBus channel\\\"), napi_disable was getting called for all channels,\\nincluding all subchannels without confirming if they are enabled or not.\\n\\nThis caused hv_netvsc getting hung at napi_disable, when netvsc_probe()\\nhas finished running but nvdev-\u003esubchan_work has not started yet.\\nnetvsc_subchan_work() -\u003e rndis_set_subchannel() has not created the\\nsub-channels and because of that netvsc_sc_open() is not running.\\nnetvsc_remove() calls cancel_work_sync(\u0026nvdev-\u003esubchan_work), for which\\nnetvsc_subchan_work did not run.\\n\\nnetif_napi_add() sets the bit NAPI_STATE_SCHED because it ensures NAPI\\ncannot be scheduled. Then netvsc_sc_open() -\u003e napi_enable will clear the\\nNAPIF_STATE_SCHED bit, so it can be scheduled. napi_disable() does the\\nopposite.\\n\\nNow during netvsc_device_remove(), when napi_disable is called for those\\nsubchannels, napi_disable gets stuck on infinite msleep.\\n\\nThis fix addresses this problem by ensuring that napi_disable() is not\\ngetting called for non-enabled NAPI struct.\\nBut netif_napi_del() is still necessary for these non-enabled NAPI struct\\nfor cleanup purpose.\\n\\nCall trace:\\n[  654.559417] task:modprobe        state:D stack:    0 pid: 2321 ppid:  1091 flags:0x00004002\\n[  654.568030] Call Trace:\\n[  654.571221]  \u003cTASK\u003e\\n[  654.573790]  __schedule+0x2d6/0x960\\n[  654.577733]  schedule+0x69/0xf0\\n[  654.581214]  schedule_timeout+0x87/0x140\\n[  654.585463]  ? __bpf_trace_tick_stop+0x20/0x20\\n[  654.590291]  msleep+0x2d/0x40\\n[  654.593625]  napi_disable+0x2b/0x80\\n[  654.597437]  netvsc_device_remove+0x8a/0x1f0 [hv_netvsc]\\n[  654.603935]  rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc]\\n[  654.611101]  ? do_wait_intr+0xb0/0xb0\\n[  654.615753]  netvsc_remove+0x7c/0x120 [hv_netvsc]\\n[  654.621675]  vmbus_remove+0x27/0x40 [hv_vmbus]\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: hv_netvsc: corrige la condici\u00f3n de ejecuci\u00f3n entre netvsc_probe y netvsc_remove En el commit ac5047671758 (\\\"hv_netvsc: deshabilite NAPI antes de cerrar el canal VMBus\\\"), se llamaba a napi_disable para todos los canales, incluidos todos los subcanales sin confirmando si est\u00e1n habilitados o no. Esto provoc\u00f3 que hv_netvsc se colgara en napi_disable, cuando netvsc_probe() termin\u00f3 de ejecutarse pero nvdev-\u0026gt;subchan_work a\u00fan no se inici\u00f3. netvsc_subchan_work() -\u0026gt; rndis_set_subchannel() no ha creado los subcanales y por eso netvsc_sc_open() no se est\u00e1 ejecutando. netvsc_remove() llama a cancel_work_sync(\u0026amp;nvdev-\u0026gt;subchan_work), para lo cual netvsc_subchan_work no se ejecut\u00f3. netif_napi_add() establece el bit NAPI_STATE_SCHED porque garantiza que NAPI no se pueda programar. Luego netvsc_sc_open() -\u0026gt; napi_enable borrar\u00e1 el bit NAPIF_STATE_SCHED, para que pueda programarse. napi_disable() hace lo contrario. Ahora, durante netvsc_device_remove(), cuando se llama a napi_disable para esos subcanales, napi_disable se atasca en msleep infinito. Esta soluci\u00f3n soluciona este problema garantizando que no se llame a napi_disable() para una estructura NAPI no habilitada. Pero netif_napi_del() sigue siendo necesario para estas estructuras NAPI no habilitadas con fines de limpieza. Rastreo de llamadas: [654.559417] tarea:modprobe estado:D pila: 0 pid: 2321 ppid: 1091 banderas:0x00004002 [654.568030] Rastreo de llamadas: [654.571221]  [654.573790] __schedule+0x2d6/0x960 [ 65 4.577733] horario+0x69 /0xf0 [654.581214] Schedule_timeout+0x87/0x140 [654.585463]? __bpf_trace_tick_stop+0x20/0x20 [ 654.590291] msleep+0x2d/0x40 [ 654.593625] napi_disable+0x2b/0x80 [ 654.597437] netvsc_device_remove+0x8a/0x1f0 [hv_netvsc] [ 6 54.603935] rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc] [654.611101]? do_wait_intr+0xb0/0xb0 [ 654.615753] netvsc_remove+0x7c/0x120 [hv_netvsc] [ 654.621675] vmbus_remove+0x27/0x40 [hv_vmbus]\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/hyperv/netvsc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"9ec807e7b6f5fcf9499f3baa69f254bb239a847f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"7656372ae190e54e8c8cf1039725a5ea59fdf84a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"48a8ccccffbae10c91d31fc872db5c31aba07518\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"22a77c0f5b8233237731df3288d067af51a2fd7b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"0e8875de9dad12805ff66e92cd5edea6a421f1cd\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ac5047671758ad4be9f93898247b3a8b6dfde4c7\",\"lessThan\":\"e0526ec5360a48ad3ab2e26e802b0532302a7e11\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/hyperv/netvsc.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.8\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.8\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.210\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.149\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.79\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.18\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.7.6\",\"lessThanOrEqual\":\"6.7.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.8\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":4.7,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.0,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-04-03T18:03:45.740958Z\",\"id\":\"CVE-2024-26698\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-362\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.8\",\"versionEndExcluding\":\"5.10.210\",\"matchCriteriaId\":\"9487D7F4-8434-4668-8C1F-256A25094E23\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.149\",\"matchCriteriaId\":\"0D0465BB-4053-4E15-9137-6696EBAE90FD\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.79\",\"matchCriteriaId\":\"656E2F29-1779-4EFC-AA64-8F984E2885B1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.18\",\"matchCriteriaId\":\"BD961E49-FEDA-47CF-BF23-4D2BD942B4E0\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.7.6\",\"matchCriteriaId\":\"C6D6A5C8-7308-42A9-8A72-ABF3DEA4BB82\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"B9F4EA73-0894-400F-A490-3A397AB7A517\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"056BD938-0A27-4569-B391-30578B309EE3\"}]}]},{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"07B237A9-69A3-4A9C-9DA0-4E06BD37AE73\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Mailing List\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2025-11-21T13:42:14+00:00",
      "cve": "CVE-2024-26698",
      "id": "CVE-2024-26698",
      "initial_release_date": "2024-04-03T00:00:00+00:00",
      "product_status:fixed": "989",
      "product_status:known_affected": "166",
      "product_status:known_not_affected": "74",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-26698.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-02T01:34:36Z",
      "cve": "CVE-2024-26698",
      "id": "CVE-2024-26698",
      "initial_release_date": "2024-04-06T01:59:13Z",
      "product_status:known_affected": "368",
      "product_status:known_not_affected": "282",
      "product_status:recommended": "535",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-26698",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-26698.json",
      "version": "59"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T00:14:12.951Z\"}}, {\"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-26698\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-04-03T18:03:45.740958Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-05-23T19:01:21.706Z\"}, \"title\": \"CISA ADP Vulnrichment\"}], \"cna\": {\"title\": \"hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"9ec807e7b6f5fcf9499f3baa69f254bb239a847f\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"7656372ae190e54e8c8cf1039725a5ea59fdf84a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"48a8ccccffbae10c91d31fc872db5c31aba07518\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"22a77c0f5b8233237731df3288d067af51a2fd7b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"0e8875de9dad12805ff66e92cd5edea6a421f1cd\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ac5047671758ad4be9f93898247b3a8b6dfde4c7\", \"lessThan\": \"e0526ec5360a48ad3ab2e26e802b0532302a7e11\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/hyperv/netvsc.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.8\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.8\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.10.210\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.149\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.79\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.18\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.7.6\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/hyperv/netvsc.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/9ec807e7b6f5fcf9499f3baa69f254bb239a847f\"}, {\"url\": \"https://git.kernel.org/stable/c/7656372ae190e54e8c8cf1039725a5ea59fdf84a\"}, {\"url\": \"https://git.kernel.org/stable/c/48a8ccccffbae10c91d31fc872db5c31aba07518\"}, {\"url\": \"https://git.kernel.org/stable/c/22a77c0f5b8233237731df3288d067af51a2fd7b\"}, {\"url\": \"https://git.kernel.org/stable/c/0e8875de9dad12805ff66e92cd5edea6a421f1cd\"}, {\"url\": \"https://git.kernel.org/stable/c/e0526ec5360a48ad3ab2e26e802b0532302a7e11\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nhv_netvsc: Fix race condition between netvsc_probe and netvsc_remove\\n\\nIn commit ac5047671758 (\\\"hv_netvsc: Disable NAPI before closing the\\nVMBus channel\\\"), napi_disable was getting called for all channels,\\nincluding all subchannels without confirming if they are enabled or not.\\n\\nThis caused hv_netvsc getting hung at napi_disable, when netvsc_probe()\\nhas finished running but nvdev-\u003esubchan_work has not started yet.\\nnetvsc_subchan_work() -\u003e rndis_set_subchannel() has not created the\\nsub-channels and because of that netvsc_sc_open() is not running.\\nnetvsc_remove() calls cancel_work_sync(\u0026nvdev-\u003esubchan_work), for which\\nnetvsc_subchan_work did not run.\\n\\nnetif_napi_add() sets the bit NAPI_STATE_SCHED because it ensures NAPI\\ncannot be scheduled. Then netvsc_sc_open() -\u003e napi_enable will clear the\\nNAPIF_STATE_SCHED bit, so it can be scheduled. napi_disable() does the\\nopposite.\\n\\nNow during netvsc_device_remove(), when napi_disable is called for those\\nsubchannels, napi_disable gets stuck on infinite msleep.\\n\\nThis fix addresses this problem by ensuring that napi_disable() is not\\ngetting called for non-enabled NAPI struct.\\nBut netif_napi_del() is still necessary for these non-enabled NAPI struct\\nfor cleanup purpose.\\n\\nCall trace:\\n[  654.559417] task:modprobe        state:D stack:    0 pid: 2321 ppid:  1091 flags:0x00004002\\n[  654.568030] Call Trace:\\n[  654.571221]  \u003cTASK\u003e\\n[  654.573790]  __schedule+0x2d6/0x960\\n[  654.577733]  schedule+0x69/0xf0\\n[  654.581214]  schedule_timeout+0x87/0x140\\n[  654.585463]  ? __bpf_trace_tick_stop+0x20/0x20\\n[  654.590291]  msleep+0x2d/0x40\\n[  654.593625]  napi_disable+0x2b/0x80\\n[  654.597437]  netvsc_device_remove+0x8a/0x1f0 [hv_netvsc]\\n[  654.603935]  rndis_filter_device_remove+0x194/0x1c0 [hv_netvsc]\\n[  654.611101]  ? do_wait_intr+0xb0/0xb0\\n[  654.615753]  netvsc_remove+0x7c/0x120 [hv_netvsc]\\n[  654.621675]  vmbus_remove+0x27/0x40 [hv_vmbus]\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.210\", \"versionStartIncluding\": \"5.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.149\", \"versionStartIncluding\": \"5.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.79\", \"versionStartIncluding\": \"5.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.18\", \"versionStartIncluding\": \"5.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7.6\", \"versionStartIncluding\": \"5.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8\", \"versionStartIncluding\": \"5.8\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-05-11T20:02:28.322Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-26698\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-05-11T20:02:28.322Z\", \"dateReserved\": \"2024-02-19T14:20:24.157Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-04-03T14:54:58.577Z\", \"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…

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.

Loading…

Detection rules are retrieved from Rulezet.

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.


Loading…