Repository navigation
[core] Fix cryptography and setuptools Dependabot alerts - #4392
Merged
Merged
Conversation
setuptools 80.9.0 is affected by a MANIFEST.in exclusion bypass (fixed in 83.0.0) and a Windows path escape during legacy wheel installation (fixed in 84.1.0). setuptools 82 removed pkg_resources, so Hue and the packages it installs have to stop importing it. - appmanager, supervisor, settings and gunicorn_server_utils read entry points and the desktop version through importlib.metadata. - pyformance 0.3.2 calls pkg_resources.declare_namespace() without a guard in its __init__.py. Vendor it under ext-py3 without that line (it is not a namespace package) and install it as a local requirement. - SQLAlchemy 1.3 finds third party dialects (trino://, phoenix://) only through pkg_resources. Wrap the dialect registry so that those dialects are looked up through the same "sqlalchemy.dialects" entry points with importlib.metadata, after the built in dialects. Add tests. - The Makefile passed the cx-Oracle build constraint setuptools<82 as PIP_CONSTRAINT, which also constrains the setuptools the virtual env installs and would conflict with 84.1.0. Pass it only as PIP_BUILD_CONSTRAINT, which applies to pip's isolated build environments, where cx-Oracle's setup.py still needs pkg_resources. - appmanager.get_bootstrap_file used the Python 2 file() builtin. The files touched here are also made ruff clean, as CI requires, which removes some unused imports, bindings and test variables.
cryptography 46.0.7 is affected by four advisories (a Bleichenbacher oracle in PKCS#7 EnvelopedData decryption, exponential path building with duplicate self-signed intermediates, wildcard DNS names escaping permittedSubtrees, and a vulnerable OpenSSL in the wheels). The fixes are in 48.0.1, 49.0.0 and 50.0.0. pyOpenSSL was held at 26.0.0 because it caps cryptography below 47. 26.3.0 is the first release that accepts cryptography 49 and 50, so move to 26.4.0. It no longer has X509Req, load_certificate_request or crypto.verify(), which the vendored pysaml2 certificate code used: - OpenSSLWrapper.create_certificate(request=True), which the SAML signing code calls by default, failed with an AttributeError. Build the certificate signing request with cryptography. - create_cert_signed_certificate loaded the request with pyOpenSSL. Load it and issue the certificate with cryptography. - verify() ignored the failure of crypto.verify() and reported every certificate as invalid. Check the signature with cryptography. Add libsaml/cert_tests.py, which creates, signs and verifies certificates through that code. 8 of its 11 tests fail without the change.
|
✅ Test files were modified. Ensure that the tests cover all relevant changes. ✅ |
agl29
approved these changes
Oct 30, 2026
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.
Fixes the new Dependabot alerts for cryptography and setuptools.
Commits
Testing