{"id":"CVE-2026-63405","summary":"AnyCable: Pusher REST API Does Not Verify Request Body MD5 Enabling Signed-Request Replay with Arbitrary Body","details":"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.","aliases":["GHSA-5p54-whvp-x327"],"modified":"2026-09-20T11:46:33.482451493Z","published":"2026-09-18T16:47:37.120Z","database_specific":{"cwe_ids":["CWE-345"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63405.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/anycable/anycable/releases/tag/v1.6.15"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63405.json"},{"type":"ADVISORY","url":"https://github.com/anycable/anycable/security/advisories/GHSA-5p54-whvp-x327"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63405"},{"type":"FIX","url":"https://github.com/anycable/anycable/commit/d2cbadec792f038f4695c84a65c0d957b0fde72c"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/anycable/anycable","events":[{"introduced":"0"},{"fixed":"d2cbadec792f038f4695c84a65c0d957b0fde72c"},{"fixed":"6e7591c009e53186b64ab013d10ab26aac9e7899"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.6.15"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.6.14","v1.6.13","v1.6.12","v1.6.11","v1.6.10","v1.6.9","v1.6.9-pre.1","v1.6.8","v1.6.7","v1.6.2","v1.6.1","v1.6.6","v1.6.5","v1.6.4","v1.6.3","v1.6.0","v1.6.0-rc.5","v1.6.0-rc.4","v1.6.0-rc.3","v1.6.0-rc.2","v1.6.0-rc.1","v1.5.6","v1.5.5","v1.5.4","v1.5.3","v1.5.2.1","v1.5.0-rc.1","v1.4.8","v1.4.7","v1.4.6","v1.4.5","v1.4.4.1","v1.4.0-rc.3","v1.4.0-rc.2","v1.4.0-rc.1","v1.4.0.rc1","v1.0.5","v1.0.4","v0.6.0-preview5","v0.6.0-preview4","v0.6.0-preview3","v0.6.0-preview2","v0.6.0-preview1","v0.5.4","v0.5.3","0.5.1","0.5.0.1","0.5.0","0.2.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63405.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"}]}