Incorrect handling of too big and too small Finished messages
Categories
(NSS :: Libraries, defect, P2)
Tracking
(Not tracked)
People
(Reporter: hkario, Unassigned)
Details
(Whiteboard: [tls13])
Attachments
(1 file)
Updated•6 years ago
|
Updated•3 years ago
|
Comment 1•16 days ago
|
||
tls13_VerifyFinished was sending illegal_parameter for Finished messages
with wrong-length payloads. RFC 8446 requires decode_error for length
errors.
The tlsfuzzer test-tls13-finished.py was marked exp_pass:false because it
expected decode_error but received illegal_parameter. This caused an
intermittent CI failure: when none of the wrong-length test cases were
sampled, all 42 tests passed and the exp_pass:false caused the CI runner
to mark the script as FAILED.
Padding test cases with total Finished body > MAX_HANDSHAKE_MSG_LEN (131071
bytes) are excluded because they hit a separate rejection path in
ssl3_HandleHandshake (ssl3con.c). NSS correctly sends decode_error for
those too, but the tlsfuzzer runner's generator error-handling skips the
ExpectAlert node and jumps to ExpectClose, which then unexpectedly reads
the buffered alert.
Updated•11 days ago
|
Pushed by jschanck@mozilla.com:
https://hg.mozilla.org/projects/nss/rev/683c49a0f7ed
wrong alert for malformed TLS 1.3 Finished. r=nss-reviewers,keeler
Description
•