CVE-2026-23127 (GCVE-0-2026-23127)
Vulnerability from cvelistv5 – Published: 2026-02-14 15:09 – Updated: 2026-02-14 15:09
VLAI?
Title
perf: Fix refcount warning on event->mmap_count increment
Summary
In the Linux kernel, the following vulnerability has been resolved:
perf: Fix refcount warning on event->mmap_count increment
When calling refcount_inc(&event->mmap_count) inside perf_mmap_rb(), the
following warning is triggered:
refcount_t: addition on 0; use-after-free.
WARNING: lib/refcount.c:25
PoC:
struct perf_event_attr attr = {0};
int fd = syscall(__NR_perf_event_open, &attr, 0, -1, -1, 0);
mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
int victim = syscall(__NR_perf_event_open, &attr, 0, -1, fd,
PERF_FLAG_FD_OUTPUT);
mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, victim, 0);
This occurs when creating a group member event with the flag
PERF_FLAG_FD_OUTPUT. The group leader should be mmap-ed and then mmap-ing
the event triggers the warning.
Since the event has copied the output_event in perf_event_set_output(),
event->rb is set. As a result, perf_mmap_rb() calls
refcount_inc(&event->mmap_count) when event->mmap_count = 0.
Disallow the case when event->mmap_count = 0. This also prevents two
events from updating the same user_page.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "23c0e4bd93d0b250775162faf456470485ac9fc7",
"status": "affected",
"version": "448f97fba9013ffa13f5dd82febd18836b189499",
"versionType": "git"
},
{
"lessThan": "d06bf78e55d5159c1b00072e606ab924ffbbad35",
"status": "affected",
"version": "448f97fba9013ffa13f5dd82febd18836b189499",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/events/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.18"
},
{
"lessThan": "6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.19",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.8",
"versionStartIncluding": "6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19",
"versionStartIncluding": "6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf: Fix refcount warning on event-\u003emmap_count increment\n\nWhen calling refcount_inc(\u0026event-\u003emmap_count) inside perf_mmap_rb(), the\nfollowing warning is triggered:\n\n refcount_t: addition on 0; use-after-free.\n WARNING: lib/refcount.c:25\n\nPoC:\n\n struct perf_event_attr attr = {0};\n int fd = syscall(__NR_perf_event_open, \u0026attr, 0, -1, -1, 0);\n mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);\n int victim = syscall(__NR_perf_event_open, \u0026attr, 0, -1, fd,\n PERF_FLAG_FD_OUTPUT);\n mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, victim, 0);\n\nThis occurs when creating a group member event with the flag\nPERF_FLAG_FD_OUTPUT. The group leader should be mmap-ed and then mmap-ing\nthe event triggers the warning.\n\nSince the event has copied the output_event in perf_event_set_output(),\nevent-\u003erb is set. As a result, perf_mmap_rb() calls\nrefcount_inc(\u0026event-\u003emmap_count) when event-\u003emmap_count = 0.\n\nDisallow the case when event-\u003emmap_count = 0. This also prevents two\nevents from updating the same user_page."
}
],
"providerMetadata": {
"dateUpdated": "2026-02-14T15:09:56.237Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/23c0e4bd93d0b250775162faf456470485ac9fc7"
},
{
"url": "https://git.kernel.org/stable/c/d06bf78e55d5159c1b00072e606ab924ffbbad35"
}
],
"title": "perf: Fix refcount warning on event-\u003emmap_count increment",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-23127",
"datePublished": "2026-02-14T15:09:56.237Z",
"dateReserved": "2026-01-13T15:37:45.970Z",
"dateUpdated": "2026-02-14T15:09:56.237Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-23127\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-02-14T15:16:07.963\",\"lastModified\":\"2026-02-14T15:16:07.963\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nperf: Fix refcount warning on event-\u003emmap_count increment\\n\\nWhen calling refcount_inc(\u0026event-\u003emmap_count) inside perf_mmap_rb(), the\\nfollowing warning is triggered:\\n\\n refcount_t: addition on 0; use-after-free.\\n WARNING: lib/refcount.c:25\\n\\nPoC:\\n\\n struct perf_event_attr attr = {0};\\n int fd = syscall(__NR_perf_event_open, \u0026attr, 0, -1, -1, 0);\\n mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);\\n int victim = syscall(__NR_perf_event_open, \u0026attr, 0, -1, fd,\\n PERF_FLAG_FD_OUTPUT);\\n mmap(NULL, 0x3000, PROT_READ | PROT_WRITE, MAP_SHARED, victim, 0);\\n\\nThis occurs when creating a group member event with the flag\\nPERF_FLAG_FD_OUTPUT. The group leader should be mmap-ed and then mmap-ing\\nthe event triggers the warning.\\n\\nSince the event has copied the output_event in perf_event_set_output(),\\nevent-\u003erb is set. As a result, perf_mmap_rb() calls\\nrefcount_inc(\u0026event-\u003emmap_count) when event-\u003emmap_count = 0.\\n\\nDisallow the case when event-\u003emmap_count = 0. This also prevents two\\nevents from updating the same user_page.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/23c0e4bd93d0b250775162faf456470485ac9fc7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d06bf78e55d5159c1b00072e606ab924ffbbad35\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
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…