Module differential_rfc_violations

Module differential_rfc_violations 

Source

Functions§

create_corpus
The differential_rfc corpus: reproducers for RFC violations found via differential fuzzing.
rfc_violation_alert_bad_key_share
A wolfSSL TLS 1.3 Server receiving a ClientHello with a malformed KeyShare extension (e.g. with no key inside) returns a IllegalParameter alert instead of a DecodeError alert. https://github.com/wolfSSL/wolfssl/issues/9640
rfc_violation_alert_unsupported_cipher_suite
RFC violation triggering bad wolfSSL alert when SH contains unsupported cipher (HandshakeFailure instead of IllegalParameter) https://github.com/wolfSSL/wolfssl/issues/9639
rfc_violation_bad_alert_non_requested_psk
A WolfSSL TLS 1.3 client receiving a ServerHello with a PresharedKey extension when the client hasn’t requested the use of a preshared key, returns an IllegalParameter Alert instead of UnsupportedExtension https://github.com/wolfSSL/wolfssl/issues/9503
rfc_violation_changing_cipher_after_hrr
A WolfSSL TLS 1.3 client receiving a HelloRetryRequest followed by a ServerHello with another cipher (eg. using TLS_AES_256_GCM_SHA384 in HRR and TLS_AES_128_GCM_SHA256 in ServerHello), will continue the handshake while it should reject the ServerHello with an appropriate error. https://github.com/wolfSSL/wolfssl/issues/9331
rfc_violation_client_changing_cipher_hrr
A WolfSSL TLS 1.3 server receiving a second ClientHello after a HelloRetryRequest with another cipher, after the Server has selected a cipher (eg. using TLS_AES_256_GCM_SHA384 in first CH and TLS_AES_128_GCM_SHA256 in the second), will continue the handshake while it should reject the second ClientHello with an appropriate error.
rfc_violation_incorrect_extension_in_sh
An OpenSSL TLS 1.3 client receiving a ServerHello with a StatusRequest extension returns an UnsupportedExtension Alert instead of an IllegalParameter alert https://github.com/openssl/openssl/issues/29353
rfc_violation_incorrect_keyshare_after_hrr
A WolfSSL TLS 1.3 server sending a HelloRetryRequest requesting a specific KeyShare can accept a second ClientHello with a KeyShare not present in the HelloRetryRequest. https://github.com/wolfSSL/wolfssl/issues/9362
rfc_violation_missing_alert_out_of_order_encrypted
A WolfSSL TLS 1.3 client receiving encrypted out of order messages will detect the error and log “Out of order message, fatal” without sending an alert. https://github.com/wolfSSL/wolfssl/issues/9531
rfc_violation_missing_supported_group
WolfSSL can respond to a ClientHello without a SupportedGroup extension if the CH contains a keyshare. This behavior happens only when setting the list of supported groups on the server using wolfSSL_set_groups or wolfSSL_CTX_set1_groups_list or using –force-curve in the example CLI. https://github.com/wolfSSL/wolfssl/issues/9521 https://github.com/wolfSSL/wolfssl/issues/9247
rfc_violation_no_alert_duplicate_extension
A WolfSSL TLS 1.3 client receiving a ServerHello containing a duplicated extension (e.g. two SupportedVersions) abort the connection but doesn’t send an Alert. https://github.com/wolfSSL/wolfssl/issues/9520
rfc_violation_no_change_after_hrr
When receiving a HelloRetryRequest (ServerHello with magic random value) which should trigger no change in the ClientHello (the HRR only contains a SupportedVersion extension), WolfSSL TLS 1.3 client sends a ClientHello that is identical to its first ClientHello. https://github.com/wolfSSL/wolfssl/issues/9247