CWE-362
Allowed-with-ReviewConcurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Abstraction: Class · Status: Draft
The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently.
2903 vulnerabilities reference this CWE, most recent first.
GHSA-RFRM-3M8M-J83R
Vulnerability from github – Published: 2026-01-13 18:31 – Updated: 2026-01-13 18:31Concurrent execution using shared resource with improper synchronization ('race condition') in Windows Management Services allows an authorized attacker to elevate privileges locally.
{
"affected": [],
"aliases": [
"CVE-2026-20873"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-01-13T18:16:17Z",
"severity": "HIGH"
},
"details": "Concurrent execution using shared resource with improper synchronization (\u0027race condition\u0027) in Windows Management Services allows an authorized attacker to elevate privileges locally.",
"id": "GHSA-rfrm-3m8m-j83r",
"modified": "2026-01-13T18:31:09Z",
"published": "2026-01-13T18:31:09Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-20873"
},
{
"type": "WEB",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20873"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RG39-8MMH-38H3
Vulnerability from github – Published: 2026-07-14 18:32 – Updated: 2026-07-14 18:32Concurrent execution using shared resource with improper synchronization ('race condition') in Windows USB Print Driver allows an authorized attacker to elevate privileges with a physical attack.
{
"affected": [],
"aliases": [
"CVE-2026-58543"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-07-14T18:18:42Z",
"severity": "MODERATE"
},
"details": "Concurrent execution using shared resource with improper synchronization (\u0027race condition\u0027) in Windows USB Print Driver allows an authorized attacker to elevate privileges with a physical attack.",
"id": "GHSA-rg39-8mmh-38h3",
"modified": "2026-07-14T18:32:41Z",
"published": "2026-07-14T18:32:41Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-58543"
},
{
"type": "WEB",
"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-58543"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:P/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RG6W-GRG6-5WQF
Vulnerability from github – Published: 2022-08-03 00:00 – Updated: 2025-11-04 18:30An issue was discovered in bgpd in FRRouting (FRR) 8.3. In bgp_notify_send_with_data() and bgp_process_packet() in bgp_packet.c, there is a possible use-after-free due to a race condition. This could lead to Remote Code Execution or Information Disclosure by sending crafted BGP packets. User interaction is not needed for exploitation.
{
"affected": [],
"aliases": [
"CVE-2022-37035"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-08-02T23:15:00Z",
"severity": "HIGH"
},
"details": "An issue was discovered in bgpd in FRRouting (FRR) 8.3. In bgp_notify_send_with_data() and bgp_process_packet() in bgp_packet.c, there is a possible use-after-free due to a race condition. This could lead to Remote Code Execution or Information Disclosure by sending crafted BGP packets. User interaction is not needed for exploitation.",
"id": "GHSA-rg6w-grg6-5wqf",
"modified": "2025-11-04T18:30:38Z",
"published": "2022-08-03T00:00:51Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-37035"
},
{
"type": "WEB",
"url": "https://github.com/FRRouting/frr/issues/11698"
},
{
"type": "WEB",
"url": "https://docs.google.com/document/d/1TqYEcZbFeDTMKe2N4XRFwyAjw_mynIHfvzwbx1fmJj8/edit?usp=sharing"
},
{
"type": "WEB",
"url": "https://lists.debian.org/debian-lts-announce/2024/04/msg00019.html"
},
{
"type": "WEB",
"url": "https://lists.debian.org/debian-lts-announce/2024/09/msg00007.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RGFR-7G9M-XPR3
Vulnerability from github – Published: 2022-05-13 01:18 – Updated: 2025-04-12 13:01Session fixation vulnerability in Symphony CMS 2.6.7, when session.use_only_cookies is disabled, allows remote attackers to hijack web sessions via the PHPSESSID parameter.
{
"affected": [],
"aliases": [
"CVE-2016-4309"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2016-06-30T17:59:00Z",
"severity": "HIGH"
},
"details": "Session fixation vulnerability in Symphony CMS 2.6.7, when session.use_only_cookies is disabled, allows remote attackers to hijack web sessions via the PHPSESSID parameter.",
"id": "GHSA-rgfr-7g9m-xpr3",
"modified": "2025-04-12T13:01:33Z",
"published": "2022-05-13T01:18:00Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2016-4309"
},
{
"type": "WEB",
"url": "https://github.com/symphonycms/symphony-2/commit/b329a14adc40868965076a77210452e396243dcd"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/39983"
},
{
"type": "WEB",
"url": "http://hyp3rlinx.altervista.org/advisories/SYMPHONY-CMS-SESSION-FIXATION.txt"
},
{
"type": "WEB",
"url": "http://packetstormsecurity.com/files/137551/Symphony-CMS-2.6.7-Session-Fixation.html"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/archive/1/538714/100/0/threaded"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/bid/91299"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RH28-76XV-JCQC
Vulnerability from github – Published: 2022-03-26 00:00 – Updated: 2022-04-08 00:00A use-after-free read flaw was found in sock_getsockopt() in net/core/sock.c due to SO_PEERCRED and SO_PEERGROUPS race with listen() (and connect()) in the Linux kernel. In this flaw, an attacker with a user privileges may crash the system or leak internal kernel information.
{
"affected": [],
"aliases": [
"CVE-2021-4203"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-03-25T19:15:00Z",
"severity": "MODERATE"
},
"details": "A use-after-free read flaw was found in sock_getsockopt() in net/core/sock.c due to SO_PEERCRED and SO_PEERGROUPS race with listen() (and connect()) in the Linux kernel. In this flaw, an attacker with a user privileges may crash the system or leak internal kernel information.",
"id": "GHSA-rh28-76xv-jcqc",
"modified": "2022-04-08T00:00:39Z",
"published": "2022-03-26T00:00:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-4203"
},
{
"type": "WEB",
"url": "https://bugs.chromium.org/p/project-zero/issues/detail?id=2230\u0026can=7\u0026q=modified-after%3Atoday-30\u0026sort=-modified\u0026colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Modified%20Cve\u0026cells=tiles\u0026redir=1"
},
{
"type": "WEB",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2036934"
},
{
"type": "WEB",
"url": "https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=35306eb23814"
},
{
"type": "WEB",
"url": "https://lore.kernel.org/netdev/20210929225750.2548112-1-eric.dumazet@gmail.com/T"
},
{
"type": "WEB",
"url": "https://security.netapp.com/advisory/ntap-20221111-0003"
},
{
"type": "WEB",
"url": "https://www.oracle.com/security-alerts/cpujul2022.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RH4W-94HH-9943
Vulnerability from github – Published: 2022-05-24 17:37 – Updated: 2023-06-13 17:24Affected versions of the crate had a Send/Sync implementation for MappedMutexGuard that only considered variance on T, while MappedMutexGuard dereferenced to U.
This could of led to data races in safe Rust code when a closure used in MutexGuard::map() returns U that is unrelated to T.
The issue was fixed by fixing Send and Sync implementations, and by adding a PhantomData<&'a mut U> marker to the MappedMutexGuard type to tell the compiler that the guard is over U too.
{
"affected": [
{
"package": {
"ecosystem": "crates.io",
"name": "futures-util"
},
"ranges": [
{
"events": [
{
"introduced": "0.3.2"
},
{
"fixed": "0.3.7"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2020-35905"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": true,
"github_reviewed_at": "2022-06-16T23:55:12Z",
"nvd_published_at": "2020-12-31T09:15:00Z",
"severity": "MODERATE"
},
"details": "Affected versions of the crate had a Send/Sync implementation for MappedMutexGuard that only considered variance on T, while MappedMutexGuard dereferenced to U.\n\nThis could of led to data races in safe Rust code when a closure used in MutexGuard::map() returns U that is unrelated to T.\n\nThe issue was fixed by fixing Send and Sync implementations, and by adding a PhantomData\u003c\u0026\u0027a mut U\u003e marker to the MappedMutexGuard type to tell the compiler that the guard is over U too.",
"id": "GHSA-rh4w-94hh-9943",
"modified": "2023-06-13T17:24:13Z",
"published": "2022-05-24T17:37:49Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-35905"
},
{
"type": "WEB",
"url": "https://github.com/rust-lang/futures-rs/issues/2239"
},
{
"type": "PACKAGE",
"url": "https://github.com/rust-lang/futures-rs"
},
{
"type": "WEB",
"url": "https://rustsec.org/advisories/RUSTSEC-2020-0059.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
}
],
"summary": "MutexGuard::map can cause a data race in safe code"
}
GHSA-RH85-JQ99-M6FX
Vulnerability from github – Published: 2022-05-13 01:03 – Updated: 2022-05-13 01:03Race condition in Microsoft Internet Explorer 6, 7, and 8 allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via vectors related to an object in memory, aka "Race Condition Memory Corruption Vulnerability."
{
"affected": [],
"aliases": [
"CVE-2010-2558"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2010-08-11T18:47:00Z",
"severity": "HIGH"
},
"details": "Race condition in Microsoft Internet Explorer 6, 7, and 8 allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via vectors related to an object in memory, aka \"Race Condition Memory Corruption Vulnerability.\"",
"id": "GHSA-rh85-jq99-m6fx",
"modified": "2022-05-13T01:03:30Z",
"published": "2022-05-13T01:03:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2010-2558"
},
{
"type": "WEB",
"url": "https://docs.microsoft.com/en-us/security-updates/securitybulletins/2010/ms10-053"
},
{
"type": "WEB",
"url": "https://oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A11853"
},
{
"type": "WEB",
"url": "http://www.us-cert.gov/cas/techalerts/TA10-222A.html"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-RHCJ-6WXJ-R34P
Vulnerability from github – Published: 2026-05-06 12:30 – Updated: 2026-07-08 15:31In the Linux kernel, the following vulnerability has been resolved:
tcp: fix potential race in tcp_v6_syn_recv_sock()
Code in tcp_v6_syn_recv_sock() after the call to tcp_v4_syn_recv_sock() is done too late.
After tcp_v4_syn_recv_sock(), the child socket is already visible from TCP ehash table and other cpus might use it.
Since newinet->pinet6 is still pointing to the listener ipv6_pinfo bad things can happen as syzbot found.
Move the problematic code in tcp_v6_mapped_child_init() and call this new helper from tcp_v4_syn_recv_sock() before the ehash insertion.
This allows the removal of one tcp_sync_mss(), since tcp_v4_syn_recv_sock() will call it with the correct context.
{
"affected": [],
"aliases": [
"CVE-2026-43198"
],
"database_specific": {
"cwe_ids": [
"CWE-362",
"CWE-821"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-05-06T12:16:38Z",
"severity": "CRITICAL"
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\ntcp: fix potential race in tcp_v6_syn_recv_sock()\n\nCode in tcp_v6_syn_recv_sock() after the call to tcp_v4_syn_recv_sock()\nis done too late.\n\nAfter tcp_v4_syn_recv_sock(), the child socket is already visible\nfrom TCP ehash table and other cpus might use it.\n\nSince newinet-\u003epinet6 is still pointing to the listener ipv6_pinfo\nbad things can happen as syzbot found.\n\nMove the problematic code in tcp_v6_mapped_child_init()\nand call this new helper from tcp_v4_syn_recv_sock() before\nthe ehash insertion.\n\nThis allows the removal of one tcp_sync_mss(), since\ntcp_v4_syn_recv_sock() will call it with the correct\ncontext.",
"id": "GHSA-rhcj-6wxj-r34p",
"modified": "2026-07-08T15:31:29Z",
"published": "2026-05-06T12:30:32Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-43198"
},
{
"type": "WEB",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-43198.json"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/fe89b2f05b854847784f91127319172945c1fadd"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/858d2a4f67ff69e645a43487ef7ea7f28f06deae"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/7178e2a8027423b2af17ab95df73a749a5b72e5b"
},
{
"type": "WEB",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2467228"
},
{
"type": "WEB",
"url": "https://access.redhat.com/security/cve/CVE-2026-43198"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:36349"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:36348"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:36216"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:36073"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:35904"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:35896"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:35894"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:35863"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:34443"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:34094"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:33285"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:33215"
},
{
"type": "WEB",
"url": "https://access.redhat.com/errata/RHSA-2026:30129"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-RHH9-X7CC-27X3
Vulnerability from github – Published: 2022-05-14 02:05 – Updated: 2022-05-14 02:05The mozilla::dom::AudioParamTimeline::AudioNodeInputValue function in the Web Audio API implementation in Mozilla Firefox before 35.0 and SeaMonkey before 2.32 does not properly restrict timeline operations, which allows remote attackers to cause a denial of service (uninitialized-memory read and application crash) via crafted API calls.
{
"affected": [],
"aliases": [
"CVE-2014-8640"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2015-01-14T11:59:00Z",
"severity": "MODERATE"
},
"details": "The mozilla::dom::AudioParamTimeline::AudioNodeInputValue function in the Web Audio API implementation in Mozilla Firefox before 35.0 and SeaMonkey before 2.32 does not properly restrict timeline operations, which allows remote attackers to cause a denial of service (uninitialized-memory read and application crash) via crafted API calls.",
"id": "GHSA-rhh9-x7cc-27x3",
"modified": "2022-05-14T02:05:35Z",
"published": "2022-05-14T02:05:35Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2014-8640"
},
{
"type": "WEB",
"url": "https://bugzilla.mozilla.org/show_bug.cgi?id=1100409"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/99960"
},
{
"type": "WEB",
"url": "https://security.gentoo.org/glsa/201504-01"
},
{
"type": "WEB",
"url": "http://lists.opensuse.org/opensuse-security-announce/2015-01/msg00014.html"
},
{
"type": "WEB",
"url": "http://lists.opensuse.org/opensuse-security-announce/2015-01/msg00032.html"
},
{
"type": "WEB",
"url": "http://lists.opensuse.org/opensuse-security-announce/2015-01/msg00033.html"
},
{
"type": "WEB",
"url": "http://lists.opensuse.org/opensuse-security-announce/2015-01/msg00036.html"
},
{
"type": "WEB",
"url": "http://lists.opensuse.org/opensuse-security-announce/2015-02/msg00002.html"
},
{
"type": "WEB",
"url": "http://secunia.com/advisories/62242"
},
{
"type": "WEB",
"url": "http://secunia.com/advisories/62250"
},
{
"type": "WEB",
"url": "http://secunia.com/advisories/62418"
},
{
"type": "WEB",
"url": "http://secunia.com/advisories/62790"
},
{
"type": "WEB",
"url": "http://www.mozilla.org/security/announce/2014/mfsa2015-05.html"
},
{
"type": "WEB",
"url": "http://www.oracle.com/technetwork/topics/security/bulletinapr2016-2952098.html"
},
{
"type": "WEB",
"url": "http://www.securityfocus.com/bid/72045"
},
{
"type": "WEB",
"url": "http://www.securitytracker.com/id/1031533"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-RHPM-RXF4-Q3HF
Vulnerability from github – Published: 2026-05-27 15:33 – Updated: 2026-06-16 18:32In the Linux kernel, the following vulnerability has been resolved:
mm/damon/core: fix damon_call() vs kdamond_fn() exit race
Patch series "mm/damon/core: fix damon_call()/damos_walk() vs kdmond exit race".
damon_call() and damos_walk() can leak memory and/or deadlock when they race with kdamond terminations. Fix those.
This patch (of 2);
When kdamond_fn() main loop is finished, the function cancels all remaining damon_call() requests and unset the damon_ctx->kdamond so that API callers and API functions themselves can know the context is terminated. damon_call() adds the caller's request to the queue first. After that, it shows if the kdamond of the damon_ctx is still running (damon_ctx->kdamond is set). Only if the kdamond is running, damon_call() starts waiting for the kdamond's handling of the newly added request.
The damon_call() requests registration and damon_ctx->kdamond unset are protected by different mutexes, though. Hence, damon_call() could race with damon_ctx->kdamond unset, and result in deadlocks.
For example, let's suppose kdamond successfully finished the damon_call() requests cancelling. Right after that, damon_call() is called for the context. It registers the new request, and shows the context is still running, because damon_ctx->kdamond unset is not yet done. Hence the damon_call() caller starts waiting for the handling of the request. However, the kdamond is already on the termination steps, so it never handles the new request. As a result, the damon_call() caller threads infinitely waits.
Fix this by introducing another damon_ctx field, namely call_controls_obsolete. It is protected by the damon_ctx->call_controls_lock, which protects damon_call() requests registration. Initialize (unset) it in kdamond_fn() before letting damon_start() returns and set it just before the cancelling of remaining damon_call() requests is executed. damon_call() reads the obsolete field under the lock and avoids adding a new request.
After this change, only requests that are guaranteed to be handled or cancelled are registered. Hence the after-registration DAMON context termination check is no longer needed. Remove it together.
Note that the deadlock will not happen when damon_call() is called for repeat mode request. In tis case, damon_call() returns instead of waiting for the handling when the request registration succeeds and it shows the kdamond is running. However, if the request also has dealloc_on_cancel, the request memory would be leaked.
The issue is found by sashiko [1].
{
"affected": [],
"aliases": [
"CVE-2026-46025"
],
"database_specific": {
"cwe_ids": [
"CWE-362"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-05-27T14:17:21Z",
"severity": "MODERATE"
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/damon/core: fix damon_call() vs kdamond_fn() exit race\n\nPatch series \"mm/damon/core: fix damon_call()/damos_walk() vs kdmond exit\nrace\".\n\ndamon_call() and damos_walk() can leak memory and/or deadlock when they\nrace with kdamond terminations. Fix those.\n\n\nThis patch (of 2);\n\nWhen kdamond_fn() main loop is finished, the function cancels all\nremaining damon_call() requests and unset the damon_ctx-\u003ekdamond so that\nAPI callers and API functions themselves can know the context is\nterminated. damon_call() adds the caller\u0027s request to the queue first. \nAfter that, it shows if the kdamond of the damon_ctx is still running\n(damon_ctx-\u003ekdamond is set). Only if the kdamond is running, damon_call()\nstarts waiting for the kdamond\u0027s handling of the newly added request.\n\nThe damon_call() requests registration and damon_ctx-\u003ekdamond unset are\nprotected by different mutexes, though. Hence, damon_call() could race\nwith damon_ctx-\u003ekdamond unset, and result in deadlocks.\n\nFor example, let\u0027s suppose kdamond successfully finished the damon_call()\nrequests cancelling. Right after that, damon_call() is called for the\ncontext. It registers the new request, and shows the context is still\nrunning, because damon_ctx-\u003ekdamond unset is not yet done. Hence the\ndamon_call() caller starts waiting for the handling of the request. \nHowever, the kdamond is already on the termination steps, so it never\nhandles the new request. As a result, the damon_call() caller threads\ninfinitely waits.\n\nFix this by introducing another damon_ctx field, namely\ncall_controls_obsolete. It is protected by the\ndamon_ctx-\u003ecall_controls_lock, which protects damon_call() requests\nregistration. Initialize (unset) it in kdamond_fn() before letting\ndamon_start() returns and set it just before the cancelling of remaining\ndamon_call() requests is executed. damon_call() reads the obsolete field\nunder the lock and avoids adding a new request.\n\nAfter this change, only requests that are guaranteed to be handled or\ncancelled are registered. Hence the after-registration DAMON context\ntermination check is no longer needed. Remove it together.\n\nNote that the deadlock will not happen when damon_call() is called for\nrepeat mode request. In tis case, damon_call() returns instead of waiting\nfor the handling when the request registration succeeds and it shows the\nkdamond is running. However, if the request also has dealloc_on_cancel,\nthe request memory would be leaked.\n\nThe issue is found by sashiko [1].",
"id": "GHSA-rhpm-rxf4-q3hf",
"modified": "2026-06-16T18:32:28Z",
"published": "2026-05-27T15:33:21Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-46025"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/2691332ad88b57179c38653e2cd613d5820a52cf"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/55da81663b9642dd046b26dd6f1baddbcf337c1e"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/e6a053a6f4b5048746c49432a5cc5b79fe4695fe"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
}
]
}
Mitigation
In languages that support it, use synchronization primitives. Only wrap these around critical code to minimize the impact on performance.
Mitigation
Use thread-safe capabilities such as the data access abstraction in Spring.
Mitigation
- Minimize the usage of shared resources in order to remove as much complexity as possible from the control flow and to reduce the likelihood of unexpected conditions occurring.
- Additionally, this will minimize the amount of synchronization necessary and may even help to reduce the likelihood of a denial of service where an attacker may be able to repeatedly trigger a critical section (CWE-400).
Mitigation
When using multithreading and operating on shared variables, only use thread-safe functions.
Mitigation
Use atomic operations on shared variables. Be wary of innocent-looking constructs such as "x++". This may appear atomic at the code layer, but it is actually non-atomic at the instruction layer, since it involves a read, followed by a computation, followed by a write.
Mitigation
Use a mutex if available, but be sure to avoid related weaknesses such as CWE-412.
Mitigation
Avoid double-checked locking (CWE-609) and other implementation errors that arise when trying to avoid the overhead of synchronization.
Mitigation
Disable interrupts or signals over critical parts of the code, but also make sure that the code does not go into a large or infinite loop.
Mitigation
Use the volatile type modifier for critical variables to avoid unexpected compiler optimization or reordering. This does not necessarily solve the synchronization problem, but it can help.
Mitigation MIT-17
Strategy: Environment Hardening
Run your code using the lowest privileges that are required to accomplish the necessary tasks [REF-76]. If possible, create isolated accounts with limited privileges that are only used for a single task. That way, a successful attack will not immediately give the attacker access to the rest of the software or its environment. For example, database applications rarely need to run as the database administrator, especially in day-to-day operations.
CAPEC-26: Leveraging Race Conditions
The adversary targets a race condition occurring when multiple processes access and manipulate the same resource concurrently, and the outcome of the execution depends on the particular order in which the access takes place. The adversary can leverage a race condition by "running the race", modifying the resource and modifying the normal execution flow. For instance, a race condition can occur while accessing a file: the adversary can trick the system by replacing the original file with their version and cause the system to read the malicious file.
CAPEC-29: Leveraging Time-of-Check and Time-of-Use (TOCTOU) Race Conditions
This attack targets a race condition occurring between the time of check (state) for a resource and the time of use of a resource. A typical example is file access. The adversary can leverage a file access race condition by "running the race", meaning that they would modify the resource between the first time the target program accesses the file and the time the target program uses the file. During that period of time, the adversary could replace or modify the file, causing the application to behave unexpectedly.