fix(deps): update module github.com/golang-jwt/jwt/v4 to v4.5.2 [security] - #51
renovate[bot] wants to merge 1 commit into
Conversation
b453220 to
16ab125
Compare
16ab125 to
7f05a9c
Compare
7f05a9c to
713eabe
Compare
713eabe to
689f6c7
Compare
261d9f1 to
a2dfb15
Compare
|
Renovate audit (druid-infra): inspected metadata, diff, head 689f6c7, reviews, and check runs.
|
|
Daily Renovate audit (2026-09-04): inspected metadata, changed files/diff, head 689f6c7, reviews, mergeability, and check runs. Diff updates github.com/golang-jwt/jwt/v4 v4.5.0 to v4.5.2 and refreshes go.sum; release notes identify CVE-2024-51744 and CVE-2025-30204 fixes. Tests: Dockerized Go 1.24 go test ./... (timed out after 300s during module downloads); git diff --check (PASS). Browser coverage: not applicable (Go dependency metadata only). Release review: target is a security patch, but golang-jwt has since released v5.3.1; v4 behavior changes are called out upstream and need compatibility review. Merge decision: NOT MERGED — PR is conflicted (mergeable_state=dirty), has no check runs, and security-sensitive dependency updates are excluded from autonomous merge. |
|
Daily Renovate audit (druid-infra): inspected PR metadata, head |
|
druid-infra daily Renovate audit (2026-09-11 UTC): inspected metadata, changed files/diff, head |
|
Daily Renovate audit (2026-09-12), authenticated as Inspected head Tests in an isolated worktree using Docker
Browser coverage: not applicable; this is a Go dependency/lockfile-only change with no UI surface. Decision: not merged. Blockers are the dirty/non-clean merge state, absent required check runs, and the explicit audit policy requiring user instruction before merging security-sensitive dependency changes. |
|
Renovate audit (druid-infra, 2026-09-13): inspected PR metadata, head |
|
Daily Renovate audit (druid-infra): inspected PR metadata/head |
|
Daily Renovate audit (druid-infra): inspected head |
This PR contains the following updates:
v4.5.0->v4.5.2GitHub Vulnerability Alerts
CVE-2024-51744
Summary
Unclear documentation of the error behavior in
ParseWithClaimscan lead to situation where users are potentially not checking errors in the way they should be. Especially, if a token is both expired and invalid, the errors returned byParseWithClaimsreturn both error codes. If users only check for thejwt.ErrTokenExpiredusingerror.Is, they will ignore the embeddedjwt.ErrTokenSignatureInvalidand thus potentially accept invalid tokens.Fix
We have back-ported the error handling logic from the
v5branch to thev4branch. In this logic, theParseWithClaimsfunction will immediately return in "dangerous" situations (e.g., an invalid signature), limiting the combined errors only to situations where the signature is valid, but further validation failed (e.g., if the signature is valid, but is expired AND has the wrong audience). This fix is part of the 4.5.1 release.Workaround
We are aware that this changes the behaviour of an established function and is not 100 % backwards compatible, so updating to 4.5.1 might break your code. In case you cannot update to 4.5.0, please make sure that you are properly checking for all errors ("dangerous" ones first), so that you are not running in the case detailed above.
CVE-2025-30204
Summary
Function
parse.ParseUnverifiedcurrently splits (via a call to strings.Split) its argument (which is untrusted data) on periods.As a result, in the face of a malicious request whose Authorization header consists of
Bearerfollowed by many period characters, a call to that function incurs allocations to the tune of O(n) bytes (where n stands for the length of the function's argument), with a constant factor of about 16. Relevant weakness: CWE-405: Asymmetric Resource Consumption (Amplification)Details
See
parse.ParseUnverifiedImpact
Excessive memory allocation
Release Notes
golang-jwt/jwt (github.com/golang-jwt/jwt/v4)
v4.5.2Compare Source
See GHSA-mh63-6h87-95cp
Full Changelog: golang-jwt/jwt@v4.5.1...v4.5.2
v4.5.1Compare Source
Security
Unclear documentation of the error behavior in
ParseWithClaimsin <= 4.5.0 could lead to situation where users are potentially not checking errors in the way they should be. Especially, if a token is both expired and invalid, the errors returned byParseWithClaimsreturn both error codes. If users only check for thejwt.ErrTokenExpiredusingerror.Is, they will ignore the embeddedjwt.ErrTokenSignatureInvalidand thus potentially accept invalid tokens.This issue was documented in GHSA-29wx-vh33-7x7r and fixed in this release.
Note:
v5was not affected by this issue. So upgrading to this release version is also recommended.What's Changed
ParseWithClaimsfromv5branch. This fixes GHSA-29wx-vh33-7x7r.Full Changelog: golang-jwt/jwt@v4.5.0...v4.5.1
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.