CVE-2023-54237 (GCVE-0-2023-54237)
Vulnerability from cvelistv5 – Published: 2025-12-30 12:11 – Updated: 2026-09-14 11:57
VLAI
EPSS
VEX
Title
net/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()
There is a certain chance to trigger the following panic:
PID: 5900 TASK: ffff88c1c8af4100 CPU: 1 COMMAND: "kworker/1:48"
#0 [ffff9456c1cc79a0] machine_kexec at ffffffff870665b7
#1 [ffff9456c1cc79f0] __crash_kexec at ffffffff871b4c7a
#2 [ffff9456c1cc7ab0] crash_kexec at ffffffff871b5b60
#3 [ffff9456c1cc7ac0] oops_end at ffffffff87026ce7
#4 [ffff9456c1cc7ae0] page_fault_oops at ffffffff87075715
#5 [ffff9456c1cc7b58] exc_page_fault at ffffffff87ad0654
#6 [ffff9456c1cc7b80] asm_exc_page_fault at ffffffff87c00b62
[exception RIP: ib_alloc_mr+19]
RIP: ffffffffc0c9cce3 RSP: ffff9456c1cc7c38 RFLAGS: 00010202
RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000004
RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88c1ea281d00 R8: 000000020a34ffff R9: ffff88c1350bbb20
R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000010 R14: ffff88c1ab040a50 R15: ffff88c1ea281d00
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#7 [ffff9456c1cc7c60] smc_ib_get_memory_region at ffffffffc0aff6df [smc]
#8 [ffff9456c1cc7c88] smcr_buf_map_link at ffffffffc0b0278c [smc]
#9 [ffff9456c1cc7ce0] __smc_buf_create at ffffffffc0b03586 [smc]
The reason here is that when the server tries to create a second link,
smc_llc_srv_add_link() has no protection and may add a new link to
link group. This breaks the security environment protected by
llc_conf_mutex.
Severity
9.8 (Critical)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
2d2209f2018943d4152a21eff5b76f1952e0b435 , < fe35c24b730d38b421da93ac5d493cb4495e8e54
(git)
Affected: 2d2209f2018943d4152a21eff5b76f1952e0b435 , < f2f46de98c11d41ac8d22765f47ba54ce5480a5b (git) Affected: 2d2209f2018943d4152a21eff5b76f1952e0b435 , < 0c764cc271d3aa6528ae1b3394babf34ac01f775 (git) Affected: 2d2209f2018943d4152a21eff5b76f1952e0b435 , < e40b801b3603a8f90b46acbacdea3505c27f01c0 (git) |
|
| Linux | Linux |
Affected:
5.8
Unaffected: 0 , < 5.8 (semver) Unaffected: 5.10.270 , ≤ 5.10.* (semver) Unaffected: 6.1.16 , ≤ 6.1.* (semver) Unaffected: 6.2.3 , ≤ 6.2.* (semver) Unaffected: 6.3 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fe35c24b730d38b421da93ac5d493cb4495e8e54",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "f2f46de98c11d41ac8d22765f47ba54ce5480a5b",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "0c764cc271d3aa6528ae1b3394babf34ac01f775",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "e40b801b3603a8f90b46acbacdea3505c27f01c0",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.2.*",
"status": "unaffected",
"version": "6.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.16",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.2.3",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.3",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()\n\nThere is a certain chance to trigger the following panic:\n\nPID: 5900 TASK: ffff88c1c8af4100 CPU: 1 COMMAND: \"kworker/1:48\"\n #0 [ffff9456c1cc79a0] machine_kexec at ffffffff870665b7\n #1 [ffff9456c1cc79f0] __crash_kexec at ffffffff871b4c7a\n #2 [ffff9456c1cc7ab0] crash_kexec at ffffffff871b5b60\n #3 [ffff9456c1cc7ac0] oops_end at ffffffff87026ce7\n #4 [ffff9456c1cc7ae0] page_fault_oops at ffffffff87075715\n #5 [ffff9456c1cc7b58] exc_page_fault at ffffffff87ad0654\n #6 [ffff9456c1cc7b80] asm_exc_page_fault at ffffffff87c00b62\n [exception RIP: ib_alloc_mr+19]\n RIP: ffffffffc0c9cce3 RSP: ffff9456c1cc7c38 RFLAGS: 00010202\n RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000004\n RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000000000\n RBP: ffff88c1ea281d00 R8: 000000020a34ffff R9: ffff88c1350bbb20\n R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000\n R13: 0000000000000010 R14: ffff88c1ab040a50 R15: ffff88c1ea281d00\n ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018\n #7 [ffff9456c1cc7c60] smc_ib_get_memory_region at ffffffffc0aff6df [smc]\n #8 [ffff9456c1cc7c88] smcr_buf_map_link at ffffffffc0b0278c [smc]\n #9 [ffff9456c1cc7ce0] __smc_buf_create at ffffffffc0b03586 [smc]\n\nThe reason here is that when the server tries to create a second link,\nsmc_llc_srv_add_link() has no protection and may add a new link to\nlink group. This breaks the security environment protected by\nllc_conf_mutex."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The vulnerable window is entered only from the SMC-R server listen worker (`smc_listen_work` \u2192 `smc_listen_rdma_finish` \u2192 `smcr_serv_conf_first_link`) in response to an inbound remote connection, and the racing LLC messages (ADD_LINK/DELETE_LINK) arrive from the remote peer over the RoCE fabric. SMC-Rv2/RoCEv2 traffic is IP-routable and the CLC handshake is plain TCP, so a remote peer reaches this code.\nAC:L - The attacker controls both sides of the race \u2014 it initiates the first-contact connection that enters the unprotected `smc_llc_srv_add_link()` window, and independently drives the concurrent `llc_conf_mutex` holders (parallel connections into the same link group doing `smcr_buf_map_usable_links()`, peer-sent DELETE_LINK, or induced link-down), with unlimited retries.\nPR:N - SMC has no authentication at any point in the CLC or LLC handshake; any peer able to complete an SMC-negotiated TCP connection to the listening socket reaches this code path pre-authentication.\nUI:N - The listen worker processes inbound SMC connections automatically with no action from any local user; the whole flow runs in kernel workqueue context.\nS:U - The corruption is confined to kernel link-group and RDMA resource state within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Unsynchronized `smcr_link_init()`/`smcr_link_clear()` against `smcr_buf_map_usable_links()` yields use of freed/zeroed `ib_pd`, `ib_qp` and WR buffers and MRs registered against torn-down protection domains, memory corruption that can be leveraged to disclose kernel and RDMA buffer contents.\nI:H - Concurrent `smcr_link_clear()` on the same link is unguarded (`lnk-\u003eclearing` is a non-atomic bitfield), producing double `smc_ib_dealloc_protection_domain()`/`smc_ib_destroy_queue_pair()`/` smc_wr_free_link()` and a `memset()` of a live `struct smc_link` \u2014 double-free/use-after-free primitives usable for arbitrary write and control-flow hijack.\nA:H - The commit documents a reproducible kernel panic \u2014 page fault in `ib_alloc_mr()` with a NULL protection domain from `__smc_buf_create` \u2192 `smcr_buf_map_link` \u2192 `smc_ib_get_memory_region` \u2014 and the double-free paths crash the kernel as well."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T11:57:41.872Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fe35c24b730d38b421da93ac5d493cb4495e8e54"
},
{
"url": "https://git.kernel.org/stable/c/f2f46de98c11d41ac8d22765f47ba54ce5480a5b"
},
{
"url": "https://git.kernel.org/stable/c/0c764cc271d3aa6528ae1b3394babf34ac01f775"
},
{
"url": "https://git.kernel.org/stable/c/e40b801b3603a8f90b46acbacdea3505c27f01c0"
}
],
"title": "net/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54237",
"datePublished": "2025-12-30T12:11:27.028Z",
"dateReserved": "2025-12-30T12:06:44.508Z",
"dateUpdated": "2026-09-14T11:57:41.872Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2023-54237",
"date": "2026-10-09",
"epss": "0.00555",
"percentile": "0.44604"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fe35c24b730d38b421da93ac5d493cb4495e8e54",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "f2f46de98c11d41ac8d22765f47ba54ce5480a5b",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "0c764cc271d3aa6528ae1b3394babf34ac01f775",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
},
{
"lessThan": "e40b801b3603a8f90b46acbacdea3505c27f01c0",
"status": "affected",
"version": "2d2209f2018943d4152a21eff5b76f1952e0b435",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/smc/af_smc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.8"
},
{
"lessThan": "5.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.2.*",
"status": "unaffected",
"version": "6.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()\n\nThere is a certain chance to trigger the following panic:\n\nPID: 5900 TASK: ffff88c1c8af4100 CPU: 1 COMMAND: \"kworker/1:48\"\n #0 [ffff9456c1cc79a0] machine_kexec at ffffffff870665b7\n #1 [ffff9456c1cc79f0] __crash_kexec at ffffffff871b4c7a\n #2 [ffff9456c1cc7ab0] crash_kexec at ffffffff871b5b60\n #3 [ffff9456c1cc7ac0] oops_end at ffffffff87026ce7\n #4 [ffff9456c1cc7ae0] page_fault_oops at ffffffff87075715\n #5 [ffff9456c1cc7b58] exc_page_fault at ffffffff87ad0654\n #6 [ffff9456c1cc7b80] asm_exc_page_fault at ffffffff87c00b62\n [exception RIP: ib_alloc_mr+19]\n RIP: ffffffffc0c9cce3 RSP: ffff9456c1cc7c38 RFLAGS: 00010202\n RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000004\n RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000000000\n RBP: ffff88c1ea281d00 R8: 000000020a34ffff R9: ffff88c1350bbb20\n R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000\n R13: 0000000000000010 R14: ffff88c1ab040a50 R15: ffff88c1ea281d00\n ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018\n #7 [ffff9456c1cc7c60] smc_ib_get_memory_region at ffffffffc0aff6df [smc]\n #8 [ffff9456c1cc7c88] smcr_buf_map_link at ffffffffc0b0278c [smc]\n #9 [ffff9456c1cc7ce0] __smc_buf_create at ffffffffc0b03586 [smc]\n\nThe reason here is that when the server tries to create a second link,\nsmc_llc_srv_add_link() has no protection and may add a new link to\nlink group. This breaks the security environment protected by\nllc_conf_mutex."
},
{
"lang": "es",
"value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nnet/smc: corrige un p\u00e1nico potencial debido a smc_llc_srv_add_link() sin protecci\u00f3n\n\nExiste una cierta probabilidad de desencadenar el siguiente p\u00e1nico:\n\nPID: 5900 TASK: ffff88c1c8af4100 CPU: 1 COMMAND: \"kworker/1:48\"\n #0 [ffff9456c1cc79a0] machine_kexec at ffffffff870665b7\n #1 [ffff9456c1cc79f0] __crash_kexec at ffffffff871b4c7a\n #2 [ffff9456c1cc7ab0] crash_kexec at ffffffff871b5b60\n #3 [ffff9456c1cc7ac0] oops_end at ffffffff87026ce7\n #4 [ffff9456c1cc7ae0] page_fault_oops at ffffffff87075715\n #5 [ffff9456c1cc7b58] exc_page_fault at ffffffff87ad0654\n #6 [ffff9456c1cc7b80] asm_exc_page_fault at ffffffff87c00b62\n [exception RIP: ib_alloc_mr+19]\n RIP: ffffffffc0c9cce3 RSP: ffff9456c1cc7c38 RFLAGS: 00010202\n RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000004\n RDX: 0000000000000010 RSI: 0000000000000000 RDI: 0000000000000000\n RBP: ffff88c1ea281d00 R8: 000000020a34ffff R9: ffff88c1350bbb20\n R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000\n R13: 0000000000000010 R14: ffff88c1ab040a50 R15: ffff88c1ea281d00\n ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018\n #7 [ffff9456c1cc7c60] smc_ib_get_memory_region at ffffffffc0aff6df [smc]\n #8 [ffff9456c1cc7c88] smcr_buf_map_link at ffffffffc0b0278c [smc]\n #9 [ffff9456c1cc7ce0] __smc_buf_create at ffffffffc0b03586 [smc]\n\nLa raz\u00f3n aqu\u00ed es que cuando el servidor intenta crear un segundo enlace, smc_llc_srv_add_link() no tiene protecci\u00f3n y puede a\u00f1adir un nuevo enlace al grupo de enlaces. Esto rompe el entorno de seguridad protegido por llc_conf_mutex."
}
],
"id": "CVE-2023-54237",
"lastModified": "2026-09-14T12:17:32.890",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9,
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"type": "Secondary"
}
]
},
"published": "2025-12-30T13:16:12.193",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/0c764cc271d3aa6528ae1b3394babf34ac01f775"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/e40b801b3603a8f90b46acbacdea3505c27f01c0"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/f2f46de98c11d41ac8d22765f47ba54ce5480a5b"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/fe35c24b730d38b421da93ac5d493cb4495e8e54"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Deferred"
}
},
"redhat_vex": {
"aggregate_severity": "Low",
"current_release_date": "2026-08-04T22:52:39+00:00",
"cve": "CVE-2023-54237",
"id": "CVE-2023-54237",
"initial_release_date": "2023-01-01T00:00:00+00:00",
"product_status:fixed": "303",
"product_status:known_affected": "70",
"product_status:known_not_affected": "118",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: net/smc: fix potential panic dues to unprotected smc_llc_srv_add_link()",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54237.json",
"version": "3"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…