Skip to content

USPR-13773: force io.netty to >= 4.2.16.Final to fix CORS short-circuit security bypass - #382

Open
midnight-clue[bot] wants to merge 3 commits into
mainfrom
claude/USPR-13773-bump-netty-4-2-16
Open

USPR-13773: force io.netty to >= 4.2.16.Final to fix CORS short-circuit security bypass#382
midnight-clue[bot] wants to merge 3 commits into
mainfrom
claude/USPR-13773-bump-netty-4-2-16

Conversation

@midnight-clue

@midnight-clue midnight-clue Bot commented Jul 30, 2026

Copy link
Copy Markdown

Context & Problem

GitHub Dependabot flagged io.netty:netty-codec-http (< 4.2.16.Final) for GHSA-6cqp-g7gg-8hr5, a moderate-severity security control bypass via CORS short-circuit failure (Dependabot alert #108). Netty is a transitive dependency in this repo's dependency tree, and the root build.gradle already enforces a minimum Netty version via a resolutionStrategy.eachDependency override (previously 4.2.15.Final, addressing a prior batch of Netty GHSAs from USPR-13707). Jira: USPR-13773.

Solution

Raised the forced io.netty version threshold in the existing resolutionStrategy.eachDependency block (root build.gradle) from 4.2.15.Final to 4.2.16.Final, and extended the because() justification string with GHSA-6cqp-g7gg-8hr5. No new dependency-pinning mechanism was introduced since Netty is only a transitive dependency here; the existing override is the established pattern for this. The example projects' ext['netty.version'] = '4.2.15.Final' pins were left untouched since the root resolutionStrategy override applies across all subprojects and already forces any lower Netty version up to 4.2.16.Final.

Verification

  • io.netty dependencies below 4.2.16.Final are forced to 4.2.16.Final (updated resolutionStrategy.eachDependency threshold and useVersion call in root build.gradle)
  • GHSA-6cqp-g7gg-8hr5 documented in the because() justification string alongside the existing GHSA list

🔍 Braintrust trace

USPR-13773

Co-Authored-By: Catarina Correia <catarina.correia@getyourguide.com>
@midnight-clue
midnight-clue Bot marked this pull request as ready for review July 30, 2026 16:01
@midnight-clue
midnight-clue Bot requested a review from a team as a code owner July 30, 2026 16:01

@clue-gyg clue-gyg left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Auto-approved as trivial change

Trivial version-bump only change to build.gradle (~10 lines), raising the enforced minimum io.netty version from 4.2.15.Final to 4.2.16.Final to address a security vulnerability (GHSA-6cqp-g7gg-8hr5); no new dependencies added/removed, no API or behavior changes, consistent with the version-field-update exception for dependency manifests.

claude and others added 2 commits July 30, 2026 16:03
The Spring dependency-management BOM override in the example modules takes precedence over the root resolutionStrategy.eachDependency block and must be bumped in lockstep, per the pattern established in USPR-13707. This ensures io.netty dependencies in the example projects are forced to 4.2.16.Final, matching the security baseline.

USPR-13773

Co-Authored-By: Catarina Correia <catarina.correia@getyourguide.com>
…sion

Adds a `verifyNettyVersion` Gradle task wired into the `check` task that fails the build if any resolved `io.netty` dependency is below 4.2.16.Final. This gives automated regression coverage for GHSA-6cqp-g7gg-8hr5 across all subprojects (including examples, where a BOM override previously caused a silent regression that manual checks missed).

The task runs per-subproject and iterates all resolvable configurations, checking each resolved module dependency against the enforced minimum version, using the same string-comparison style (`version < '4.2.16.Final'`) already established in the existing resolutionStrategy.eachDependency block for consistency.

USPR-13773

Co-Authored-By: Catarina Correia <catarina.correia@getyourguide.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.

3 participants