{"id":"CVE-2026-63405","published":"2026-09-18T17:16:59.463","lastModified":"2026-09-24T21:25:27.050","description":"AnyCable is a realtime server for reliable two-way communication that supports any backend. Prior to 1.6.15, the Pusher-compatible REST API in pusher/http.go includes the caller-supplied body_md5 value in the HMAC input but does not calculate the digest of the received request body or compare it with the signed value. An attacker who obtains a legitimate signed POST request can retain its query parameters and auth_signature while replacing the body, causing Handler and handleEvents to accept and broadcast attacker-selected event content. The absence of an auth_timestamp freshness check also allows the captured signature to be replayed indefinitely. This can forge server-side events, modify application state, or deliver attacker-controlled messages to WebSocket clients within the signed request's application context. This issue is fixed in version 1.6.15.","cvssScore":5.9,"cvssSeverity":"MEDIUM","cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N","cwes":["CWE-345"],"vendors":[],"products":[],"references":[{"url":"https://github.com/anycable/anycable/commit/d2cbadec792f038f4695c84a65c0d957b0fde72c","tags":[]},{"url":"https://github.com/anycable/anycable/releases/tag/v1.6.15","tags":[]},{"url":"https://github.com/anycable/anycable/security/advisories/GHSA-5p54-whvp-x327","tags":[]},{"url":"https://github.com/anycable/anycable/security/advisories/GHSA-5p54-whvp-x327","tags":[]}],"exploitRefs":[{"url":"https://github.com/anycable/anycable/commit/d2cbadec792f038f4695c84a65c0d957b0fde72c","tags":[]},{"url":"https://github.com/anycable/anycable/releases/tag/v1.6.15","tags":[]},{"url":"https://github.com/anycable/anycable/security/advisories/GHSA-5p54-whvp-x327","tags":[]},{"url":"https://github.com/anycable/anycable/security/advisories/GHSA-5p54-whvp-x327","tags":[]}],"hasPoc":true,"ai":null}