« Volver al listado

CVE-2023-54152

Estado: AplazadaSin puntuar—

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

can: j1939: prevent deadlock by moving j1939_sk_errqueue()

This commit addresses a deadlock situation that can occur in certain scenarios, such as when running data TP/ETP transfer and subscribing to the error queue while receiving a net down event. The deadlock involves locks in the following order:

The solution implemented in this commit is to move the j1939_sk_errqueue() call out of the active_session_list_lock context, thus preventing the deadlock situation.

Detalles técnicos trazas, registros y código del informe original
3
  j1939_session_list_lock ->  active_session_list_lock
  j1939_session_activate
  ...
  j1939_sk_queue_activate_next -> sk_session_queue_lock
  ...
  j1939_xtp_rx_eoma_one

2
  j1939_sk_queue_drop_all  ->  sk_session_queue_lock
  ...
  j1939_sk_netdev_event_netdown -> j1939_socks_lock
  j1939_netdev_notify

1
  j1939_sk_errqueue -> j1939_socks_lock
  __j1939_session_cancel -> active_session_list_lock
  j1939_tp_rxtimer

       CPU0                    CPU1
       ----                    ----
  lock(&priv->active_session_list_lock);
                               lock(&jsk->sk_session_queue_lock);
                               lock(&priv->active_session_list_lock);
  lock(&priv->j1939_socks_lock);

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2023-54152",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5b9272e93f2efe3f6cda60cc2c26817b2ce49386",
              "lessThan": "8a581b71cf686b4cd1a85c9c2dfc2fb88382c3b4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5b9272e93f2efe3f6cda60cc2c26817b2ce49386",
              "lessThan": "ace6aa2ab5ba5869563ca689bbd912100514ae7b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5b9272e93f2efe3f6cda60cc2c26817b2ce49386",
              "lessThan": "f09ce9d765de1f064ce3919f57c6beb061744784",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5b9272e93f2efe3f6cda60cc2c26817b2ce49386",
              "lessThan": "d1366b283d94ac4537a4b3a1e8668da4df7ce7e9",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "net/can/j1939/transport.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.15"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.15",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.15.106",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.23",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.2.10",
              "versionType": "semver",
              "lessThanOrEqual": "6.2.*"
            },
            {
              "status": "unaffected",
              "version": "6.3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "net/can/j1939/transport.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2025-12-24T13:16:17.207",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/8a581b71cf686b4cd1a85c9c2dfc2fb88382c3b4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ace6aa2ab5ba5869563ca689bbd912100514ae7b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/d1366b283d94ac4537a4b3a1e8668da4df7ce7e9",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f09ce9d765de1f064ce3919f57c6beb061744784",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Deferred",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: j1939: prevent deadlock by moving j1939_sk_errqueue()\n\nThis commit addresses a deadlock situation that can occur in certain\nscenarios, such as when running data TP/ETP transfer and subscribing to\nthe error queue while receiving a net down event. The deadlock involves\nlocks in the following order:\n\n3\n  j1939_session_list_lock ->  active_session_list_lock\n  j1939_session_activate\n  ...\n  j1939_sk_queue_activate_next -> sk_session_queue_lock\n  ...\n  j1939_xtp_rx_eoma_one\n\n2\n  j1939_sk_queue_drop_all  ->  sk_session_queue_lock\n  ...\n  j1939_sk_netdev_event_netdown -> j1939_socks_lock\n  j1939_netdev_notify\n\n1\n  j1939_sk_errqueue -> j1939_socks_lock\n  __j1939_session_cancel -> active_session_list_lock\n  j1939_tp_rxtimer\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(&priv->active_session_list_lock);\n                               lock(&jsk->sk_session_queue_lock);\n                               lock(&priv->active_session_list_lock);\n  lock(&priv->j1939_socks_lock);\n\nThe solution implemented in this commit is to move the\nj1939_sk_errqueue() call out of the active_session_list_lock context,\nthus preventing the deadlock situation."
    }
  ],
  "lastModified": "2026-06-17T06:46:53.800",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}