Lucene search

K
cve416baaa9-dc9f-4396-8d5f-8c081fb06d67CVE-2021-47459
HistoryMay 22, 2024 - 7:15 a.m.

CVE-2021-47459

2024-05-2207:15:10
416baaa9-dc9f-4396-8d5f-8c081fb06d67
web.nvd.nist.gov
31
linux kernel
uaf vulnerability
j1939_netdev_start
j1939_priv
refcount_t

6.8 Medium

AI Score

Confidence

Low

0.0004 Low

EPSS

Percentile

15.7%

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

can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv

It will trigger UAF for rx_kref of j1939_priv as following.

    cpu0                                    cpu1

j1939_sk_bind(socket0, ndev0, …)
j1939_netdev_start
j1939_sk_bind(socket1, ndev0, …)
j1939_netdev_start
j1939_priv_set
j1939_priv_get_by_ndev_locked
j1939_jsk_add

j1939_netdev_stop
kref_put_lock(&priv->rx_kref, …)
kref_get(&priv->rx_kref, …)
REFCOUNT_WARN(“addition on 0;…”)

====================================================
refcount_t: addition on 0; use-after-free.
WARNING: CPU: 1 PID: 20874 at lib/refcount.c:25 refcount_warn_saturate+0x169/0x1e0
RIP: 0010:refcount_warn_saturate+0x169/0x1e0
Call Trace:
j1939_netdev_start+0x68b/0x920
j1939_sk_bind+0x426/0xeb0
? security_socket_bind+0x83/0xb0

The rx_kref’s kref_get() and kref_put() should use j1939_netdev_lock to
protect.

Affected configurations

Vulners
Node
linuxlinux_kernelRange5.45.4.156
OR
linuxlinux_kernelRange5.5.05.10.76
OR
linuxlinux_kernelRange5.11.05.14.15
OR
linuxlinux_kernelRange5.15.0

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/can/j1939/main.c"
    ],
    "versions": [
      {
        "version": "9d71dd0c7009",
        "lessThan": "a0e47d2833b4",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "9d71dd0c7009",
        "lessThan": "864e77771a24",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "9d71dd0c7009",
        "lessThan": "6e8811707e2d",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "9d71dd0c7009",
        "lessThan": "d9d52a3ebd28",
        "status": "affected",
        "versionType": "git"
      }
    ]
  },
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "affected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "net/can/j1939/main.c"
    ],
    "versions": [
      {
        "version": "5.4",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "5.4",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.4.156",
        "lessThanOrEqual": "5.4.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.10.76",
        "lessThanOrEqual": "5.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.14.15",
        "lessThanOrEqual": "5.14.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]

6.8 Medium

AI Score

Confidence

Low

0.0004 Low

EPSS

Percentile

15.7%