Skip to content

fix(deps): bump PyJWT, urllib3 and oauthlib to patched releases - #365

Merged
Vishnu2707 merged 1 commit into
OWASP:devfrom
parthrohit22:fix/dependency-security-bumps
Sep 30, 2026
Merged

Vishnu2707 merged 1 commit into
OWASP:devfrom
parthrohit22:fix/dependency-security-bumps

Conversation

@parthrohit22

Copy link
Copy Markdown
Collaborator

What does this PR do?

Bumps three runtime dependencies to releases that fix newly published advisories. SCA (pip-audit) and Container Scan (Trivy) fail on every PR to dev today, so nothing can merge. dev passed CI on Sep 29, so the advisories are new.

Package From To Advisories
PyJWT 2.13.0 2.15.0 CVE-2026-102265 to 102274 (including a CRITICAL auth bypass, CVE-2026-102268), CVE-2026-101917, CVE-2026-101918
urllib3 2.7.0 2.8.0 CVE-2026-97687 to 97689
oauthlib 3.3.1 4.0.0 CVE-2026-49265

PyJWT is the dependency behind the OIDC bearer-token verification (#294), so that one is worth shipping on its own merits.

Type of change

  • Bug fix (dependency security update)

How

  • Only the three packages were upgraded (--upgrade-package), not a blanket --upgrade, so every other pin and hash is unchanged. The diff is 12 lines in each lock.
  • requirements.in pins PyJWT directly, so that line changes too. urllib3 and oauthlib are transitive.
  • Locks were regenerated with scripts/lock_dependencies.py tooling under CPython 3.11 on Linux (the supported target), and lock_dependencies.py --check reports they match their inputs.

Testing

  • pip-audit on requirements.txt and requirements-dev.txt: no known vulnerabilities
  • Installed the exact locked dev set with --require-hashes --only-binary=:all: on CPython 3.11: pip check is clean, versions are 2.15.0 / 2.8.0 / 4.0.0
  • pytest tests/ with PostgreSQL: 1480 passed, 3 skipped
  • No hardcoded credentials or secrets

oauthlib is a major-version bump. Nothing in the repo imports it directly; it arrives through requests-oauthlib. The full suite and pip check pass with it.

Related issue

Unblocks CI for the open PRs (for example #364).

Checklist

  • Every commit includes a DCO Signed-off-by trailer
  • I have not committed any real Azure credentials
  • My branch name follows the convention: fix/description

pip-audit and Trivy now fail on every PR to dev because advisories were
published after the last lock refresh:

- PyJWT 2.13.0 -> 2.15.0 (CVE-2026-102265..102274 incl. a CRITICAL auth
  bypass, CVE-2026-101917, CVE-2026-101918)
- urllib3 2.7.0 -> 2.8.0 (CVE-2026-97687..97689)
- oauthlib 3.3.1 -> 4.0.0 (CVE-2026-49265)

Only the affected packages are upgraded; every other pin is unchanged.
The locks were regenerated with scripts/lock_dependencies.py under
CPython 3.11 on Linux and pass its --check mode.

Signed-off-by: parthrohit22 <parthrohit60@gmail.com>

@TFT444 TFT444 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed diff line by line. All three lock files updated consistently, hashes are correct, upgrade is surgical (no other pins changed).

PyJWT 2.15.0 fixes a CRITICAL auth bypass (CVE-2026-102268) in the OIDC bearer-token path OpenShield uses. urllib3 and oauthlib fixes are clean. oauthlib 4.0.0 is a major bump but nothing in the repo imports it directly and the full suite passes.

DCO present. Supersedes Dependabot PR #366 (same files) — close that one after merge.

Approving.

@Vishnu2707 Vishnu2707 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@Vishnu2707
Vishnu2707 merged commit 43a6f5d into OWASP:dev Sep 30, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants