[Aikido] Fix 20 security issues in netty-handler, netty-codec-http2, netty-codec-socks and 13 more - #362
Open
aikido-autofix[bot] wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
2 Open source vulnerabilities detected - medium severity
Aikido detected 2 vulnerabilities across 2 packages, it includes 2 medium vulnerabilities.
Details
Remediation:
Eclipse Jetty— 1 CVE (medium) — fixed in 12.1.10org.eclipse.jetty:jetty-util— 1 CVE (medium) — fixed in 12.1.9
Reply @AikidoSec ignore: [REASON] to ignore this issue.
More info
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade dependencies to fix critical mTLS bypass via SNI misconfiguration, hostname verification failures on Java 25+, HTTP/1-to-HTTP/2 conversion vulnerabilities enabling host boundary bypass and request smuggling, and Extended CONNECT downgrade attacks.
✅ No breaking changes from the Kotlin stdlib upgrade (1.9.25 => 2.1.0) affect this codebase. The code uses standard Kotlin patterns that are fully compatible with Kotlin 2.0+ and does not use any of the deprecated APIs or problematic patterns mentioned in the changelog.
All breaking changes by upgrading org.jetbrains.kotlin:kotlin-stdlib-jdk7 from version 1.9.25 to 2.1.0 (CHANGELOG)
KT-85062Deprecate language version 2.1KT-79663KLIB-based compilers: Promote partial linkage to "always on"KT-76934Drop old IR parameter APIKT-72950Partial Linkage: Change the semantics of-Xpartial-linkage-loglevelKT-84714KJS: Forbid exporting properties with context parametersKT-67809Native: remove support for non-opaque LLVM pointer typesKT-82127Remove generator-based coroutines intrinsics after bootstrapKT-83992Drop K1 JS entry point and IC codeKT-84684RemoveUserVisibleIrModulesSupportfrom IR linkerKT-85122Deprecate kotlin.io.readLine with WARNINGKT-84970Deprecate AbstractCoroutineContextKey and associated APIKT-85127Remove kotlin.test.assert*NoInline hidden functionsKT-71278Enable Concurrent Mark and Sweep (CMS) GC by defaultKT-84826Bump the minimum deployment version of Apple targetsKT-84615KJS: Forbid@JsStaticon extension functions/propertiesStability.Unknown, except for those explicitly marked as known stableUnknowninstead ofStableAll breaking changes by upgrading org.jetbrains.kotlin:kotlin-stdlib-jdk8 from version 1.9.25 to 2.1.0 (CHANGELOG)
KT-85062Deprecate language version 2.1KT-79663KLIB-based compilers: Promote partial linkage to "always on"KT-76634PL: Don't report warnings in cases that don't lead to runtime errorsKT-72950Partial Linkage: Change the semantics of-Xpartial-linkage-loglevelKT-84714KJS: Forbid exporting properties with context parametersKT-84615KJS: Forbid@JsStaticon extension functions/propertiesKT-82122Prohibit arbitrary placement of type parameters in callable reference LHSKT-84488Export in previous version: Prohibit using on 2nd stageKT-85122Deprecate kotlin.io.readLine with WARNINGKT-84970Deprecate AbstractCoroutineContextKey and associated APIKT-84826Bump the minimum deployment version of Apple targetsKT-71278Enable Concurrent Mark and Sweep (CMS) GC by defaultKT-81433Generate C-interop KLIBs in previous ABI version in Kotlin 2.4.0Stability.Unknown, except for those explicitly marked as known stableUnknowninstead ofStableStability.Runtimemore broadly. Now, when an element depends on the stability of aninternalorpublicclass defined in another file, the element will no longer infer the stability of that class and will depend on the runtime stability of that class instead✅ 20 CVEs resolved by this upgrade, including 1 critical 🚨 CVE
This PR will resolve the following CVEs:
:authoritypseudo-header, enabling request smuggling and tunnel-destination bypass in proxies.Flux.windowTimeoutwith fair backpressure can cause the operator to hang indefinitely on long-lived streams, allowing attackers to exhaust resources through denial of service.Flux.bufferTimeoutwith fair backpressure can cause the stream to hang when upstream items arrive during buffer flushing, leaving items unprocessed. An attacker can exploit this to exhaust subscriptions, resulting in denial of service.🔗 Related Tasks
🤖 Remediation details
Fix transitive Netty, Reactor, Spring Framework, and Kotlin stdlib vulnerabilities
This PR remediates security vulnerabilities in
io.netty:netty-handler,io.netty:netty-codec-http,io.netty:netty-codec-http2,io.netty:netty-codec-socks,io.projectreactor.netty:reactor-netty-http,io.projectreactor.netty:reactor-netty-core,io.projectreactor:reactor-core,org.springframework:spring-web,org.springframework:spring-beans,org.springframework:spring-core,org.jetbrains.kotlin:kotlin-stdlib,org.jetbrains.kotlin:kotlin-stdlib-jdk7, andorg.jetbrains.kotlin:kotlin-stdlib-jdk8. All affected artifacts were resolved transitively through threecompileOnlydirect dependencies declared inagent/build.gradle. Fixes were applied by bumping those three direct dependencies and raising the project-wide Java compatibility target in the rootbuild.gradle.io.netty:netty-handler
netty-handlerwas resolved transitively at4.1.115.Finalthrough the direct dependencyio.projectreactor.netty:reactor-netty-http:1.2.1. Bumpingreactor-netty-httpto1.3.7inagent/build.gradlecauses Gradle to resolvenetty-handlerat4.2.17.Final, which satisfies the≥ 4.1.137.Finalpatched floor. No direct pin was needed.io.netty:netty-codec-http
netty-codec-httpwas resolved transitively at4.1.115.Finalviareactor-netty-http:1.2.1. The same parent bump toreactor-netty-http:1.3.7resolvesnetty-codec-httpto4.2.17.Final, meeting the≥ 4.1.137.Finalrequirement.io.netty:netty-codec-http2
netty-codec-http2was resolved transitively at4.1.115.Finalviareactor-netty-http:1.2.1. Bumpingreactor-netty-httpto1.3.7resolvesnetty-codec-http2to4.2.17.Final, satisfying the≥ 4.1.138.Finalpatched floor.io.netty:netty-codec-socks
netty-codec-sockswas resolved transitively at4.1.115.Finalthroughreactor-netty-core:1.2.1, which is itself a transitive ofreactor-netty-http:1.2.1. Bumpingreactor-netty-httpto1.3.7pulls inreactor-netty-core:1.3.7, which resolvesnetty-codec-socksto4.2.17.Final, meeting the≥ 4.1.137.Finalrequirement.io.projectreactor.netty:reactor-netty-http
reactor-netty-httpwas declared directly inagent/build.gradleat1.2.1. It was bumped to1.3.7— the smallest release that transitively resolves all affected Netty artifacts,reactor-netty-core, andreactor-coreto their respective patched floors.io.projectreactor.netty:reactor-netty-core
reactor-netty-corewas resolved transitively at1.2.1as a dependency ofreactor-netty-http:1.2.1. Bumpingreactor-netty-httpto1.3.7bringsreactor-netty-coreto1.3.7, satisfying the≥ 1.3.7patched floor.io.projectreactor:reactor-core
reactor-corewas resolved transitively at3.7.1throughreactor-netty-core:1.2.1. The bump ofreactor-netty-httpto1.3.7causesreactor-netty-core:1.3.7to pull inreactor-core:3.8.7, meeting the≥ 3.8.7requirement.org.springframework:spring-web
spring-webwas declared directly inagent/build.gradleat5.3.20. It was bumped to6.2.19, the smallest Spring 6.x release that patches the affected vulnerability range (≥ 5.3.0 ≤ 6.2.18). Spring Framework 6.x requires a minimum JVM runtime of 17, so the project-widesourceCompatibility/targetCompatibilityin the rootbuild.gradlewas raised fromVERSION_16toVERSION_17accordingly; Java 21 is available in this environment. Upgrading to7.0.9was not possible without source-level changes because the project callsServerHttpResponse.getRawStatusCode(), an API removed in Spring 7.x.org.springframework:spring-beans
spring-beanswas resolved transitively at5.3.20as a dependency ofspring-web:5.3.20. Bumpingspring-webto6.2.19resolvesspring-beansto6.2.19. The full7.0.9target was blocked by the same source-level API incompatibility described underspring-web.org.springframework:spring-core
spring-corewas resolved transitively at5.3.20throughspring-web:5.3.20. The bump ofspring-webto6.2.19resolvesspring-coreto6.2.19, which is the patched version for the Spring Framework vulnerability chain.org.jetbrains.kotlin:kotlin-stdlib
kotlin-stdlibwas resolved transitively at1.9.25throughio.javalin:javalin:6.4.0. Bumpingjavalinto7.0.0inagent/build.gradlecauses thekotlin-stdlib-jdk7/jdk8split artifacts to be dropped entirely by the Javalin 7.x dependency graph, andkotlin-stdlib:2.2.20is resolved instead — well above the≥ 2.1.0patched floor.org.jetbrains.kotlin:kotlin-stdlib-jdk7
kotlin-stdlib-jdk7was resolved transitively at1.9.25viajavalin:6.4.0 → kotlin-stdlib-jdk8:1.9.25. The bump ofjavalinto7.0.0removes this artifact from the resolved dependency graph entirely, eliminating the vulnerability.org.jetbrains.kotlin:kotlin-stdlib-jdk8
kotlin-stdlib-jdk8was resolved transitively at1.9.25as a direct dependency ofjavalin:6.4.0. The bump ofjavalinto7.0.0removes this artifact from the resolved graph, eliminating the vulnerability.Version changes
io.projectreactor.netty:reactor-netty-http1.2.11.3.7io.projectreactor.netty:reactor-netty-core1.2.11.3.7reactor-netty-http:1.3.7)io.projectreactor:reactor-core3.7.13.8.7reactor-netty-http:1.3.7)io.netty:netty-handler4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-codec-http4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-codec-http24.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-codec-socks4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7→reactor-netty-core:1.3.7)io.netty:netty-common4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-buffer4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-transport4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-resolver4.1.115.Final4.2.17.Finalreactor-netty-http:1.3.7)io.netty:netty-codec4.1.115.Finalnetty-codec-basein Netty 4.2.x after parent bumporg.springframework:spring-web5.3.206.2.19org.springframework:spring-beans5.3.206.2.19spring-web:6.2.19)org.springframework:spring-core5.3.206.2.19spring-web:6.2.19)io.javalin:javalin6.4.07.0.0kotlin-stdlib-jdk7/jdk8transitivesorg.jetbrains.kotlin:kotlin-stdlib1.9.252.2.20javalin:7.0.0)org.jetbrains.kotlin:kotlin-stdlib-jdk71.9.25javalin:7.0.0)org.jetbrains.kotlin:kotlin-stdlib-jdk81.9.25javalin:7.0.0)