{
   "containers": {
      "cna": {
         "providerMetadata": {
            "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038"
         },
         "descriptions": [
            {
               "lang": "en",
               "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_net: Fix napi_skb_cache_put warning\n\nAfter the commit bdacf3e34945 (\"net: Use nested-BH locking for\nnapi_alloc_cache.\") was merged, the following warning began to appear:\n\n\t WARNING: CPU: 5 PID: 1 at net/core/skbuff.c:1451 napi_skb_cache_put+0x82/0x4b0\n\n\t  __warn+0x12f/0x340\n\t  napi_skb_cache_put+0x82/0x4b0\n\t  napi_skb_cache_put+0x82/0x4b0\n\t  report_bug+0x165/0x370\n\t  handle_bug+0x3d/0x80\n\t  exc_invalid_op+0x1a/0x50\n\t  asm_exc_invalid_op+0x1a/0x20\n\t  __free_old_xmit+0x1c8/0x510\n\t  napi_skb_cache_put+0x82/0x4b0\n\t  __free_old_xmit+0x1c8/0x510\n\t  __free_old_xmit+0x1c8/0x510\n\t  __pfx___free_old_xmit+0x10/0x10\n\nThe issue arises because virtio is assuming it's running in NAPI context\neven when it's not, such as in the netpoll case.\n\nTo resolve this, modify virtnet_poll_tx() to only set NAPI when budget\nis available. Same for virtnet_poll_cleantx(), which always assumed that\nit was in a NAPI context."
            }
         ],
         "affected": [
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "unaffected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/net/virtio_net.c"
               ],
               "versions": [
                  {
                     "version": "df133f3f9625",
                     "lessThan": "19ac6f29bf64",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "d3af435e8ace",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "842a97b5e44f",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "cc7340f18e45",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "6b5325f24575",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "f5e9a22d19bb",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "468a729b7889",
                     "status": "affected",
                     "versionType": "git"
                  },
                  {
                     "version": "df133f3f9625",
                     "lessThan": "f8321fa75102",
                     "status": "affected",
                     "versionType": "git"
                  }
               ]
            },
            {
               "product": "Linux",
               "vendor": "Linux",
               "defaultStatus": "affected",
               "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               "programFiles": [
                  "drivers/net/virtio_net.c"
               ],
               "versions": [
                  {
                     "version": "5.0",
                     "status": "affected"
                  },
                  {
                     "version": "0",
                     "lessThan": "5.0",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "4.19.322",
                     "lessThanOrEqual": "4.19.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.4.284",
                     "lessThanOrEqual": "5.4.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.10.226",
                     "lessThanOrEqual": "5.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "5.15.167",
                     "lessThanOrEqual": "5.15.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.1.109",
                     "lessThanOrEqual": "6.1.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.6.50",
                     "lessThanOrEqual": "6.6.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.10.3",
                     "lessThanOrEqual": "6.10.*",
                     "status": "unaffected",
                     "versionType": "custom"
                  },
                  {
                     "version": "6.11",
                     "lessThanOrEqual": "*",
                     "status": "unaffected",
                     "versionType": "original_commit_for_fix"
                  }
               ]
            }
         ],
         "references": [
            {
               "url": "https://git.kernel.org/stable/c/19ac6f29bf64304ef04630c8ab56ecd2059d7aa1"
            },
            {
               "url": "https://git.kernel.org/stable/c/d3af435e8ace119e58d8e21d3d2d6a4e7c4a4baa"
            },
            {
               "url": "https://git.kernel.org/stable/c/842a97b5e44f0c8a9fc356fe976e0e13ddcf7783"
            },
            {
               "url": "https://git.kernel.org/stable/c/cc7340f18e45886121c131227985d64ef666012f"
            },
            {
               "url": "https://git.kernel.org/stable/c/6b5325f2457521bbece29499970c0117a648c620"
            },
            {
               "url": "https://git.kernel.org/stable/c/f5e9a22d19bb98a7e86034db85eb295e94187caa"
            },
            {
               "url": "https://git.kernel.org/stable/c/468a729b78895893d0e580ceea49bed8ada2a2bd"
            },
            {
               "url": "https://git.kernel.org/stable/c/f8321fa75102246d7415a6af441872f6637c93ab"
            }
         ],
         "title": "virtio_net: Fix napi_skb_cache_put warning",
         "x_generator": {
            "engine": "bippy-c9c4e1df01b2"
         }
      }
   },
   "cveMetadata": {
      "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038",
      "cveID": "CVE-2024-43835",
      "requesterUserId": "gregkh@kernel.org",
      "serial": "1",
      "state": "PUBLISHED"
   },
   "dataType": "CVE_RECORD",
   "dataVersion": "5.0"
}
