GitHub Advisoryadvisory · Maven
GHSA-j2pc-v64r-mv4f Protobuf Maven Plugin protocDigest is ignored when using protoc from PATH
LOW
Official page ↗
- Ecosystem
- Maven
- Packages
- io.github.ascopes:protobuf-maven-plugin
- Severity
- Low
- CVSS vector
- CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
- Weaknesses
- CWE-354, CWE-693
- Reviewed
- 2025-11-04
Affected packages
• Maven io.github.ascopes:protobuf-maven-plugin: >= 4.0.0, < 4.0.2 → fixed in 4.0.2
• Maven io.github.ascopes:protobuf-maven-plugin: < 3.10.2 → fixed in 3.10.2
Description
Summary
The expected `protocDigest` is ignored when protoc is taken from the `PATH`.
Details
The documentation for the `protocDigest` parameter says:
> ... Users may wish to specify this if using a `PATH`-based binary ...
However, when specifying `PATH` the `protocDigest` is not actually checked because the code returns here already
https://github.com/ascopes/protobuf-maven-plugin/blob/59097aae8062c461129a13dcda2f4116b90a8765/protobuf-maven-plugin/src/main/java/io/github/ascopes/protobufmavenplugin/protoc/ProtocResolver.java#L91-L93
before the digest check:
https://github.com/ascopes/protobuf-maven-plugin/blob/59097aae8062c461129a13dcda2f4116b90a8765/protobuf-maven-plugin/src/main/java/io/github/ascopes/protobufmavenplugin/protoc/ProtocResolver.java#L106
PoC
Specify:
```xml
PATH
sha256:0000000000000000000000000000000000000000000000000000000000000000
```
And notice how the `protoc` on the `PATH` is not rejected, despite a digest mismatch.
Impact
Users who have an untrusted `protoc` executable on their `PATH` and rely `` as protection are affected.