{"id":"GHSA-j2pc-v64r-mv4f","summary":"Protobuf Maven Plugin protocDigest is ignored when using protoc from PATH","details":"### Summary\nThe expected `protocDigest` is ignored when protoc is taken from the `PATH`.\n\n### Details\nThe documentation for the `protocDigest` parameter says:\n\u003e ... Users may wish to specify this if using a `PATH`-based binary ...\n\nHowever, when specifying `\u003cprotoc\u003ePATH\u003c/protoc\u003e` the `protocDigest` is not actually checked because the code returns here already\nhttps://github.com/ascopes/protobuf-maven-plugin/blob/59097aae8062c461129a13dcda2f4116b90a8765/protobuf-maven-plugin/src/main/java/io/github/ascopes/protobufmavenplugin/protoc/ProtocResolver.java#L91-L93\n\nbefore the digest check:\nhttps://github.com/ascopes/protobuf-maven-plugin/blob/59097aae8062c461129a13dcda2f4116b90a8765/protobuf-maven-plugin/src/main/java/io/github/ascopes/protobufmavenplugin/protoc/ProtocResolver.java#L106\n\n### PoC\nSpecify:\n```xml\n\u003cprotoc\u003ePATH\u003c/protoc\u003e\n\u003cprotocDigest\u003esha256:0000000000000000000000000000000000000000000000000000000000000000\u003c/protocDigest\u003e\n```\n\nAnd notice how the `protoc` on the `PATH` is not rejected, despite a digest mismatch.\n\n### Impact\nUsers who have an untrusted `protoc` executable on their `PATH` and rely `\u003cprotocDigest\u003e` as protection are affected.","modified":"2025-11-15T04:13:12.521811Z","published":"2025-11-04T15:48:09Z","database_specific":{"nvd_published_at":null,"cwe_ids":["CWE-354","CWE-693"],"severity":"LOW","github_reviewed":true,"github_reviewed_at":"2025-11-04T15:48:09Z"},"references":[{"type":"WEB","url":"https://github.com/ascopes/protobuf-maven-plugin/security/advisories/GHSA-j2pc-v64r-mv4f"},{"type":"WEB","url":"https://github.com/ascopes/protobuf-maven-plugin/commit/d3330e7038a296fe595c5470a22019eb70e35b07"},{"type":"PACKAGE","url":"https://github.com/ascopes/protobuf-maven-plugin"}],"affected":[{"package":{"name":"io.github.ascopes:protobuf-maven-plugin","ecosystem":"Maven","purl":"pkg:maven/io.github.ascopes/protobuf-maven-plugin"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0"},{"fixed":"4.0.2"}]}],"versions":["4.0.0","4.0.1"],"database_specific":{"last_known_affected_version_range":"\u003c= 4.0.1","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/11/GHSA-j2pc-v64r-mv4f/GHSA-j2pc-v64r-mv4f.json"}},{"package":{"name":"io.github.ascopes:protobuf-maven-plugin","ecosystem":"Maven","purl":"pkg:maven/io.github.ascopes/protobuf-maven-plugin"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.10.2"}]}],"versions":["0.0.1","0.0.1-M1","0.0.1-M2","0.0.1-M3","0.0.1-M4","0.1.0","0.1.1","0.1.2","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.3.0","0.3.1","0.3.2","0.3.3","0.4.0","0.4.1","0.4.2","0.5.0","0.5.1","1.0.0","1.1.0","1.1.1","1.1.2","1.1.3","1.2.0","1.2.0-rc1","1.2.1","2.0.0","2.0.0-alpha1","2.0.0-alpha2","2.0.1","2.0.2","2.0.3","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.10.0","2.10.1","2.10.2","2.10.3","2.10.4","2.10.5","2.10.6","2.11.0","2.12.0","2.12.1","2.13.0","2.13.1","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.5.0","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.7.0","2.7.1","2.7.2","2.7.3","2.8.0","2.8.1","2.9.0","2.9.1","2.9.2","3.0.0","3.1.0","3.1.1","3.1.2","3.1.3","3.10.0","3.10.1","3.2.0","3.2.1","3.2.2","3.2.3","3.3.0","3.3.1","3.4.0","3.4.1","3.4.2","3.5.0","3.6.0","3.6.1","3.7.0","3.8.0","3.8.1","3.8.2","3.9.0","3.9.1","3.9.2"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/11/GHSA-j2pc-v64r-mv4f/GHSA-j2pc-v64r-mv4f.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}