Skip to content

build: require certifi>=2026.10.19 to fix GHSA-6q48-6c7w-9gw2 - #13376

Merged
bogdankostic merged 2 commits into
mainfrom
fix/bump-certifi-ghsa-6q48-6c7w-9gw2
Oct 21, 2026
Merged

bogdankostic merged 2 commits into
mainfrom
fix/bump-certifi-ghsa-6q48-6c7w-9gw2

Conversation

@bogdankostic

Copy link
Copy Markdown
Contributor

Related Issues

Proposed Changes:

Adds certifi>=2026.10.19 to the core dependencies, the same way #12995 added the anyio floor.

certifi comes in transitively through two direct dependencies:

haystack-ai
├── httpx    → certifi, and httpcore → certifi
└── posthog  → requests → certifi

None of them requires a recent certifi (httpx and httpcore list it without a version, requests asks for >=2017.4.17). pip only upgrades what it has to, so pip install -U haystack-ai kept whatever certifi was already installed. httpx trusts certifi's bundle by default, so every HTTP call Haystack makes, e.g. to OpenAI, would keep trusting the compromised eMudhra/emSign CAs. With the floor, upgrading Haystack pulls in the fixed bundle.

The floor is 2026.10.19 rather than 2026.10.18 (the release that first removes the compromised root), following the PSF's recommendation: 10.19 restores the unaffected emSign Root CA - G1 for compatibility.

How did you test it?

  • uv pip compile pyproject.toml resolves certifi==2026.10.19, including under the repo's 24h exclude-newer cooldown (it was uploaded 2026-10-20 02:24 UTC).
  • Pre-commit hooks pass (toml, yaml, release-note backticks).
  • certifi 2026.10.19 requires Python >=3.7, so the floor doesn't affect our supported versions.

Notes for the reviewer

  • certifi is pure data with no API, so there's no compatibility risk. The only visible effect is a resolver conflict for users who pin certifi below 2026.10.19; the release note tells them to raise the pin.
  • v3.4.1-rc1 already contains the Docker fix (build: update Docker image for eMudhra/emSign CA incident #13374). If we want this in v3.4.1 too, it needs to be cherry-picked onto v3.4.x before the final release.

Checklist

  • I have read the contributors guidelines and the code of conduct.
  • I have updated the related issue with new insights and changes.
  • I have added unit tests and updated the docstrings.
  • I've used one of the conventional commit types for my PR title: fix:, feat:, build:, chore:, ci:, docs:, style:, refactor:, perf:, test: and added ! in case the PR includes breaking changes.
  • I have documented my code.
  • I have added a release note file, following the contributors guidelines.
  • I have run pre-commit hooks and fixed any issue.

🤖 Generated with Claude Code

certifi is installed transitively through httpx and posthog, and none of
them requires a recent version, so upgrading Haystack kept an old certifi
that still trusts the compromised eMudhra/emSign CAs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bogdankostic
bogdankostic requested a review from a team as a code owner October 21, 2026 18:29
@bogdankostic
bogdankostic requested review from sjrl and removed request for a team October 21, 2026 18:29
@vercel

vercel Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
haystack-docs Ignored Ignored Preview Oct 21, 2026 6:37pm UTC

Request Review

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  haystack/core/pipeline
  pipeline.py
Project Total  

This report was generated by python-coverage-comment-action

certifi is MPL-2.0, which the checker flags as copyleft. It was already
installed transitively via httpx and posthog; it's only listed directly
to enforce the security floor for GHSA-6q48-6c7w-9gw2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bogdankostic
bogdankostic enabled auto-merge (squash) October 21, 2026 18:45
@bogdankostic
bogdankostic merged commit 6cf9c4e into main Oct 21, 2026
23 checks passed
@bogdankostic
bogdankostic deleted the fix/bump-certifi-ghsa-6q48-6c7w-9gw2 branch October 21, 2026 18:47
bogdankostic added a commit that referenced this pull request Oct 21, 2026
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants