DarkFlippers / DarkFlippers/qUnleashed

The Gradle distribution and dependencies are unverified

Open
#52 0 comments 0 reactions 1 assignee Claimed by @mishamyte View on GitHub
area/ci-build
Dominant language
C
Stars
111
Forks
8
Avg merge
3h 41m
Merged PRs (30d)
37

Description

Two integrity gaps in the Android release path. Both are harmless today and stop being harmless the moment `~/.gradle` is cached between runs — which was the point of the abandoned attempt in #48, so they should be closed before that returns.

**The Gradle distribution is unverified.** `android/gradle/wrapper/gradle-wrapper.properties` sets `distributionUrl` for `gradle-8.14-all.zip` with no `distributionSha256Sum`. The wrapper accepts whatever it finds unpacked with an `.ok` marker, so the tool that compiles and signs the release artifacts is taken on trust. Gradle publishes the checksum; adding the line is one edit.

**Dependency verification is off.** There is no `android/gradle/verification-metadata.xml`, so every AAR and JAR that ends up inside the APK is resolved and used without a checksum or signature check.

Neither is reachable from a fork pull request today — `ci.yml` builds no Android and writes no Gradle cache, and fork caches are scope-isolated. Both are reachable by anyone who can push a tag.

The reason to fix them before caching returns: a cache turns a one-off into a persistent one. Caches survive between runs and the release path only runs on tags, so a single bad run would influence every subsequent signed release rather than one.

- [ ] Add `distributionSha256Sum` to `gradle-wrapper.properties`
- [ ] Decide on `verification-metadata.xml` — real value, but it needs regenerating whenever a dependency moves, so it is a maintenance commitment
- [ ] If `~/.gradle` is cached later, leave `~/.gradle/wrapper` out of the cached paths; the distribution download is not where the time goes

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.