Backport 1.3: check if iv is zero in gcm.
1) found by roberto in mbedtls forum
2) if iv_len is zero, return an error
3) add tests for invalid parameters
diff --git a/ChangeLog b/ChangeLog
index ba58a25..5243ca7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,22 @@
= mbed TLS 1.3.21 branch released xxxx-xx-xx
+Security
+ * Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
+ ssl_get_verify_result() would incorrectly return 0 when the peer's
+ X.509 certificate chain had more than POLARSSL_X509_MAX_INTERMEDIATE_CA
+ (default: 8) intermediates, even when it was not trusted. Could be
+ triggered remotely on both sides. (With auth_mode set to required
+ (default), the handshake was correctly aborted.)
+
+API Changes
+ * Certificate verification functions now set flags to -1 in case the full
+ chain was not verified due to an internal error (including in the verify
+ callback) or chain length limitations.
+ * With authmode set to optional, handshake is now aborted if the
+ verification of the peer's certificate failed due to an overlong chain or
+ a fatal error in the vrfy callback.
+
Bugfix
* Add a check if iv_len is zero, and return an error if it is zero. reported
by roberto. #716
@@ -25,23 +41,7 @@
to bypass the version verification check. Found by Peng Li/Yueh-Hsun Lin,
KNOX Security, Samsung Research America
-Security
- * Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
- ssl_get_verify_result() would incorrectly return 0 when the peer's
- X.509 certificate chain had more than POLARSSL_X509_MAX_INTERMEDIATE_CA
- (default: 8) intermediates, even when it was not trusted. Could be
- triggered remotely on both sides. (With auth_mode set to required
- (default), the handshake was correctly aborted.)
-
-API Changes
- * Certificate verification functions now set flags to -1 in case the full
- chain was not verified due to an internal error (including in the verify
- callback) or chain length limitations.
- * With authmode set to optional, handshake is now aborted if the
- verification of the peer's certificate failed due to an overlong chain or
- a fatal error in the vrfy callback.
-
-= mbed TLS 1.3.20 released 2017-06-21
+= mbed TLS 1.3.20 branch released 2017-06-21
Security
* Fixed unlimited overread of heap-based buffer in ssl_read().