| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d3441ff commit 48d643f
158 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -28,12 +28,78 @@ breaking changes, and mappings for the large list of deprecated functions. | |||
| 28 | 28 | ||
| 29 | 29 | [Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod | |
| 30 | 30 | ||
| 31 | - ### Changes between 3.0.13 and 3.0.13+quic [30 Jan 2024] | ||
| 31 | + ### Changes between 3.0.14 and 3.0.14+quic [7 Jun 2024] | ||
| 32 | 32 | ||
| 33 | 33 | * Add QUIC API support from BoringSSL | |
| 34 | 34 | ||
| 35 | 35 | *Todd Short* | |
| 36 | 36 | ||
| 37 | + ### Changes between 3.0.13 and 3.0.14 [4 Jun 2024] | ||
| 38 | + | ||
| 39 | + * Fixed potential use after free after SSL_free_buffers() is called. | ||
| 40 | + | ||
| 41 | + The SSL_free_buffers function is used to free the internal OpenSSL | ||
| 42 | + buffer used when processing an incoming record from the network. | ||
| 43 | + The call is only expected to succeed if the buffer is not currently | ||
| 44 | + in use. However, two scenarios have been identified where the buffer | ||
| 45 | + is freed even when still in use. | ||
| 46 | + | ||
| 47 | + The first scenario occurs where a record header has been received | ||
| 48 | + from the network and processed by OpenSSL, but the full record body | ||
| 49 | + has not yet arrived. In this case calling SSL_free_buffers will succeed | ||
| 50 | + even though a record has only been partially processed and the buffer | ||
| 51 | + is still in use. | ||
| 52 | + | ||
| 53 | + The second scenario occurs where a full record containing application | ||
| 54 | + data has been received and processed by OpenSSL but the application has | ||
| 55 | + only read part of this data. Again a call to SSL_free_buffers will | ||
| 56 | + succeed even though the buffer is still in use. | ||
| 57 | + | ||
| 58 | + ([CVE-2024-4741]) | ||
| 59 | + | ||
| 60 | + *Matt Caswell* | ||
| 61 | + | ||
| 62 | + * Fixed an issue where checking excessively long DSA keys or parameters may | ||
| 63 | + be very slow. | ||
| 64 | + | ||
| 65 | + Applications that use the functions EVP_PKEY_param_check() or | ||
| 66 | + EVP_PKEY_public_check() to check a DSA public key or DSA parameters may | ||
| 67 | + experience long delays. Where the key or parameters that are being checked | ||
| 68 | + have been obtained from an untrusted source this may lead to a Denial of | ||
| 69 | + Service. | ||
| 70 | + | ||
| 71 | + To resolve this issue DSA keys larger than OPENSSL_DSA_MAX_MODULUS_BITS | ||
| 72 | + will now fail the check immediately with a DSA_R_MODULUS_TOO_LARGE error | ||
| 73 | + reason. | ||
| 74 | + | ||
| 75 | + ([CVE-2024-4603]) | ||
| 76 | + | ||
| 77 | + *Tomáš Mráz* | ||
| 78 | + | ||
| 79 | + * Fixed an issue where some non-default TLS server configurations can cause | ||
| 80 | + unbounded memory growth when processing TLSv1.3 sessions. An attacker may | ||
| 81 | + exploit certain server configurations to trigger unbounded memory growth that | ||
| 82 | + would lead to a Denial of Service | ||
| 83 | + | ||
| 84 | + This problem can occur in TLSv1.3 if the non-default SSL_OP_NO_TICKET option | ||
| 85 | + is being used (but not if early_data is also configured and the default | ||
| 86 | + anti-replay protection is in use). In this case, under certain conditions, | ||
| 87 | + the session cache can get into an incorrect state and it will fail to flush | ||
| 88 | + properly as it fills. The session cache will continue to grow in an unbounded | ||
| 89 | + manner. A malicious client could deliberately create the scenario for this | ||
| 90 | + failure to force a Denial of Service. It may also happen by accident in | ||
| 91 | + normal operation. | ||
| 92 | + | ||
| 93 | + ([CVE-2024-2511]) | ||
| 94 | + | ||
| 95 | + *Matt Caswell* | ||
| 96 | + | ||
| 97 | + * New atexit configuration switch, which controls whether the OPENSSL_cleanup | ||
| 98 | + is registered when libcrypto is unloaded. This can be used on platforms | ||
| 99 | + where using atexit() from shared libraries causes crashes on exit. | ||
| 100 | + | ||
| 101 | + *Randall S. Becker* | ||
| 102 | + | ||
| 37 | 103 | ### Changes between 3.0.12 and 3.0.13 [30 Jan 2024] | |
| 38 | 104 | ||
| 39 | 105 | * A file in PKCS12 format can contain certificates and keys and may come from | |
@@ -19830,6 +19896,9 @@ ndif | |||
| 19830 | 19896 | ||
| 19831 | 19897 | <!-- Links --> | |
| 19832 | 19898 | ||
| 19899 | + [CVE-2024-4741]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4741 | ||
| 19900 | + [CVE-2024-4603]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4603 | ||
| 19901 | + [CVE-2024-2511]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-2511 | ||
| 19833 | 19902 | [CVE-2024-0727]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-0727 | |
| 19834 | 19903 | [CVE-2023-6237]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-6237 | |
| 19835 | 19904 | [CVE-2023-6129]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-6129 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,7 +9,7 @@ Development is done on GitHub in the [openssl/openssl] repository. | |||
| 9 | 9 | ||
| 10 | 10 | [openssl/openssl]: <https://github.com/openssl/openssl> | |
| 11 | 11 | ||
| 12 | - To request new a feature, ask a question, or report a bug, | ||
| 12 | + To request a new feature, ask a question, or report a bug, | ||
| 13 | 13 | please open an [issue on GitHub](https://github.com/openssl/openssl/issues). | |
| 14 | 14 | ||
| 15 | 15 | To submit a patch or implement a new feature, please open a | |
@@ -67,7 +67,8 @@ guidelines: | |||
| 67 | 67 | often. We do not accept merge commits, you will have to remove them | |
| 68 | 68 | (usually by rebasing) before it will be acceptable. | |
| 69 | 69 | ||
| 70 | - 4. Code provided should follow our [coding style] and compile without warnings. | ||
| 70 | + 4. Code provided should follow our [coding style] and [documentation policy] | ||
| 71 | + and compile without warnings. | ||
| 71 | 72 | There is a [Perl tool](util/check-format.pl) that helps | |
| 72 | 73 | finding code formatting mistakes and other coding style nits. | |
| 73 | 74 | Where `gcc` or `clang` is available, you should use the | |
@@ -77,6 +78,7 @@ guidelines: | |||
| 77 | 78 | whenever a PR is created or updated by committers. | |
| 78 | 79 | ||
| 79 | 80 | [coding style]: https://www.openssl.org/policies/technical/coding-style.html | |
| 81 | + [documentation policy]: https://openssl.org/policies/technical/documentation-policy.html | ||
| 80 | 82 | ||
| 81 | 83 | 5. When at all possible, code contributions should include tests. These can | |
| 82 | 84 | either be added to an existing test, or completely new. Please see | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -784,7 +784,14 @@ my %targets = ( | |||
| 784 | 784 | asm_arch => 'aarch64', | |
| 785 | 785 | perlasm_scheme => "linux64", | |
| 786 | 786 | }, | |
| 787 | - | ||
| 787 | + "linux-arm64ilp32-clang" => { # clang config abi by --target | ||
| 788 | + inherit_from => [ "linux-generic32" ], | ||
| 789 | + CC => "clang", | ||
| 790 | + CXX => "clang++", | ||
| 791 | + bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", | ||
| 792 | + asm_arch => 'aarch64', | ||
| 793 | + perlasm_scheme => "linux64", | ||
| 794 | + }, | ||
| 788 | 795 | "linux-mips32" => { | |
| 789 | 796 | # Configure script adds minimally required -march for assembly | |
| 790 | 797 | # support, if no -march was specified at command line. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -49,16 +49,16 @@ my %targets = ( | |||
| 49 | 49 | # | |
| 50 | 50 | "iphoneos-cross" => { | |
| 51 | 51 | inherit_from => [ "ios-common" ], | |
| 52 | - cflags => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common"), | ||
| 52 | + cflags => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\" -fno-common"), | ||
| 53 | 53 | }, | |
| 54 | 54 | "ios-cross" => { | |
| 55 | 55 | inherit_from => [ "ios-xcrun" ], | |
| 56 | 56 | CC => "cc", | |
| 57 | - cflags => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"), | ||
| 57 | + cflags => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\""), | ||
| 58 | 58 | }, | |
| 59 | 59 | "ios64-cross" => { | |
| 60 | 60 | inherit_from => [ "ios64-xcrun" ], | |
| 61 | 61 | CC => "cc", | |
| 62 | - cflags => add("-isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK)"), | ||
| 62 | + cflags => add("-isysroot \"\$(CROSS_TOP)/SDKs/\$(CROSS_SDK)\""), | ||
| 63 | 63 | }, | |
| 64 | 64 | ); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -21,7 +21,7 @@ | |||
| 21 | 21 | sub dependmagic { | |
| 22 | 22 | my $target = shift; | |
| 23 | 23 | ||
| 24 | - return "$target: build_generated\n\t\$(MAKE) depend && \$(MAKE) _$target\n_$target"; | ||
| 24 | + return "$target: build_generated\n\t\"\$(MAKE)\" depend && \"\$(MAKE)\" _$target\n_$target"; | ||
| 25 | 25 | } | |
| 26 | 26 | ||
| 27 | 27 | our $COLUMNS = $ENV{COLUMNS}; | |
@@ -527,7 +527,7 @@ all: build_sw build_docs | |||
| 527 | 527 | ||
| 528 | 528 | test: tests | |
| 529 | 529 | {- dependmagic('tests'); -}: build_programs_nodep build_modules_nodep link-utils | |
| 530 | - $(MAKE) run_tests | ||
| 530 | + "$(MAKE)" run_tests | ||
| 531 | 531 | run_tests: FORCE | |
| 532 | 532 | @ : {- output_off() if $disabled{tests}; "" -} | |
| 533 | 533 | ( SRCTOP=$(SRCDIR) \ | |
@@ -542,7 +542,7 @@ run_tests: FORCE | |||
| 542 | 542 | ||
| 543 | 543 | list-tests: | |
| 544 | 544 | @ : {- output_off() if $disabled{tests}; "" -} | |
| 545 | - $(MAKE) run_tests TESTS=list | ||
| 545 | + "$(MAKE)" run_tests TESTS=list | ||
| 546 | 546 | @ : {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -} | |
| 547 | 547 | @echo "Tests are not supported with your chosen Configure options" | |
| 548 | 548 | @ : {- output_on() if !$disabled{tests}; "" -} | |
@@ -1193,12 +1193,12 @@ providers/fips.module.sources.new: configdata.pm | |||
| 1193 | 1193 | cd sources-tmp \ | |
| 1194 | 1194 | && $$srcdir/Configure --banner=Configured enable-fips -O0 \ | |
| 1195 | 1195 | && ./configdata.pm --query 'get_sources("providers/fips")' > sources1 \ | |
| 1196 | - && $(MAKE) -sj 4 build_generated providers/fips.so \ | ||
| 1196 | + && "$(MAKE)" -sj 4 build_generated providers/fips.so \ | ||
| 1197 | 1197 | && find . -name '*.d' | xargs cat > dep1 \ | |
| 1198 | - && $(MAKE) distclean \ | ||
| 1198 | + && "$(MAKE)" distclean \ | ||
| 1199 | 1199 | && $$srcdir/Configure --banner=Configured enable-fips no-asm -O0 \ | |
| 1200 | 1200 | && ./configdata.pm --query 'get_sources("providers/fips")' > sources2 \ | |
| 1201 | - && $(MAKE) -sj 4 build_generated providers/fips.so \ | ||
| 1201 | + && "$(MAKE)" -sj 4 build_generated providers/fips.so \ | ||
| 1202 | 1202 | && find . -name '*.d' | xargs cat > dep2 \ | |
| 1203 | 1203 | && cat sources1 sources2 \ | |
| 1204 | 1204 | | grep -v ' : \\$$' | grep -v util/providers.num \ | |
@@ -1332,7 +1332,7 @@ ordinals: build_generated | |||
| 1332 | 1332 | $(SSLHEADERS) | |
| 1333 | 1333 | ||
| 1334 | 1334 | test_ordinals: | |
| 1335 | - $(MAKE) run_tests TESTS=test_ordinals | ||
| 1335 | + "$(MAKE)" run_tests TESTS=test_ordinals | ||
| 1336 | 1336 | ||
| 1337 | 1337 | tags TAGS: FORCE | |
| 1338 | 1338 | rm -f TAGS tags | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,6 @@ | |||
| 1 | 1 | #! /usr/bin/env perl | |
| 2 | 2 | # -*- mode: perl; -*- | |
| 3 | - # Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. | ||
| 3 | + # Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved. | ||
| 4 | 4 | # | |
| 5 | 5 | # Licensed under the Apache License 2.0 (the "License"). You may not use | |
| 6 | 6 | # this file except in compliance with the License. You can obtain a copy | |
@@ -405,6 +405,7 @@ my @disablables = ( | |||
| 405 | 405 | "asan", | |
| 406 | 406 | "asm", | |
| 407 | 407 | "async", | |
| 408 | + "atexit", | ||
| 408 | 409 | "autoalginit", | |
| 409 | 410 | "autoerrinit", | |
| 410 | 411 | "autoload-config", | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -480,7 +480,7 @@ Setting the FIPS HMAC key | |||
| 480 | 480 | ||
| 481 | 481 | As part of its self-test validation, the FIPS module must verify itself | |
| 482 | 482 | by performing a SHA-256 HMAC computation on itself. The default key is | |
| 483 | - the SHA256 value of "the holy handgrenade of antioch" and is sufficient | ||
| 483 | + the SHA256 value of "holy hand grenade of antioch" and is sufficient | ||
| 484 | 484 | for meeting the FIPS requirements. | |
| 485 | 485 | ||
| 486 | 486 | To change the key to a different value, use this flag. The value should | |
@@ -546,6 +546,13 @@ be used even with this option. | |||
| 546 | 546 | ||
| 547 | 547 | Do not build support for async operations. | |
| 548 | 548 | ||
| 549 | + ### no-atexit | ||
| 550 | + | ||
| 551 | + Do not use `atexit()` in libcrypto builds. | ||
| 552 | + | ||
| 553 | + `atexit()` has varied semantics between platforms and can cause SIGSEGV in some | ||
| 554 | + circumstances. This option disables the atexit registration of OPENSSL_cleanup. | ||
| 555 | + | ||
| 549 | 556 | ### no-autoalginit | |
| 550 | 557 | ||
| 551 | 558 | Don't automatically load all supported ciphers and digests. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -18,6 +18,18 @@ OpenSSL Releases | |||
| 18 | 18 | OpenSSL 3.0 | |
| 19 | 19 | ----------- | |
| 20 | 20 | ||
| 21 | + ### Major changes between OpenSSL 3.0.13 and OpenSSL 3.0.14 [4 Jun 2024] | ||
| 22 | + | ||
| 23 | + * Fixed potential use after free after SSL_free_buffers() is called | ||
| 24 | + ([CVE-2024-4741]) | ||
| 25 | + | ||
| 26 | + * Fixed an issue where checking excessively long DSA keys or parameters may | ||
| 27 | + be very slow | ||
| 28 | + ([CVE-2024-4603]) | ||
| 29 | + | ||
| 30 | + * Fixed unbounded memory growth with session handling in TLSv1.3 | ||
| 31 | + ([CVE-2024-2511]) | ||
| 32 | + | ||
| 21 | 33 | ### Major changes between OpenSSL 3.0.12 and OpenSSL 3.0.13 [30 Jan 2024] | |
| 22 | 34 | ||
| 23 | 35 | * Fixed PKCS12 Decoding crashes | |
@@ -1470,6 +1482,9 @@ OpenSSL 0.9.x | |||
| 1470 | 1482 | ||
| 1471 | 1483 | <!-- Links --> | |
| 1472 | 1484 | ||
| 1485 | + [CVE-2024-4741]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4741 | ||
| 1486 | + [CVE-2024-4603]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-4603 | ||
| 1487 | + [CVE-2024-2511]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-2511 | ||
| 1473 | 1488 | [CVE-2024-0727]: https://www.openssl.org/news/vulnerabilities.html#CVE-2024-0727 | |
| 1474 | 1489 | [CVE-2023-6237]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-6237 | |
| 1475 | 1490 | [CVE-2023-6129]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-6129 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -56,7 +56,10 @@ relating to `atexit()` processing when a shared library is unloaded and when | |||
| 56 | 56 | the program terminates. This limitation applies to all OpenSSL shared library | |
| 57 | 57 | components. | |
| 58 | 58 | ||
| 59 | - A resolution to this situation is under investigation. | ||
| 59 | + It is possible to configure the build with `no-atexit` to avoid the SIGSEGV. | ||
| 60 | + Preferably, you can explicitly call `OPENSSL_cleanup()` from your application. | ||
| 61 | + It is not mandatory as it just deallocates various global data structures | ||
| 62 | + OpenSSL allocated. | ||
| 60 | 63 | ||
| 61 | 64 | About Prefix and OpenSSLDir | |
| 62 | 65 | --------------------------- | |
| Back | FazBrowse Home | New Git URL |
0 commit comments