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

DTLS: Retransmission handled incorrectly ("Received unexpected record version") #2316

Open
Thiesius opened this issue Apr 2, 2020 · 4 comments
Labels

Comments

@Thiesius
Copy link

Thiesius commented Apr 2, 2020

In the beginning of the handshake the client sends ClientHello message with DTLS Record Version 1.0. The version of the inner message is 1.2. Server sets pending state to DTLS version 1.2. Client meanwhile retransmits the record again, thinking the packet got lost. Retransmitted message arrives to the server but the record version is checked against the pending state and obviously 1.0 != 1.2. As the consequence connection gets alerted while the message probably should be just dropped.

I created some extra info from our test cert environment.

This is the area of code causing the issue. I have added some vars to watch.
watch

This zipfile contains wireshark dump of the handshake and dumped m_record_buf (which proves that it matches with the ClientHello message in the wireshark)
dumps.zip

@randombit
Copy link
Owner

Makes sense and yes for DTLS we should just drop it instead of alerting.

@randombit randombit added the bug label Apr 3, 2020
@randombit
Copy link
Owner

Won't be fixed in time for 2.14.0 (release next Monday) but will address this in 2.15

nametoolong pushed a commit to nametoolong/botan that referenced this issue Apr 27, 2020
@seppy87
Copy link

seppy87 commented Jul 7, 2020

I am still receiving this Exception in 2.15 :/

@seppy87
Copy link

seppy87 commented Jul 7, 2020

sorry found the error. ok it works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants