Lucene search

K
githubGitHub Advisory DatabaseGHSA-7V7M-PCW5-H3CG
HistoryMay 20, 2024 - 5:49 p.m.

Pusher Service Channel Authentication Bypass

2024-05-2017:49:10
CWE-74
GitHub Advisory Database
github.com
8
pusher
private channels
authentication
vulnerability
authorization
api

7.2 High

AI Score

Confidence

Low

The service offered by Pusher provides β€œprivate” channels with an authentication mechanism that restricts subscription access. The decision on allowing subscriptions to private channels is delegated to customers, who implement an authentication endpoint. End-users request a token from this endpoint to join a specific channel. The token is an HMAC signature of the end-user’s connection ID (socket_id) and the desired channel.

The issue arises from a lack of validation in the libraries provided to customers. This vulnerability allows a malicious end-user to submit a malformed socket_id field, leading the customer to unknowingly sign a string. This signed string grants access to a different private channel than the one the end-user is ostensibly requesting. Consequently, a malicious end-user, with permission to subscribe to one private channel, can forge permission for any private channel owned by the same customer.

Additionally, the HTTP API is secured by requiring a signature with each request, generated by the customer’s secret key. In specific cases, a malicious end-user may deceive a customer into signing a value for socket_id, effectively authenticating an API request to Pusher.

Affected configurations

Vulners
Node
pusherpusher-php-serverRange<2.2.1
CPENameOperatorVersion
pusher/pusher-php-serverlt2.2.1

7.2 High

AI Score

Confidence

Low