-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
[BUG] [crash] [mrp] Receiving a mid-exchange message without ACK bit set will crash #22854
Comments
So the situation here on the server is:
I think this code is trying to protect against the mis-behavior of sending two messages in a row both of which expect an ack.... But crashing does seem a bit over the top, especially given that this can happen due to a bug on the other side of the exchange. So what should be the behavior here? Fail to send the PAKE2? Replace the message waiting for an ack for this exchange (the PBKDFResponse) with the PAKE2? @turon |
Two reasonable behaviors could be:
I tend to lean toward (1) as that would force commissioners implementations to be spec compliant in order to succeed at commissioning. Regardless of the choice, I agree that crashing/rebooting the server device based on an erroneous commissioner implementation seems wrong. |
This is a problem for commissioners too, if a buggy device sends PBKDFResponse without an ack included... Just bad all around. Option 1 would be the exchange itself dropping incoming messages that are not acknowledging anything if it has a pending message-to-be-acknowledged, right? |
…le expecting an ack. Such messages are not allowed per spec, so we should just ignore them. Fixes project-chip#22854
…le expecting an ack. (project-chip#23282) * Fix invariant violation if we get a message without piggyback ack while expecting an ack. Such messages are not allowed per spec, so we should just ignore them. Fixes project-chip#22854 * Fix tests. * Address review comment.
…le expecting an ack. (project-chip#23282) * Fix invariant violation if we get a message without piggyback ack while expecting an ack. Such messages are not allowed per spec, so we should just ignore them. Fixes project-chip#22854 * Fix tests. * Address review comment.
…le expecting an ack. (project-chip#23282) * Fix invariant violation if we get a message without piggyback ack while expecting an ack. Such messages are not allowed per spec, so we should just ignore them. Fixes project-chip#22854 * Fix tests. * Address review comment.
…le expecting an ack. (project-chip#23282) * Fix invariant violation if we get a message without piggyback ack while expecting an ack. Such messages are not allowed per spec, so we should just ignore them. Fixes project-chip#22854 * Fix tests. * Address review comment.
Reproduction steps
An erroneous client should not crash the remote server device.
Bug prevalence
Repeatable, but requires a controller that sends invalid mrp
GitHub hash of the SDK that was being used
bd6fa79
Platform
core
Platform Version(s)
No response
Anything else?
Zipped pcapng file enclosed (github doesn't accept raw pcap).
crash-pcap.zip
The text was updated successfully, but these errors were encountered: