GnuTLS | malformed CCS in TLS 1.3 is discarded without an alert (#1788)

Read-only notification of GnuTLS library development activities <[email protected]>
Newsgroups gmane.comp.encryption.gpg.gnutls.devel
Message-ID <[email protected]>

Alexander Sosedkin created an issue: https://gitlab.com/gnutls/gnutls/-/issues/1788



## Description of problem:
malformed CCS in TLS 1.3 is discarded without an alert

## Version of gnutls used:
gnutls-3.8.11-5.fc43.x86_64

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

## How reproducible:
reliably

Steps to Reproduce:
 * `gnutls-serv --x509keyfile=key.pem --x509certfile=cert.pem --disable-client-cert --port=4433 --debug=10` (that 10 is important to see the 'discarding' message, its absence has initially confused me)
 * python3 scripts/test-tls13-ccs.py -p 4433 "two byte long CCS"

## Actual results:
Server logs discarding change cipher spec in TLS1.3 and waits for more data:
`|<10>| discarding change cipher spec in TLS1.3`.
The tlsfuzzer script then times out.

## Expected results:
Server validates CCS value and follows [RFC8446 Section 5](https://datatracker.ietf.org/doc/html/rfc8446#section-5):

> An implementation which receives any other change_cipher_spec value or which receives a protected change_cipher_spec record MUST abort the handshake with an "unexpected_message" alert.

## Relevant code pointers:

https://gitlab.com/gnutls/gnutls/-/blob/0c49dc6db376c2eccae98b0623dab60729d8f171/lib/record.c#L1333

## Testing:

I plan to update tlsfuzzer submodule and exclude the test initially. Then the validation could be just removing that exclusion from tests/suite/tls-fuzzer/gnutls-nocert-tls13.json.

-- 
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/issues/1788
You're receiving this email because of your account on gitlab.com.

_______________________________________________
Gnutls-devel mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnutls-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.