apache / apache/maven-wrapper

SHA-256 validation fails when unzip is unavailable because distribution format is silently changed to .tar.gz

Open
#425 1 comment 4 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
254
Forks
78
Avg merge
5h 26m
Merged PRs (30d)
2

Description

When `unzip` is not installed, `mvnw` silently rewrites the `distributionUrl` from `.zip` to `.tar.gz`

```bash
if ! command -v unzip >/dev/null; then
distributionUrl="${distributionUrl%.zip}.tar.gz"
distributionUrlName="${distributionUrl##*/}"
fi
```

(from # Apache Maven Wrapper startup batch script, version 3.3.4)

However, the `distributionSha256Sum` validation on still runs against the configured checksum, which was computed for the `.zip` file. The `.tar.gz` has a different checksum, so validation always fails with:

```
Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised.
If you updated your Maven version, you need to update the specified distributionSha256Sum property.
```

This appears to be to be a design issue – the distibution is either zip or tar.gz but there is only ever a single `distributionSha256Sum` property. What is the reasong for this design? There inevitably need to be a sha sum configured for each downloadable distribution.

## Steps to reproduce

1. Configure `maven-wrapper.properties` with `distributionSha256Sum` for the `.zip` distribution
2. Run `./mvnw` in an environment without `unzip` (e.g. `eclipse-temurin` Docker image)
3. Build fails with SHA-256 validation error

## Expected behavior

Described above.

## Environment

- Maven Wrapper 3.3.4
- `eclipse-temurin:25` Docker image (Ubuntu 26.04, no `unzip`, no `wget`/`curl`)

## Workaround

Install `unzip` in the environment before running `mvnw`, e.g. in Containerfile

```
# Install unzip required by Maven Wrapper to download the .zip distribution;
# without it, mvnw downloads .tar.gz which doesn't match distributionSha256Sum
RUN apt-get update && apt-get install -y unzip
```

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.