build(deps): force patched jackson-core on Dokka classpath (GHSA-r7wm-3cxj-wff9)#6372
Merged
Merged
Conversation
…-3cxj-wff9) Dependabot alert #60 flags com.fasterxml.jackson.core:jackson-core < 2.18.8 (GHSA-r7wm-3cxj-wff9 — async-parser maxNumberLength bypass, memory exhaustion, CWE-770, High). jackson-core is not a declared dependency anywhere in the app or the version catalog; it is a build-time-only transitive of Dokka 2.2.0 (dokka-core -> jackson-dataformat-xml / jackson-module-kotlin 2.15.3 -> jackson-core 2.15.3) that rides the Dokka generator classpath and never ships in the APK. Dokka 2.2.0 is already the latest release in every channel, so there is no version bump that moves it off 2.15.3. Force jackson-core to 2.18.8 (first patched release, closest maintenance line to Dokka's 2.15.3) on every Dokka configuration, centralized in the existing Dokka convention plugin and applied from both configureDokka() and configureDokkaAggregation(). No allprojects{}/subprojects{} iteration, keeping it compatible with Gradle Isolated Projects. Forcing only jackson-core while its siblings stay at 2.15.3 is the officially-safe "core-ahead" direction within Jackson 2.x. Verified: dependencyInsight shows 2.15.3 -> 2.18.8 (forced) on root and :core:model; spotlessCheck + detekt pass; :core:model:dokkaGenerateModuleHtml builds successfully with no jackson version-mismatch at runtime. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughDokka build conventions now force a patched ChangesDokka dependency pinning
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
jamesarich
enabled auto-merge
July 22, 2026 18:55
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.
Why
Dependabot #60 flags
com.fasterxml.jackson.core:jackson-core < 2.18.8— GHSA-r7wm-3cxj-wff9, an async-parsermaxNumberLengthbypass causing unboundedTextBufferallocation (memory exhaustion, CWE-770, High / CVSS 8.7).jackson-coreis not a declared dependency anywhere in the app orgradle/libs.versions.toml. It is a build-time-only transitive of Dokka 2.2.0:It rides Dokka's generator classpath (
dokkaHtmlGeneratorRuntime), never ships in the APK, and the vulnerable path (a reactive HTTP server fed attacker-controlled chunked JSON) is unreachable here. Dokka2.2.0is already the latest release in every channel (Maven Central, GitHub tags, JetBrains dev/beta) — there is no version bump that moves it off2.15.3, so aresolutionStrategy.forceis the only route to a patched jackson-core.🛠️ What changed
build-logic/convention/.../Dokka.kt: forcejackson-coreto 2.18.8 on every Dokka configuration, centralized in the existing Dokka convention plugin and applied from bothconfigureDokka()(per-module) andconfigureDokkaAggregation()(root).2.18.8is the first patched release and the closest maintenance line to Dokka's transitive2.15.3(advisory patched lines: 2.18.8 / 2.21.4 / 2.22.1).jackson-corewhile its siblings (databind/dataformat-xml/module-kotlin) stay at 2.15.3 is the officially-safe "core-ahead" direction within Jackson 2.x.allprojects {}/subprojects {}iteration — kept compatible with Gradle Isolated Projects, matching the existing convention.✅ Testing Performed
dependencyInsight: resolves2.15.3 -> 2.18.8 (forced, By constraint)on both the root aggregation classpath and:core:model../gradlew spotlessCheck detekt— pass../gradlew :core:model:dokkaGenerateModuleHtml— BUILD SUCCESSFUL, no jackson version-mismatch (NoSuchMethodError/NoClassDefFoundError/AbstractMethodError) at execution time.assembleDebug/test/allTests) intentionally not run: this touches only the Dokka docs classpath and cannot affect app compilation or runtime.Note for reviewers
When a future Dokka release bundles a patched jackson, this force becomes a harmless no-op (it only fires if jackson-core is still below 2.18.8 on the Dokka classpath) and can be dropped. If Dependabot's rescan uses static parsing rather than live resolution, alert #60 may not auto-close on merge — it can then be dismissed citing the build-time-only + patched-force rationale.
Summary by CodeRabbit