{"id":"GHSA-5gqc-qhrj-9xw8","summary":"Oxia affected by server crash via race condition in session heartbeat handling","details":"### Summary\nA race condition between session heartbeat processing and session closure can cause the server to panic with `send on closed channel`. The `heartbeat()` method uses a blocking channel send while holding a mutex, and under specific timing with concurrent `close()` calls, this can lead to either a deadlock (channel buffer full) or a panic (send on closed channel after TOCTOU gap in `KeepAlive`).\n\n### Impact\nA remote client can trigger a server crash by sending rapid `KeepAlive` requests while a session is expiring or being closed. This is a denial-of-service vulnerability that crashes the entire data server process.\n\nAll versions are affected.\n\n### Details\nIn `oxiad/dataserver/controller/lead/session.go`, the `heartbeat()` method performs a blocking `s.heartbeatCh \u003c- true` send. If the channel buffer is full (size 1), this blocks while holding the session mutex, preventing `close()` from acquiring the lock to close the channel — a deadlock.\n\nAdditionally, in `session_manager.go`, `KeepAlive()` releases the session manager's read lock before calling `heartbeat()`, creating a TOCTOU window where the session can be removed and closed between the lookup and the heartbeat call.\n\n### Patches\nFixed by changing `heartbeat()` to use a non-blocking `select` with a `default` case, and by holding the session manager read lock through the entire `KeepAlive()` operation.\n\n### Workarounds\nNo workaround available.","aliases":["CVE-2026-40943","GO-2026-5145"],"modified":"2026-06-25T18:56:27.113081922Z","published":"2026-04-14T23:15:00Z","database_specific":{"github_reviewed":true,"github_reviewed_at":"2026-04-14T23:15:00Z","nvd_published_at":"2026-04-21T22:16:19Z","cwe_ids":["CWE-362"],"severity":"HIGH"},"references":[{"type":"WEB","url":"https://github.com/oxia-db/oxia/security/advisories/GHSA-5gqc-qhrj-9xw8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40943"},{"type":"PACKAGE","url":"https://github.com/oxia-db/oxia"}],"affected":[{"package":{"name":"github.com/oxia-db/oxia","ecosystem":"Go","purl":"pkg:golang/github.com/oxia-db/oxia"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.16.2"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 0.16.1","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/04/GHSA-5gqc-qhrj-9xw8/GHSA-5gqc-qhrj-9xw8.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"}]}