Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version Negotiation when Version = 0 #816

Closed
MikeBishop opened this issue Oct 2, 2017 · 7 comments
Closed

Version Negotiation when Version = 0 #816

MikeBishop opened this issue Oct 2, 2017 · 7 comments
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@MikeBishop
Copy link
Contributor

The version 0x00000000 is reserved to represent an invalid version, but what is the expected behavior when a server receives it? Should it initiate version negotiation, or should it reject the incoming message entirely?

@MikeBishop MikeBishop added -transport design An issue that affects the design of the protocol; resolution requires consensus. labels Oct 2, 2017
@martinthomson
Copy link
Member

We don't need special handling for this.

@janaiyengar
Copy link
Contributor

I agree -- I think this is fine as is. A server will send a VN packet in response to it, or if it's seen in a VN packet, it will simply be ignored. I'll close this, but @MikeBishop please reopen if you think we should discuss this further.

@MikeBishop
Copy link
Contributor Author

A server will send a VN packet in response to it...

The origin of this issue is that not all current implementations do send VN in response to version 0, so there is some difference of interpretation in the spec. Maybe we decide that the spec is perfectly clear and any implementation behaving that way simply has a bug -- that's a reasonable position. But I think it's also a reasonable reading of the current spec to ignore or CONNECTION_CLOSE a packet purporting to be in "an invalid version."

@MikeBishop MikeBishop reopened this Oct 13, 2017
@janaiyengar
Copy link
Contributor

I see. You're suggesting that we should articulate one precise behavior in this case. I probably don't really care which one, but I'm fine with that.

@martinthomson
Copy link
Member

OBE. See #827 for a more a request to address the remaining issue (that clients ignore unknown, unexpected, or unsupported versions).

@nibanks
Copy link
Member

nibanks commented Nov 30, 2018

I'd like to reopen this issue, because if two servers support enough versions to produce really large VN packets, then an attacker could get them to continually send VN back and forth. So I think a server should silently drop a version 0 packet that it receives.

@martinthomson
Copy link
Member

Nick, I think that a new issue is appropriate. Ignoring Version Negotiation if you aren't making a connection seems good, obvious even. I would take a PR to clarify that if you have the time.

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

5 participants