docs(security): record the chromadb advisory that has no upstream fix - #218
Open
se-jo-ma wants to merge 1 commit into
Open
docs(security): record the chromadb advisory that has no upstream fix#218se-jo-ma wants to merge 1 commit into
se-jo-ma wants to merge 1 commit into
Conversation
Dependabot alert #22 (GHSA-f4j7-r4q5-qw2c / CVE-2026-45829) reports a pre-auth code injection in the ChromaDB server against `chromadb` >= 1.0.0, <= 1.5.9. There is no version to move to: 1.5.9 is the latest release on PyPI and sits inside the range, and every crewai release from 1.6.1 through 1.15.17 pins `chromadb~=1.1.0`, so bumping crewai does not escape it either. What is true about Fathom's exposure is worth writing down rather than re-deriving on the next scan: - chromadb is not in the core install. `dependencies` is clipspy, pyyaml and pydantic; chromadb arrives only through the `crewai` extra. - It is not in the published image. The Dockerfile builds with `uv sync --frozen --no-dev --extra server`. - The client *is* imported when `fathom.integrations.crewai` loads, so "unused dependency" would be the wrong description. - The vulnerable component is the server. `chromadb.server.*` is never imported, and Fathom never starts one. Records this on the `crewai` extra, next to the pin it constrains, in the same style as the existing note on the `mcp` extra, and in SECURITY.md for anyone reconciling a scan of an install. Signed-off-by: Sean Mauk <seanmauk@krakennetworks.com>
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.
What
Dependabot alert #22 —
GHSA-f4j7-r4q5-qw2c/CVE-2026-45829, critical, pre-authentication code injection in the ChromaDB server, againstchromadb >= 1.0.0, <= 1.5.9.There is no fix to apply. This PR does not close the vulnerability, because nothing can right now — it records what is actually true about Fathom's exposure so the next person to run a scan does not have to re-derive it.
Why no bump works
chromadbon PyPI1.5.9— the top of the vulnerable rangecrewai1.6.1 / 1.10.0 / 1.15.17 (latest)chromadb~=1.1.0So neither a
chromadbfloor nor acrewaibump escapes the advisory.Exposure, verified
dependenciesisclipspy,pyyaml,pydantic.chromadbarrives only via thecrewaiextra (andall, which includes it).Dockerfilebuilds withuv sync --frozen --no-dev --extra server.import fathom.integrations.crewaieagerly loads the chromadb client, so calling this an unused dependency would be false.chromadb.server.*is never imported and Fathom never runs a ChromaDB server.trust_remote_code, the flag the advisory turns on, does not appear anywhere in the installedchromadb1.1.1 — neither its Python source nor the compiled Rust bindings.Changes
pyproject.toml— note on thecrewaiextra, next to the pin it constrains, matching the existing note on themcpextra.SECURITY.md— a Known advisories in optional dependencies section, for anyone reconciling a scan against an install.No dependency versions change;
uv.lockis untouched.Follow-up left to the maintainer
Alert #22 stays open. Dismissing a critical alert is a maintainer decision, and the honest reason is narrower than any of Dependabot's canned ones —
not_usedis wrong (the client is imported) andinaccurateoverclaims. Leaving it open also means we get told whenchromadbfinally ships a patched release.