CVE-2023-53345 (GCVE-0-2023-53345)
Vulnerability from cvelistv5
Published
2025-09-17 14:56
Modified
2025-09-17 14:56
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix potential data race in rxrpc_wait_to_be_connected() Inside the loop in rxrpc_wait_to_be_connected() it checks call->error to see if it should exit the loop without first checking the call state. This is probably safe as if call->error is set, the call is dead anyway, but we should probably wait for the call state to have been set to completion first, lest it cause surprise on the way out. Fix this by only accessing call->error if the call is complete. We don't actually need to access the error inside the loop as we'll do that after. This caused the following report: BUG: KCSAN: data-race in rxrpc_send_data / rxrpc_set_call_completion write to 0xffff888159cf3c50 of 4 bytes by task 25673 on cpu 1: rxrpc_set_call_completion+0x71/0x1c0 net/rxrpc/call_state.c:22 rxrpc_send_data_packet+0xba9/0x1650 net/rxrpc/output.c:479 rxrpc_transmit_one+0x1e/0x130 net/rxrpc/output.c:714 rxrpc_decant_prepared_tx net/rxrpc/call_event.c:326 [inline] rxrpc_transmit_some_data+0x496/0x600 net/rxrpc/call_event.c:350 rxrpc_input_call_event+0x564/0x1220 net/rxrpc/call_event.c:464 rxrpc_io_thread+0x307/0x1d80 net/rxrpc/io_thread.c:461 kthread+0x1ac/0x1e0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308 read to 0xffff888159cf3c50 of 4 bytes by task 25672 on cpu 0: rxrpc_send_data+0x29e/0x1950 net/rxrpc/sendmsg.c:296 rxrpc_do_sendmsg+0xb7a/0xc20 net/rxrpc/sendmsg.c:726 rxrpc_sendmsg+0x413/0x520 net/rxrpc/af_rxrpc.c:565 sock_sendmsg_nosec net/socket.c:724 [inline] sock_sendmsg net/socket.c:747 [inline] ____sys_sendmsg+0x375/0x4c0 net/socket.c:2501 ___sys_sendmsg net/socket.c:2555 [inline] __sys_sendmmsg+0x263/0x500 net/socket.c:2641 __do_sys_sendmmsg net/socket.c:2670 [inline] __se_sys_sendmmsg net/socket.c:2667 [inline] __x64_sys_sendmmsg+0x57/0x60 net/socket.c:2667 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd value changed: 0x00000000 -> 0xffffffea
Impacted products
Vendor Product Version
Linux Linux Version: 9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d
Version: 9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d
Version: 9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/rxrpc/sendmsg.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3e8ba61a3fe4475a9b5c9fbfc664435c6795d872",
              "status": "affected",
              "version": "9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d",
              "versionType": "git"
            },
            {
              "lessThan": "454e48a9ff04c5fa1631bb172070fcb6389b97f9",
              "status": "affected",
              "version": "9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d",
              "versionType": "git"
            },
            {
              "lessThan": "2b5fdc0f5caa505afe34d608e2eefadadf2ee67a",
              "status": "affected",
              "version": "9d35d880e0e4a3ab32d8c12f9e4d76198aadd42d",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/rxrpc/sendmsg.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.2"
            },
            {
              "lessThan": "6.2",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.2.*",
              "status": "unaffected",
              "version": "6.2.16",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.4",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.2.16",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.3",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4",
                  "versionStartIncluding": "6.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrxrpc: Fix potential data race in rxrpc_wait_to_be_connected()\n\nInside the loop in rxrpc_wait_to_be_connected() it checks call-\u003eerror to\nsee if it should exit the loop without first checking the call state.  This\nis probably safe as if call-\u003eerror is set, the call is dead anyway, but we\nshould probably wait for the call state to have been set to completion\nfirst, lest it cause surprise on the way out.\n\nFix this by only accessing call-\u003eerror if the call is complete.  We don\u0027t\nactually need to access the error inside the loop as we\u0027ll do that after.\n\nThis caused the following report:\n\n    BUG: KCSAN: data-race in rxrpc_send_data / rxrpc_set_call_completion\n\n    write to 0xffff888159cf3c50 of 4 bytes by task 25673 on cpu 1:\n     rxrpc_set_call_completion+0x71/0x1c0 net/rxrpc/call_state.c:22\n     rxrpc_send_data_packet+0xba9/0x1650 net/rxrpc/output.c:479\n     rxrpc_transmit_one+0x1e/0x130 net/rxrpc/output.c:714\n     rxrpc_decant_prepared_tx net/rxrpc/call_event.c:326 [inline]\n     rxrpc_transmit_some_data+0x496/0x600 net/rxrpc/call_event.c:350\n     rxrpc_input_call_event+0x564/0x1220 net/rxrpc/call_event.c:464\n     rxrpc_io_thread+0x307/0x1d80 net/rxrpc/io_thread.c:461\n     kthread+0x1ac/0x1e0 kernel/kthread.c:376\n     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308\n\n    read to 0xffff888159cf3c50 of 4 bytes by task 25672 on cpu 0:\n     rxrpc_send_data+0x29e/0x1950 net/rxrpc/sendmsg.c:296\n     rxrpc_do_sendmsg+0xb7a/0xc20 net/rxrpc/sendmsg.c:726\n     rxrpc_sendmsg+0x413/0x520 net/rxrpc/af_rxrpc.c:565\n     sock_sendmsg_nosec net/socket.c:724 [inline]\n     sock_sendmsg net/socket.c:747 [inline]\n     ____sys_sendmsg+0x375/0x4c0 net/socket.c:2501\n     ___sys_sendmsg net/socket.c:2555 [inline]\n     __sys_sendmmsg+0x263/0x500 net/socket.c:2641\n     __do_sys_sendmmsg net/socket.c:2670 [inline]\n     __se_sys_sendmmsg net/socket.c:2667 [inline]\n     __x64_sys_sendmmsg+0x57/0x60 net/socket.c:2667\n     do_syscall_x64 arch/x86/entry/common.c:50 [inline]\n     do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80\n     entry_SYSCALL_64_after_hwframe+0x63/0xcd\n\n    value changed: 0x00000000 -\u003e 0xffffffea"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-09-17T14:56:37.707Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3e8ba61a3fe4475a9b5c9fbfc664435c6795d872"
        },
        {
          "url": "https://git.kernel.org/stable/c/454e48a9ff04c5fa1631bb172070fcb6389b97f9"
        },
        {
          "url": "https://git.kernel.org/stable/c/2b5fdc0f5caa505afe34d608e2eefadadf2ee67a"
        }
      ],
      "title": "rxrpc: Fix potential data race in rxrpc_wait_to_be_connected()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53345",
    "datePublished": "2025-09-17T14:56:37.707Z",
    "dateReserved": "2025-09-16T16:08:59.566Z",
    "dateUpdated": "2025-09-17T14:56:37.707Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-53345\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-09-17T15:15:38.363\",\"lastModified\":\"2025-09-18T13:43:34.310\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nrxrpc: Fix potential data race in rxrpc_wait_to_be_connected()\\n\\nInside the loop in rxrpc_wait_to_be_connected() it checks call-\u003eerror to\\nsee if it should exit the loop without first checking the call state.  This\\nis probably safe as if call-\u003eerror is set, the call is dead anyway, but we\\nshould probably wait for the call state to have been set to completion\\nfirst, lest it cause surprise on the way out.\\n\\nFix this by only accessing call-\u003eerror if the call is complete.  We don\u0027t\\nactually need to access the error inside the loop as we\u0027ll do that after.\\n\\nThis caused the following report:\\n\\n    BUG: KCSAN: data-race in rxrpc_send_data / rxrpc_set_call_completion\\n\\n    write to 0xffff888159cf3c50 of 4 bytes by task 25673 on cpu 1:\\n     rxrpc_set_call_completion+0x71/0x1c0 net/rxrpc/call_state.c:22\\n     rxrpc_send_data_packet+0xba9/0x1650 net/rxrpc/output.c:479\\n     rxrpc_transmit_one+0x1e/0x130 net/rxrpc/output.c:714\\n     rxrpc_decant_prepared_tx net/rxrpc/call_event.c:326 [inline]\\n     rxrpc_transmit_some_data+0x496/0x600 net/rxrpc/call_event.c:350\\n     rxrpc_input_call_event+0x564/0x1220 net/rxrpc/call_event.c:464\\n     rxrpc_io_thread+0x307/0x1d80 net/rxrpc/io_thread.c:461\\n     kthread+0x1ac/0x1e0 kernel/kthread.c:376\\n     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308\\n\\n    read to 0xffff888159cf3c50 of 4 bytes by task 25672 on cpu 0:\\n     rxrpc_send_data+0x29e/0x1950 net/rxrpc/sendmsg.c:296\\n     rxrpc_do_sendmsg+0xb7a/0xc20 net/rxrpc/sendmsg.c:726\\n     rxrpc_sendmsg+0x413/0x520 net/rxrpc/af_rxrpc.c:565\\n     sock_sendmsg_nosec net/socket.c:724 [inline]\\n     sock_sendmsg net/socket.c:747 [inline]\\n     ____sys_sendmsg+0x375/0x4c0 net/socket.c:2501\\n     ___sys_sendmsg net/socket.c:2555 [inline]\\n     __sys_sendmmsg+0x263/0x500 net/socket.c:2641\\n     __do_sys_sendmmsg net/socket.c:2670 [inline]\\n     __se_sys_sendmmsg net/socket.c:2667 [inline]\\n     __x64_sys_sendmmsg+0x57/0x60 net/socket.c:2667\\n     do_syscall_x64 arch/x86/entry/common.c:50 [inline]\\n     do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80\\n     entry_SYSCALL_64_after_hwframe+0x63/0xcd\\n\\n    value changed: 0x00000000 -\u003e 0xffffffea\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2b5fdc0f5caa505afe34d608e2eefadadf2ee67a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3e8ba61a3fe4475a9b5c9fbfc664435c6795d872\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/454e48a9ff04c5fa1631bb172070fcb6389b97f9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…