Skip to content

fix(deps): force patched kotlin-stdlib and koin-core versions - #4

Merged
bbsnly merged 2 commits into
mainfrom
fix-aikido-kotlin-koin-transitive-deps
Aug 10, 2026
Merged

bbsnly merged 2 commits into
mainfrom
fix-aikido-kotlin-koin-transitive-deps

Conversation

@bbsnly

@bbsnly bbsnly commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Why

Aikido flagged two transitive dependencies in android/app/build.gradle, both pulled in via com.siteimprove:analyticssdk:1.1.0:

  • kotlin-stdlib 1.8.21 (AIKIDO-2026-188556, AIKIDO-2026-550292 — medium)
  • koin-core 3.5.6 (AIKIDO-2025-10040 — low)

Neither version is pinned directly in this repo or in analyticssdk's own kotlin plugin version (2.0.20), so they're resolved from somewhere further down the dependency graph.

Change

Adds a resolutionStrategy.force in android/app/build.gradle pinning both to their patched versions (kotlin-stdlib 2.4.20, koin-core 4.0.2), regardless of which transitive dependency requests the old ones.

Caveat — please verify before merge

I could not run a live Gradle build to confirm this resolves cleanly (local JDK is 25; Gradle 8.10.2 doesn't support it, and I didn't want to change the machine's JDK to test). Please run ./gradlew :app:dependencies (or a full build) locally/in CI before merging to confirm the forced versions don't conflict with anything else in the graph.

Related

  • Root cause for koin-core is being fixed upstream in Siteimprove/appanalytics-android-sdk#14 (bumps koin-bom to 4.0.2). Once that's published and this repo's analyticssdk dependency is bumped to pick it up, the koin-core force here can likely be dropped.

🤖 Generated with Claude Code

Aikido flagged kotlin-stdlib 1.8.21 (AIKIDO-2026-188556,
AIKIDO-2026-550292, medium) and koin-core 3.5.6 (AIKIDO-2025-10040,
low), both pulled in transitively via analyticssdk. Forces
resolution to the patched versions as an immediate mitigation;
the koin-core root cause is being fixed upstream in
appanalytics-android-sdk#14.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

This PR addresses security findings by forcing patched versions of transitive Android dependencies pulled in via com.siteimprove:analyticssdk:1.1.0, using Gradle’s dependency resolution strategy in the app module.

Changes:

  • Adds a Gradle resolutionStrategy.force to pin kotlin-stdlib and koin-core to specific versions.
  • Documents the motivation (Aikido findings) inline in android/app/build.gradle.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread android/app/build.gradle
Comment thread android/app/build.gradle Outdated
…onfigureEach

- Bump kotlinVersion (Kotlin Gradle plugin) to 2.4.20 to match the
  forced kotlin-stdlib version; a plugin/stdlib mismatch causes
  build-time ABI/metadata errors.
- Force kotlin-stdlib off rootProject.ext.kotlinVersion instead of a
  hardcoded literal so the two can't drift apart again.
- Switch configurations.all to configurations.configureEach to keep
  Gradle's configuration-avoidance benefits.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

android/app/build.gradle:127

  • This comment says the stdlib force can’t drift out of lockstep with the Kotlin Gradle plugin version, but in this repo the Kotlin plugin version isn’t explicitly pinned from rootProject.ext.kotlinVersion (it’s currently only used for the stdlib force). Update the comment to avoid implying the plugin version is automatically aligned.
// kotlin-stdlib is forced to rootProject.ext.kotlinVersion, not a hardcoded literal,
// so it can never drift out of lockstep with the Kotlin Gradle plugin version.

@bbsnly
bbsnly merged commit b4290d9 into main Aug 10, 2026
1 check passed
bbsnly added a commit that referenced this pull request Aug 10, 2026
Picks up the koin-core CVE fix (Siteimprove/appanalytics-android-sdk#14)
once that SDK version is published. Once merged, the kotlin-stdlib/
koin-core resolutionStrategy.force added in #4 can likely be
re-evaluated/dropped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@bbsnly
bbsnly deleted the fix-aikido-kotlin-koin-transitive-deps branch August 10, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants