Public bug reported: Package: openssl-1.0.2g-1ubuntu4.1 Distro: xenial
The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues. [Test case] 1. Problem in 1594748 Note: this problem was reported in upstream openssl and testcase posted there also. https://rt.openssl.org/Ticket/Display.html?id=4559 CRYPTO_set_mem_functions() always returns 0 because library initialization within fips code already calls CRYPTO_malloc() and disables it. This testcase should cause openssl to abort, but instead it returns a context. #include <stdio.h> #include <stdlib.h> #include <openssl/ssl.h> void * my_alloc(size_t n) { abort(); } void my_free(void *p) { abort(); } void * my_realloc(void *p, size_t n) { abort(); } int main(int argc, const char **argv) { const SSL_METHOD *method; SSL_CTX *ctx; CRYPTO_set_mem_functions(my_alloc, my_realloc, my_free); SSL_library_init(); method = SSLv23_client_method(); ctx = SSL_CTX_new(method); printf("Got ctx %p\n", ctx); return 0; } 2. Problem in 1593953 EC key generation allows user to generate keys using EC curves that the EC sign and verify do not support when OPENSSL_FIPS is defined. Testcase taken from lp #1593953 openssl ecparam -genkey -name Oakley-EC2N-4 will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done. Otherwise, without OPENSSL_FIPS defined, the check is not done. 3. Problem reported in 1588524 Error code being skipped... Testcase taken from lp #1588524 #include <openssl/err.h> #include <openssl/ssl.h> int main() { int rc; unsigned long fips_err; SSL_library_init(); SSL_load_error_strings(); ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); rc = FIPS_mode_set(1); fips_err = ERR_peek_last_error(); // FIPS_mode_set will return 0 on failure, which is expected if // the FIPS module is not compiled. In this case, we should then // be able to get the error code // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065) // https://wiki.openssl.org/index.php/FIPS_mode_set%28%29 printf("%d %lu\n", rc, fips_err); ERR_print_errors_fp(stdout); ERR_free_strings(); return 0; } Should report an error message. [ Regression potential ] Removing the fips patches should decrease regression potential of openssl in the main archive. ** Affects: openssl (Ubuntu) Importance: Undecided Status: New ** Description changed: + openssl-1.0.2g-1ubuntu4.1 in xenial. + The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues. [Test case] - 1. Problem in 1594748 + 1. Problem in 1594748 Note: this problem was reported in upstream openssl and testcase posted there also. https://rt.openssl.org/Ticket/Display.html?id=4559 CRYPTO_set_mem_functions() always returns 0 because library initialization within fips code already calls CRYPTO_malloc() and disables it. This testcase should cause openssl to abort, but instead it returns a context. #include <stdio.h> #include <stdlib.h> #include <openssl/ssl.h> void * my_alloc(size_t n) { abort(); } void my_free(void *p) { abort(); } void * my_realloc(void *p, size_t n) { abort(); } int main(int argc, const char **argv) { - const SSL_METHOD *method; - SSL_CTX *ctx; - CRYPTO_set_mem_functions(my_alloc, my_realloc, my_free); - SSL_library_init(); - method = SSLv23_client_method(); - ctx = SSL_CTX_new(method); - printf("Got ctx %p\n", ctx); - return 0; + const SSL_METHOD *method; + SSL_CTX *ctx; + CRYPTO_set_mem_functions(my_alloc, my_realloc, my_free); + SSL_library_init(); + method = SSLv23_client_method(); + ctx = SSL_CTX_new(method); + printf("Got ctx %p\n", ctx); + return 0; } 2. Problem in 1593953 EC key generation allows user to generate keys using EC curves that the EC sign and verify do not support when OPENSSL_FIPS is defined. Testcase taken from lp #1593953 openssl ecparam -genkey -name Oakley-EC2N-4 will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done. Otherwise, without OPENSSL_FIPS defined, the check is not done. 3. Problem reported in 1588524 Error code being skipped... Testcase taken from lp #1588524 #include <openssl/err.h> #include <openssl/ssl.h> int main() { - int rc; - unsigned long fips_err; - SSL_library_init(); - SSL_load_error_strings(); - ERR_load_crypto_strings(); - OpenSSL_add_all_algorithms(); - rc = FIPS_mode_set(1); - fips_err = ERR_peek_last_error(); + int rc; + unsigned long fips_err; + SSL_library_init(); + SSL_load_error_strings(); + ERR_load_crypto_strings(); + OpenSSL_add_all_algorithms(); + rc = FIPS_mode_set(1); + fips_err = ERR_peek_last_error(); - // FIPS_mode_set will return 0 on failure, which is expected if - // the FIPS module is not compiled. In this case, we should then - // be able to get the error code - // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065) - // https://wiki.openssl.org/index.php/FIPS_mode_set%28%29 - printf("%d %lu\n", rc, fips_err); - ERR_print_errors_fp(stdout); + // FIPS_mode_set will return 0 on failure, which is expected if + // the FIPS module is not compiled. In this case, we should then + // be able to get the error code + // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065) + // https://wiki.openssl.org/index.php/FIPS_mode_set%28%29 + printf("%d %lu\n", rc, fips_err); + ERR_print_errors_fp(stdout); - ERR_free_strings(); - return 0; + ERR_free_strings(); + return 0; } Should report an error message. - [ Regression potential ] Removing the fips patches should decrease regression potential of openssl in the main archive. ** Description changed: - openssl-1.0.2g-1ubuntu4.1 in xenial. + Package: openssl-1.0.2g-1ubuntu4.1 + Distro: xenial The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues. [Test case] 1. Problem in 1594748 Note: this problem was reported in upstream openssl and testcase posted there also. https://rt.openssl.org/Ticket/Display.html?id=4559 CRYPTO_set_mem_functions() always returns 0 because library initialization within fips code already calls CRYPTO_malloc() and disables it. This testcase should cause openssl to abort, but instead it returns a context. #include <stdio.h> #include <stdlib.h> #include <openssl/ssl.h> void * my_alloc(size_t n) { abort(); } void my_free(void *p) { abort(); } void * my_realloc(void *p, size_t n) { abort(); } int main(int argc, const char **argv) { const SSL_METHOD *method; SSL_CTX *ctx; CRYPTO_set_mem_functions(my_alloc, my_realloc, my_free); SSL_library_init(); method = SSLv23_client_method(); ctx = SSL_CTX_new(method); printf("Got ctx %p\n", ctx); return 0; } 2. Problem in 1593953 EC key generation allows user to generate keys using EC curves that the EC sign and verify do not support when OPENSSL_FIPS is defined. Testcase taken from lp #1593953 openssl ecparam -genkey -name Oakley-EC2N-4 will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done. Otherwise, without OPENSSL_FIPS defined, the check is not done. 3. Problem reported in 1588524 Error code being skipped... Testcase taken from lp #1588524 #include <openssl/err.h> #include <openssl/ssl.h> int main() { int rc; unsigned long fips_err; SSL_library_init(); SSL_load_error_strings(); ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); rc = FIPS_mode_set(1); fips_err = ERR_peek_last_error(); // FIPS_mode_set will return 0 on failure, which is expected if // the FIPS module is not compiled. In this case, we should then // be able to get the error code // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065) // https://wiki.openssl.org/index.php/FIPS_mode_set%28%29 printf("%d %lu\n", rc, fips_err); ERR_print_errors_fp(stdout); ERR_free_strings(); return 0; } Should report an error message. [ Regression potential ] Removing the fips patches should decrease regression potential of openssl in the main archive. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to openssl in Ubuntu. https://bugs.launchpad.net/bugs/1614210 Title: Remove incomplete fips in openssl in xenial. Status in openssl package in Ubuntu: New Bug description: Package: openssl-1.0.2g-1ubuntu4.1 Distro: xenial The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues. [Test case] 1. Problem in 1594748 Note: this problem was reported in upstream openssl and testcase posted there also. https://rt.openssl.org/Ticket/Display.html?id=4559 CRYPTO_set_mem_functions() always returns 0 because library initialization within fips code already calls CRYPTO_malloc() and disables it. This testcase should cause openssl to abort, but instead it returns a context. #include <stdio.h> #include <stdlib.h> #include <openssl/ssl.h> void * my_alloc(size_t n) { abort(); } void my_free(void *p) { abort(); } void * my_realloc(void *p, size_t n) { abort(); } int main(int argc, const char **argv) { const SSL_METHOD *method; SSL_CTX *ctx; CRYPTO_set_mem_functions(my_alloc, my_realloc, my_free); SSL_library_init(); method = SSLv23_client_method(); ctx = SSL_CTX_new(method); printf("Got ctx %p\n", ctx); return 0; } 2. Problem in 1593953 EC key generation allows user to generate keys using EC curves that the EC sign and verify do not support when OPENSSL_FIPS is defined. Testcase taken from lp #1593953 openssl ecparam -genkey -name Oakley-EC2N-4 will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done. Otherwise, without OPENSSL_FIPS defined, the check is not done. 3. Problem reported in 1588524 Error code being skipped... Testcase taken from lp #1588524 #include <openssl/err.h> #include <openssl/ssl.h> int main() { int rc; unsigned long fips_err; SSL_library_init(); SSL_load_error_strings(); ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); rc = FIPS_mode_set(1); fips_err = ERR_peek_last_error(); // FIPS_mode_set will return 0 on failure, which is expected if // the FIPS module is not compiled. In this case, we should then // be able to get the error code // CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065) // https://wiki.openssl.org/index.php/FIPS_mode_set%28%29 printf("%d %lu\n", rc, fips_err); ERR_print_errors_fp(stdout); ERR_free_strings(); return 0; } Should report an error message. [ Regression potential ] Removing the fips patches should decrease regression potential of openssl in the main archive. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1614210/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp