Skip to content

Invalid RSV bits regardless of compression mode #339

Closed as not planned
Closed as not planned
@ZackaryWelch

Description

@ZackaryWelch

When reading from a websocket client (specifically the python package websocket), I get an error from the websocket connection's read:

failed to read: WebSocket closed: received header with unexpected rsv bits set: true:false:true

This is from an accepted connection with compression disabled. When I set compression to NoContextTakeover, I get the following:

failed to read: WebSocket closed: received header with unexpected rsv bits set: false:false:true

Finally, when compression is set to ContextTakeover:

failed to read: WebSocket closed: sent close frame: status = StatusPolicyViolation and reason = "unexpected data message"

It should be noted the client does not support permessage-deflate. I'm not sure why RSV1 is enabled when compression is disabled, and then disabled when it is enabled. I also do not know why RSV3 is set. The client does not support any RSV bits, and it is clear from source that this library does not support RSV2 or RSV3 at all,l and RSV1 only if compression is enabled.

These bits may also be misread garbage, As I've also seen "false:true:false", which would explain why the settings do not make sense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions