Lucene search

K
cvelistLinuxCVELIST:CVE-2024-43835
HistoryAug 17, 2024 - 9:21 a.m.

CVE-2024-43835 virtio_net: Fix napi_skb_cache_put warning

2024-08-1709:21:52
Linux
www.cve.org
1
virtio_net
fix napi_skb_cache_put
linux kernel
vulnerability
commit bdacf3e34945
warning
cpu
pid
net/core/skbuff.c
napi_skb_cache_put
report_bug
handle_bug
exc_invalid_op
asm_exc_invalid_op
__free_old_xmit
netpoll
virtnet_poll_tx
virtnet_poll_cleantx
napi context
cve-2024-43835

EPSS

0

Percentile

13.8%

In the Linux kernel, the following vulnerability has been resolved:

virtio_net: Fix napi_skb_cache_put warning

After the commit bdacf3e34945 (“net: Use nested-BH locking for
napi_alloc_cache.”) was merged, the following warning began to appear:

 WARNING: CPU: 5 PID: 1 at net/core/skbuff.c:1451 napi_skb_cache_put+0x82/0x4b0

  __warn+0x12f/0x340
  napi_skb_cache_put+0x82/0x4b0
  napi_skb_cache_put+0x82/0x4b0
  report_bug+0x165/0x370
  handle_bug+0x3d/0x80
  exc_invalid_op+0x1a/0x50
  asm_exc_invalid_op+0x1a/0x20
  __free_old_xmit+0x1c8/0x510
  napi_skb_cache_put+0x82/0x4b0
  __free_old_xmit+0x1c8/0x510
  __free_old_xmit+0x1c8/0x510
  __pfx___free_old_xmit+0x10/0x10

The issue arises because virtio is assuming it’s running in NAPI context
even when it’s not, such as in the netpoll case.

To resolve this, modify virtnet_poll_tx() to only set NAPI when budget
is available. Same for virtnet_poll_cleantx(), which always assumed that
it was in a NAPI context.

CNA 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"
      }
    ]
  }
]

EPSS

0

Percentile

13.8%