Repository navigation
fix(security): Require certifi>=2026.10.23 - #1271
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This CDK VersionYou can test this version of the CDK using the following: # Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/airbyte-python-cdk.git@devin/1793914121-cdk-emudhra-ca#egg=airbyte-python-cdk[dev]' --help
# Update a connector to use the CDK from this branch ref:
cd airbyte-integrations/connectors/source-example
poe use-cdk-branch devin/1793914121-cdk-emudhra-caPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
|
PyTest Results (Fast)6 434 tests ±0 6 397 ✅ - 1 7m 25s ⏱️ +33s Results for commit 03dff58. ± Comparison against base commit a0d630a. This pull request skips 1 test.♻️ This comment has been updated with latest results. |
PyTest Results (Full)6 437 tests ±0 6 400 ✅ - 1 10m 11s ⏱️ + 2m 1s Results for commit 03dff58. ± Comparison against base commit a0d630a. This pull request skips 1 test.♻️ This comment has been updated with latest results. |
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
certifi>=2026.10.23
certifi>=2026.10.23certifi>=2026.10.23
Kaizer (kaizerch)
left a comment
There was a problem hiding this comment.
Looked through this one, Pablo (@pablo-airbyte). LGTM, nothing blocking. A few notes from checking the bundle itself rather than the diff:
- Confirmed the lock hashes match PyPI for 2026.10.23 (still the latest certifi) and
poetry check --lockis clean at the head commit. - Diffed the two bundles. 2024.12.14 → 2026.10.23 drops 43 roots and adds 12. Three are emSign (ECC G3, ECC C3, C1; G1 stays, matching Mozilla's call). The other 40 are Mozilla's April 2026 lifecycle removals: DigiCert's G1 roots, GTS Root R2, Entrust G2/EC1, COMODO, Baltimore CyberTrust, GlobalSign Root CA, Go Daddy and Starfield Class 2, and so on. Since the SDM lock has sat on 2024.12.14, this is the first time manifest-only connectors cross that line.
- Ran a TLS handshake against 149 common connector API hosts with both bundles: zero regressions. So I'd expect the impact to be small.
Summary
TL;DR: Require an updated Python certificate bundle for CDK consumers after the eMudhra CA incident.
Add
certifi>=2026.10.23and update its entry inpoetry.lock. No Dockerfile or base-image changes are included.Related connector-image patch: airbytehq/airbyte#90276. Its Python connector build override does not run in the CDK-owned images, which install from this repository's dependencies.
Changes
certifidependency floor so CDK dependency installation cannot restore the previous2024.12.14Python bundle.certifiin the lockfile and exempt this intentional transitive security constraint from the unused-dependency check.Test plan
poetry checkpassed, with existing metadata deprecation warnings.poetry run ruff check .andpoetry run ruff format --check .passed.poetry run mypy --config-file mypy.ini airbyte_cdkpassed for 477 source files after installing localtypes-pytzstubs.poetry run pytest unit_tests/sources/streams/http/test_http_client.py unit_tests/sources/declarative/requesters/test_http_requester.py unit_tests/manifest_server -q: 233 passed with themanifest-serverextra installed.node: systemoverride to work around Node version-discovery failure; repository hook configuration was not changed.certifi 2026.10.23omitsemSign ECC Root CA - G3;openssl verifyrejects that root using the Python CA bundle.Risks and scope
Endpoints relying exclusively on distrusted roots will fail Python TLS validation, as intended. CVE-2026-91403 tracks Java; this PR covers the Python certificate-bundle side of the same CA incident. It does not refresh operating-system trust stores or remediate running images by itself.
CI limitation
25 checks passed, including the Python 3.11–3.14 test matrix, lint/type checks, package build, and both Docker image builds. The only failure is the MotherDuck connector check: its shared test credential has no enabled secret version. It stops during credential fetch, before the connector switches to this CDK revision. The same credential failure occurred earlier on another branch.
A CI owner must restore the shared test credential and rerun that check. Rerunning failed jobs from this session was rejected with
Resource not accessible by integration.Follow-ups
python-connector-base, update the CDK shared runtime's base version and digest in a separate change. The manifest server uses a separate upstream Python base and needs its own system-trust-store update.Requested by Pablo (@pablo-airbyte).