[gnutls-devel] GnuTLS | Incorrect handling of session resumption with changed ClientHello (#657)

Development of GNU's TLS library gnutls-devel at lists.gnutls.org
Wed Dec 19 15:53:59 CET 2018


New Issue was created.

Issue 657: https://gitlab.com/gnutls/gnutls/issues/657
Author:    Hubert Kario
Assignee:  

## Description of problem:
When a client tries to resume a TLS 1.2 session (using session ID) without advertising cipher used in previous session, gnutls continues resumption while picking cipher from the resumed session. This is RFC 5246 violation.

## Version of gnutls used:
435437ad94723612deb1e238379d457b2456d83f

## Distributor of gnutls (e.g., Ubuntu, Fedora, RHEL)
manual compile on Fedora

## How reproducible:
always

Steps to Reproduce:

 * run tlsfuzzer `test-resumption-with-wrong-ciphers.py` from https://github.com/tomato42/tlsfuzzer/pull/487

## Actual results:
```
sanity ...
OK

sanity - session ID resume ...
OK

resumption of safe session with NULL cipher ...
Error encountered while processing node <tlsfuzzer.expect.ExpectAlert object at 0x7f58a157b3d0> (child: <tlsfuzzer.expect.ExpectClose object at 0x7f58a157b410>) with last message being: <tlslite.messages.Message object at 0x7f58a157b950>
Error while processing
Traceback (most recent call last):
  File "scripts/test-resumption-with-wrong-ciphers.py", line 276, in main
    runner.run()
  File "/home/hkario/dev/tlsfuzzer/tlsfuzzer/runner.py", line 217, in run
    RecordHeader2)))
AssertionError: Unexpected message from peer: Handshake(server_hello)

sanity - aes-256 cipher ...
OK

resumption with cipher from old CH but not selected by server ...
Error encountered while processing node <tlsfuzzer.expect.ExpectAlert object at 0x7f58a15f3e50> (child: <tlsfuzzer.expect.ExpectClose object at 0x7f58a15f3e90>) with last message being: <tlslite.messages.Message object at 0x7f58a15b7cd0>
Error while processing
Traceback (most recent call last):
  File "scripts/test-resumption-with-wrong-ciphers.py", line 276, in main
    runner.run()
  File "/home/hkario/dev/tlsfuzzer/tlsfuzzer/runner.py", line 217, in run
    RecordHeader2)))
AssertionError: Unexpected message from peer: Handshake(server_hello)

sanity ...
OK

Misbehaving client session resumption script
Check if server detects a misbehaving client in session resumption

Reproducer for CVE-2010-4180

version: 1

Test end
successful: 4
failed: 2
  'resumption of safe session with NULL cipher'
  'resumption with cipher from old CH but not selected by server'
```

## Expected results:

all pass

If the server recognised the session, it needs to verify that the new Client Hello can be used to resume old session and abort with `illegal_parameter` if it isn't.

-- 
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/issues/657
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnutls-devel/attachments/20181219/3ed8c0aa/attachment.html>


More information about the Gnutls-devel mailing list