Negotiating DTLS without SRTP extension results in random crashes
Categories
(Core :: WebRTC: Networking, defect, P2)
Tracking
()
People
(Reporter: drno, Assigned: drno)
Details
(Keywords: csectype-nullptr, sec-audit, Whiteboard: [adv-main68-])
Attachments
(1 file)
| Assignee | ||
Comment 1•7 years ago
|
||
Marked this as sec bug, because crashes appear all over the place, e.g.:
https://crash-stats.mozilla.com/report/index/31b24d3a-df2e-4e9a-961b-13edd0190315
https://crash-stats.mozilla.com/report/index/22e4740e-7c30-4f83-9777-b5ad80190315
https://crash-stats.mozilla.com/report/index/0abfcb1a-e347-44f8-8653-be97b0190315
https://crash-stats.mozilla.com/report/index/d321fd13-e67b-40d2-b7eb-f5ec20190315
https://crash-stats.mozilla.com/report/index/169e2d63-d3ad-4190-b1aa-425730190315
| Assignee | ||
Comment 2•7 years ago
|
||
| Assignee | ||
Comment 3•7 years ago
|
||
The problem appears to be that when we fail to negotiate the use_srtp extension the transportlayersrtp state gets set to error. But that error doesn't get propagated through the stack, as transportlayerdtls reports success. And transportlayersrtp only refuses to receive when being in an error state but keeps trying to send.
Proper handling in the sense that DTLS should fail if the upper layers need it, but can success if use_srtp is not needed because of a data channel only connection should be done in bug 1520692.
Comment 4•7 years ago
|
||
All of the crashes in comment 1 are nullptr crashes as far as I can tell.
Comment 5•7 years ago
|
||
I'm marking this as audit because they all look like null derefs, but adjust as needed.
Updated•7 years ago
|
| Assignee | ||
Comment 6•7 years ago
|
||
I double checked the code in transportlayersrtp and I'm pretty sure this is the only corner case which wasn't covered yet. So I'm opening this bug now for the public.
Comment 8•7 years ago
|
||
| bugherder | ||
Comment 9•7 years ago
|
||
Nils, do you think that this is a fix we should uplift to 67 beta?
Updated•7 years ago
|
Comment 10•7 years ago
|
||
(In reply to Pascal Chevrel:pascalc from comment #9)
Nils, do you think that this is a fix we should uplift to 67 beta?
Nils, ping :)
| Assignee | ||
Comment 11•7 years ago
|
||
Sorry for the late reply.
As endpoints which try to negotiate something like this are pretty rare I think it's fine to let this ride the trains.
Updated•6 years ago
|
Description
•