google-auth: cryptography lower bounds fail on Python 3.14 and allow vulnerable releases

Open Beginner friendly
#18,260 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
cryptography, python

Research direction

Start in packages/google-auth/setup.py and compare its cryptography markers with testing/constraints-3.10.txt and testing/constraints-3.14.txt. Run cd packages/google-auth && nox -s unit-3.14, then verify the supported Python constraints select installable, non-vulnerable cryptography releases and the unit session completes.

Written by the indexing model from the issue text.

Description

priority: p2 type: bug
Determine this is the right repository
  • I determined this is the correct repository in which to report this bug.
Summary of the issue

Context
Running google-auth unit tests with nox -s unit (or installing with the Python 3.14 constraints file) and reviewing the declared cryptography lower bounds.

Expected Behavior:

  • nox -s unit-3.14 should install dependencies and run tests.
  • Declared cryptography lower bounds should be installable on each supported Python version and should not include releases with known high-severity CVEs.

Actual Behavior:

  • On Python 3.14, pip fails with ResolutionImpossible. setup.py requires cryptography >= 41.0.5 and testing/constraints-3.14.txt pins cryptography==41.0.5, but 41.0.5 has no Python 3.14 wheels.
  • On Python 3.10–3.13, the lower bound is cryptography >= 38.0.3, which still allows 41.0.5 and other releases affected by CVE-2023-49083 and CVE-2026-26007 (fixed in 41.0.6 and 46.0.5).
API client name and version

google-auth v2.57.0

Reproduction steps: code

Run unit-tests for google-auth in packages/google-auth:

cd packages/google-auth
nox -s unit-3.14
Reproduction steps: supporting files

N/A — reproduced from current main using packages/google-auth/setup.py and packages/google-auth/testing/constraints-3.14.txt.

Reproduction steps: actual results
ERROR: Cannot install None because these package versions have conflicting dependencies.

The conflict is caused by:
    google-auth 2.57.0 depends on cryptography>=41.0.5; python_version >= "3.14"
    The user requested (constraint) cryptography==41.0.5

Additionally, some packages in these conflicts have no matching distributions available for your environment:
    cryptography
Reproduction steps: expected results

nox -s unit-3.14 creates the venv, installs google-auth with a cryptography version that has Python 3.14 wheels, and runs the unit tests.

OS & version + platform

No response

Python environment

No response

Python dependencies

N/A — install fails before tests run. Relevant pins from this repo:

setup.py:
cryptography >= 38.0.3; python_version < '3.14'
cryptography >= 41.0.5; python_version >= '3.14'

testing/constraints-3.10.txt: cryptography==38.0.3
testing/constraints-3.14.txt: cryptography==41.0.5

Additional context

Proposed fix:

  • Python 3.10–3.13: require cryptography >= 46.0.5 (CVE-2026-26007).
  • Python 3.14+: require cryptography >= 50.0.1 (first release with 3.14 wheels).
  • Update testing/constraints-3.10.txt and testing/constraints-3.14.txt to those lower bounds.

I will send a PR for this.

Dominant language
Python
Stars
5.4k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
93

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/google-cloud-python

All issues in googleapis/google-cloud-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.