Update dependency pyOpenSSL to v26 [SECURITY]#126
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Update dependency pyOpenSSL to v26 [SECURITY]#126renovate[bot] wants to merge 1 commit intomasterfrom
renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
0d880b2 to
240ca8a
Compare
240ca8a to
b234e82
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==19.0.0→==26.0.0pyOpenSSL allows TLS connection bypass via unhandled callback exception in set_tlsext_servername_callback
CVE-2026-27448 / GHSA-vp96-hxj8-p424
More information
Details
If a user provided callback to
set_tlsext_servername_callbackraised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it.Unhandled exceptions now result in rejecting the connection.
Credit to Leury Castillo for reporting this issue.
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:UReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
pyca/pyopenssl (pyOpenSSL)
v26.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 46.0.0.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
DTLS1_COOKIE_LENGTHbytes. Previously this would result in a buffer-overflow. Credit to dark_haxor for reporting the issue. CVE-2026-27459OpenSSL.SSL.Connection.get_group_nameto determine which group name was negotiated.Context.set_tlsext_servername_callbacknow handles exceptions raised in the callback by callingsys.excepthookand returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to Leury Castillo for reporting this issue. CVE-2026-27448v25.3.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
cryptographyversion is now 46.x.v25.2.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 45.0.7.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFERon connections by default, matching CPython's behavior.OpenSSL.SSL.Context.clear_mode.OpenSSL.SSL.Context.set_tls13_ciphersuitesto set the allowed TLS 1.3 ciphers.OpenSSL.SSL.Connection.set_info_callbackv25.1.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
OpenSSL.SSL.Contextafter ithas been used to create an
OpenSSL.SSL.Connectionwill emit a warning. Ina future release, this will raise an exception.
Changes:
^^^^^^^^
cryptographymaximum version has been increased to 45.0.x.v25.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
Context.set_alpn_select_callback,Context.set_session_cache_mode,Context.set_options,Context.set_mode,X509.subject_name_hash, andX509Store.load_locations.warnings.deprecated.mypywill emit deprecation notices for them when used with--enable-error-code deprecated.v24.3.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OpenSSL.crypto.CRL,OpenSSL.crypto.Revoked,OpenSSL.crypto.dump_crl, andOpenSSL.crypto.load_crl.cryptography.x509's CRL functionality should be used instead.OpenSSL.crypto.signandOpenSSL.crypto.verify.cryptography.hazmat.primitives.asymmetric's signature APIs should be used instead.Deprecations:
^^^^^^^^^^^^^
OpenSSL.rand- callers should useos.urandom()instead.add_extensionsandget_extensionsonOpenSSL.crypto.X509ReqandOpenSSL.crypto.X509. These should have been deprecated at the same timeX509Extensionwas. Users should use pyca/cryptography's X.509 APIs instead.OpenSSL.crypto.get_elliptic_curvesandOpenSSL.crypto.get_elliptic_curve, as well as passing the reult of them toOpenSSL.SSL.Context.set_tmp_ecdh, users should instead pass curves fromcryptography.X509objects toOpenSSL.SSL.Context.use_certificate,OpenSSL.SSL.Connection.use_certificate,OpenSSL.SSL.Context.add_extra_chain_cert, andOpenSSL.SSL.Context.add_client_ca, users should instead passcryptography.x509.Certificateinstances. This is in preparation for deprecating pyOpenSSL'sX509entirely.PKeyobjects toOpenSSL.SSL.Context.use_privatekeyandOpenSSL.SSL.Connection.use_privatekey, users should instead passcryptographyprivate key instances. This is in preparation for deprecating pyOpenSSL'sPKeyentirely.Changes:
^^^^^^^^
cryptographymaximum version has been increased to 44.0.x.OpenSSL.SSL.Connection.get_certificate,OpenSSL.SSL.Connection.get_peer_certificate,OpenSSL.SSL.Connection.get_peer_cert_chain, andOpenSSL.SSL.Connection.get_verified_chainnow take anas_cryptographykeyword-argument. WhenTrueis passed thencryptography.x509.Certificateare returned, instead ofOpenSSL.crypto.X509. In the future, passingFalse(the default) will be deprecated.v24.2.1Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
v24.1.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OpenSSL.crypto.PKCS12andOpenSSL.crypto.NetscapeSPKI.OpenSSL.crypto.PKCS12may be replacedby the PKCS#12 APIs in the
cryptographypackage.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
v24.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
OpenSSL.SSL.Connection.get_selected_srtp_profileto determine which SRTP profile was negotiated.#​1279 <https://github.com/pyca/pyopenssl/pull/1279>_.v23.3.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 41.0.5.OpenSSL.crypto.load_pkcs7andOpenSSL.crypto.load_pkcs12which had been deprecated for 3 years.OpenSSL.SSL.OP_LEGACY_SERVER_CONNECTto allow legacy insecure renegotiation between OpenSSL and unpatched servers.#​1234 <https://github.com/pyca/pyopenssl/pull/1234>_.Deprecations:
^^^^^^^^^^^^^
OpenSSL.crypto.PKCS12(which was intended to have been deprecated at the same time asOpenSSL.crypto.load_pkcs12).OpenSSL.crypto.NetscapeSPKI.OpenSSL.crypto.CRLOpenSSL.crypto.RevokedOpenSSL.crypto.load_crlandOpenSSL.crypto.dump_crlOpenSSL.crypto.signandOpenSSL.crypto.verifyOpenSSL.crypto.X509ExtensionChanges:
^^^^^^^^
OpenSSL.crypto.X509Store.add_crlto also acceptcryptography'sx509.CertificateRevocationListarguments in additionto the now deprecated
OpenSSL.crypto.CRLarguments.test_set_default_verify_pathstest so that it is skipped if nonetwork connection is available.
v23.2.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
X509StoreFlags.NOTIFY_POLICY.#​1213 <https://github.com/pyca/pyopenssl/pull/1213>_.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
cryptographymaximum version has been increased to 41.0.x.OpenSSL.crypto.X509Req.set_version.X509VerificationCodestoOpenSSL.SSL.#​1202 <https://github.com/pyca/pyopenssl/pull/1202>_.v23.1.1Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
X509Extension.get_short_nameto raise an exception when no short name was known to OpenSSL.#​1204 <https://github.com/pyca/pyopenssl/pull/1204>_.v23.1.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
cryptographymaximum version has been increased to 40.0.x.OpenSSL.SSL.Connection.DTLSv1_get_timeoutandOpenSSL.SSL.Connection.DTLSv1_handle_timeoutto support DTLS timeouts
#​1180 <https://github.com/pyca/pyopenssl/pull/1180>_.v23.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
OpenSSL.SSL.X509StoreFlags.PARTIAL_CHAINconstant to allow for usersto perform certificate verification on partial certificate chains.
#​1166 <https://github.com/pyca/pyopenssl/pull/1166>_cryptographymaximum version has been increased to 39.0.x.v22.1.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 38.0.x (and we now pin releasesagainst
cryptographymajor versions to prevent future breakage)OpenSSL.crypto.X509StoreContextErrorexception has been refactored,changing its internal attributes.
#​1133 <https://github.com/pyca/pyopenssl/pull/1133>_Deprecations:
^^^^^^^^^^^^^
OpenSSL.SSL.SSLeay_versionis deprecated in favor ofOpenSSL.SSL.OpenSSL_version. The constantsOpenSSL.SSL.SSLEAY_*aredeprecated in favor of
OpenSSL.SSL.OPENSSL_*.Changes:
^^^^^^^^
OpenSSL.SSL.Connection.set_verifyandOpenSSL.SSL.Connection.get_verify_modeto override the context object's verification flags.
#​1073 <https://github.com/pyca/pyopenssl/pull/1073>_OpenSSL.SSL.Connection.use_certificateandOpenSSL.SSL.Connection.use_privatekeyto set a certificate per connection (and not just per context)
#​1121 <https://github.com/pyca/pyopenssl/pull/1121>_.v22.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#​1047 <https://github.com/pyca/pyopenssl/pull/1047>_cryptographyversion is now 35.0.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
DTLS <https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security>_primitives.
#​1026 <https://github.com/pyca/pyopenssl/pull/1026>_v21.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 3.3.Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
#​993 <https://github.com/pyca/pyopenssl/pull/993>_OpenSSL.SSL.Context.set_min_proto_versionandOpenSSL.SSL.Context.set_max_proto_versionto set the minimum and maximum supported TLS version
#​985 <https://github.com/pyca/pyopenssl/pull/985>_.to_cryptographyandfrom_cryptographymethods to support an upcoming release ofcryptographywithout raising deprecation warnings.#​1030 <https://github.com/pyca/pyopenssl/pull/1030>_v20.0.1Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deprecations:
^^^^^^^^^^^^^
Changes:
^^^^^^^^
v20.0.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cryptographyversion is now 3.2.OpenSSL.tsafemodule.OpenSSL.SSL.Context.set_npn_advertise_callback,OpenSSL.SSL.Context.set_npn_select_callback, andOpenSSL.SSL.Connection.get_next_proto_negotiated.Deprecations:
^^^^^^^^^^^^^
OpenSSL.crypto.load_pkcs7andOpenSSL.crypto.load_pkcs12.Changes:
^^^^^^^^
chainparameter toOpenSSL.crypto.X509StoreContext()where additional untrusted certificates can be specified to help chain building.
#​948 <https://github.com/pyca/pyopenssl/pull/948>_OpenSSL.crypto.X509Store.load_locationsto set trustedcertificate file bundles and/or directories for verification.
#​943 <https://github.com/pyca/pyopenssl/pull/943>_Context.set_keylog_callbackto log key material.#​910 <https://github.com/pyca/pyopenssl/pull/910>_OpenSSL.SSL.Connection.get_verified_chainto retrieve theverified certificate chain of the peer.
#​894 <https://github.com/pyca/pyopenssl/pull/894>_.Context.set_verify.If omitted, OpenSSL's default verification is used.
#​933 <https://github.com/pyca/pyopenssl/pull/933>_null byte in private key passphrase in
OpenSSL.crypto.load_privatekeyand
OpenSSL.crypto.dump_privatekey.#​947 <https://github.com/pyca/pyopenssl/pull/947>_v19.1.0Compare Source
Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ContextType,ConnectionType,PKeyType,X509NameType,X509ReqType,X509Type,X509StoreType,CRLType,PKCS7Type,PKCS12Type, andNetscapeSPKITypealiases.Use the classes without the
Typesuffix instead.#​814 <https://github.com/pyca/pyopenssl/pull/814>_cryptographyversion is now 2.8 due to issues on macOS with a transitive dependency.#​875 <https://github.com/pyca/pyopenssl/pull/875>_Deprecations:
^^^^^^^^^^^^^
OpenSSL.SSL.Context.set_npn_advertise_callback,OpenSSL.SSL.Context.set_npn_select_callback, andOpenSSL.SSL.Connection.get_next_proto_negotiated.ALPN should be used instead.
#​820 <https://github.com/pyca/pyopenssl/pull/820>_Changes:
^^^^^^^^
bytearrayinSSL.Connection.send()by using cffi's from_buffer.#​852 <https://github.com/pyca/pyopenssl/pull/852>_OpenSSL.SSL.Context.set_alpn_select_callbackcan return a newNO_OVERLAPPING_PROTOCOLSsentinel valueto allow a TLS handshake to complete without an application protocol.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.