Sdk 2803 python upgrade dependencies to address security cv es core sdk examples#463
Open
mehmet-yoti wants to merge 3 commits into
Conversation
- cryptography >=44.0.1 (CVE-2024-12797 bundled-OpenSSL) - pyopenssl >=26.0.0 - requests >=2.32.4 (CVE-2024-47081 .netrc leak) - urllib3 >=2.6.3 (decompression/encoding/redirect CVEs) - cffi >=1.17.1, wheel >=0.46.2 (CVE-2026-24049), PyYAML >=6.0.2, wrapt >=1.17.2, itsdangerous >=2.2.0 - regenerated requirements.txt picks up fresh certifi (2026.4.22), idna (3.15) which closes those transitive CVEs
…ules - protobuf 3.20.3 -> >=4.25.8,<6 in setup.py and requirements.in; pip-compile resolves to 5.29.6, closing CVE-2025-4565 and CVE-2026-0994 (recursion DoS in google.protobuf). - Regenerate all *_pb2.py via protoc 3.21.12 from sdk-protobuf/proto/. Output now uses the _builder.BuildMessageAndEnumDescriptors API that is required by protobuf 4.x/5.x runtimes. - _pb2_grpc.py stubs are unused in this SDK and left untouched. - pytest: 438 passed, 0 failed.
aml: no .in change, regenerated to pick up new core deps doc_scan: flask>=3.0.6, pyopenssl>=26.0.0, deprecated>=1.2.14, iso8601>=1.1.0, pytz>=2025.2, click>=8.1 django: django 4.0.1 -> 4.2 LTS (closes critical SQLi CVEs), urllib3>=2.6.3, requests>=2.32.4, cffi>=1.17.1; remove unused six; add DEFAULT_AUTO_FIELD = BigAutoField to settings.py for 4.2 flask: flask 1->3.0.6 (CVE-2023-30861), werkzeug 1->3.0.6 (request smuggling, debugger RCE, path traversal CVEs), jinja2>=3.1.6 (5 CVEs), pyopenssl, urllib3, requests bumped, itsdangerous>=2.2.0 added explicitly; remove unused six setup.py extras_require[examples]: Django>=4.2,<5.3, Flask>=3.0.6, Werkzeug>=3.0.6
|
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.



Summary
Closes High-severity CVEs across the core SDK and all four example apps by upgrading shipped dependency pins.
Phases
Phase 1 — Core SDK low-risk bumps (
31789b5)setup.pyinstall_requiresandrequirements.in:requirements.txtregenerated viapip-compile --upgrade. Transitive consequences:certifi2018.11.29 → 2026.4.22 (rogue-root advisories)idna2.7 → 3.15 (CVE-2024-3651)futurepackage kept — verified runtime usage viafrom past.builtins import basestringinyoti_python_sdk/crypto.pyand tests.Phase 2 — Protobuf bump (
6a49f45)protobuf==3.20.3→protobuf>=4.25.8,<6insetup.pyandrequirements.in.pip-compileresolves to5.29.6, closingCVE-2025-4565 and CVE-2026-0994 (recursion DoS in
google.protobuf).*_pb2.pyfiles regenerated withprotoc 3.21.12fromsdk-protobuf/proto/. Output now uses the_builder.BuildMessageAndEnumDescriptorsAPI required by protobuf 4.x/5.x runtimes — the old_descriptor.FileDescriptor(...)style wasincompatible with the new runtime.
_pb2_grpc.pystubs are unused in this SDK and left untouched.Wire format is stable 3.x ↔ 4.x ↔ 5.x, so consumer SDKs (Go 3.16.0, Java 4.0.0, .NET, PHP) do not need coordinated release.
Phase 3 — Example apps (
38e32f8)aml.inedits; regenerated.txtpicks up new core depsdoc_scanyoti_example_djangosix,DEFAULT_AUTO_FIELD = BigAutoFieldtosettings.pyyoti_example_flaskitsdangerous>=2.2.0, removed unusedsixsetup.py extras_require["examples"]aligned:Django>=4.2,<5.3,Flask>=3.0.6,Werkzeug>=3.0.6.Verification
Unit tests (Python 3.9,
/tmp/sdk2803-venvwith local SDK installed viapip install -e .[dev]):Example app boot tests:
manage.py checkimport appfrom doc_scan import apppip-auditagainst all 5requirements.txtfiles: every High-severity advisory addressed in the audit is closed. The only remainingfindings (
requests2.32.5,urllib32.6.3,python-dotenv1.2.1) have fix versions that have not yet been released to PyPI — they will be picked up via dependabot once published.Out of scope