Files
vuln-cve/data/2022/50xxx/CVE-2022-50129.json
T

203 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2022-50129",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2025-06-18T10:57:27.418Z",
"datePublished": "2025-06-18T11:02:55.576Z",
"dateUpdated": "2026-08-05T08:57:28.156Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:57:28.156Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/srpt: Fix a use-after-free\n\nChange the LIO port members inside struct srpt_port from regular members\ninto pointers. Allocate the LIO port data structures from inside\nsrpt_make_tport() and free these from inside srpt_make_tport(). Keep\nstruct srpt_device as long as either an RDMA port or a LIO target port is\nassociated with it. This patch decouples the lifetime of struct srpt_port\n(controlled by the RDMA core) and struct srpt_port_id (controlled by LIO).\nThis patch fixes the following KASAN complaint:\n\n BUG: KASAN: use-after-free in srpt_enable_tpg+0x31/0x70 [ib_srpt]\n Read of size 8 at addr ffff888141cc34b8 by task check/5093\n\n Call Trace:\n <TASK>\n show_stack+0x4e/0x53\n dump_stack_lvl+0x51/0x66\n print_address_description.constprop.0.cold+0xea/0x41e\n print_report.cold+0x90/0x205\n kasan_report+0xb9/0xf0\n __asan_load8+0x69/0x90\n srpt_enable_tpg+0x31/0x70 [ib_srpt]\n target_fabric_tpg_base_enable_store+0xe2/0x140 [target_core_mod]\n configfs_write_iter+0x18b/0x210\n new_sync_write+0x1f2/0x2f0\n vfs_write+0x3e3/0x540\n ksys_write+0xbb/0x140\n __x64_sys_write+0x42/0x50\n do_syscall_64+0x34/0x80\n entry_SYSCALL_64_after_hwframe+0x46/0xb0\n </TASK>"
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 7,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached through local configfs operations on the LIO/srpt target hierarchy (enable store as in the KASAN report, and world-readable TPG attrib show handlers that call srpt_tpg_to_sport), not via remote SRP/RDMA connection processing.\nAC:H - The use-after-free only appears after srpt_remove_one frees struct srpt_port (RDMA device unbind/hot-remove/module teardown) while LIO configfs still holds references into the embedded srpt_port_id/se_wwn; an unprivileged attacker cannot induce that RDMA lifetime transition.\nPR:L - After the dangling state exists, CONFIGFS_ATTR show handlers such as srpt_tpg_attrib_*_show are mode S_IRUGO and dereference the freed sport via wwn->priv, so a normal unprivileged local user can trigger the UAF by reading those attributes without root or init-namespace capabilities.\nUI:N - Exploitation is just reading or writing the already-present configfs attributes; no separate victim action such as mounting a filesystem or opening a user-supplied file is required.\nS:U - This is a standard in-kernel use-after-free within the host kernel’s authority and does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - Use-after-free of srpt_port/srpt_port_id lets an attacker reuse the freed object and obtain arbitrary kernel read primitives, so confidentiality impact is High under kernel UAF guidance.\nI:H - The same heap UAF is exploitable via spraying/reallocation for corruption of kernel objects and control-flow hijacking, so integrity impact is High.\nA:H - The demonstrated KASAN use-after-free in srpt_enable_tpg and equivalent dangling dereferences in attrib paths can oops/panic the kernel, so availability impact is High."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/infiniband/ulp/srpt/ib_srpt.c",
"drivers/infiniband/ulp/srpt/ib_srpt.h"
],
"versions": [
{
"version": "a42d985bd5b234da8b61347a78dc3057bf7bb94d",
"lessThan": "de95b52d9aabc979166aba81ccbe623aaf9c16a1",
"status": "affected",
"versionType": "git"
},
{
"version": "a42d985bd5b234da8b61347a78dc3057bf7bb94d",
"lessThan": "e60d7e2462bf57273563c4e00dbfa79ee973b9e2",
"status": "affected",
"versionType": "git"
},
{
"version": "a42d985bd5b234da8b61347a78dc3057bf7bb94d",
"lessThan": "4ee8c39968a648d58b273582d4b021044a41ee5e",
"status": "affected",
"versionType": "git"
},
{
"version": "a42d985bd5b234da8b61347a78dc3057bf7bb94d",
"lessThan": "388326bb1c32fcd09371c1d494af71471ef3a04b",
"status": "affected",
"versionType": "git"
},
{
"version": "a42d985bd5b234da8b61347a78dc3057bf7bb94d",
"lessThan": "b5605148e6ce36bb21020d49010b617693933128",
"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/infiniband/ulp/srpt/ib_srpt.c",
"drivers/infiniband/ulp/srpt/ib_srpt.h"
],
"versions": [
{
"version": "3.3",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.3",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.137",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.61",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.18.18",
"lessThanOrEqual": "5.18.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.19.2",
"lessThanOrEqual": "5.19.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.0",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3",
"versionEndExcluding": "5.10.137"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3",
"versionEndExcluding": "5.15.61"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3",
"versionEndExcluding": "5.18.18"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3",
"versionEndExcluding": "5.19.2"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.3",
"versionEndExcluding": "6.0"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/de95b52d9aabc979166aba81ccbe623aaf9c16a1"
},
{
"url": "https://git.kernel.org/stable/c/e60d7e2462bf57273563c4e00dbfa79ee973b9e2"
},
{
"url": "https://git.kernel.org/stable/c/4ee8c39968a648d58b273582d4b021044a41ee5e"
},
{
"url": "https://git.kernel.org/stable/c/388326bb1c32fcd09371c1d494af71471ef3a04b"
},
{
"url": "https://git.kernel.org/stable/c/b5605148e6ce36bb21020d49010b617693933128"
}
],
"title": "RDMA/srpt: Fix a use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
}
}