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-cluemidnight-clueBot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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-clueBot marked this pull request as ready for review July 30, 2026 16:01
@midnight-clue
midnight-clueBot requested a review from a team as a code ownerJuly 30, 2026 16:01

@clue-gygclue-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.

claudeand 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 freeto 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

@clue-gyg@catarina-correia@claude