Moderate severityNVD Advisory· Published Jul 31, 2019· Updated Aug 4, 2024
CVE-2019-10359
CVE-2019-10359
Description
A cross-site request forgery vulnerability in Jenkins Maven Release Plugin 0.14.0 and earlier in the M2ReleaseAction#doSubmit method allowed attackers to perform releases with attacker-specified options.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
org.jenkins-ci.plugins.m2release:m2releaseMaven | < 0.15.0 | 0.15.0 |
Affected products
1- Range: 0.14.0 and earlier
Patches
12f1117d011e1[SECURITY-1098]
1 file changed · +13 −0
src/main/java/org/jvnet/hudson/plugins/m2release/M2ReleaseAction.java+13 −0 modified@@ -55,6 +55,7 @@ import org.apache.maven.shared.release.versions.VersionParseException; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.interceptor.RequirePOST; /** * The action appears as the link in the side bar that users will click on in @@ -85,6 +86,7 @@ public M2ReleaseAction(MavenModuleSet project, boolean selectCustomScmCommentPre } public List<ParameterDefinition> getParameterDefinitions() { + M2ReleaseBuildWrapper.checkReleasePermission(project); ParametersDefinitionProperty pdp = project.getProperty(ParametersDefinitionProperty.class); List<ParameterDefinition> pds = Collections.emptyList(); if (pdp != null) { @@ -114,10 +116,12 @@ public String getUrlName() { } public boolean isSelectScmCredentials() { + M2ReleaseBuildWrapper.checkReleasePermission(project); return selectScmCredentials; } public boolean isSelectCustomScmCommentPrefix() { + M2ReleaseBuildWrapper.checkReleasePermission(project); return selectCustomScmCommentPrefix; } @@ -126,6 +130,7 @@ public void setSelectCustomScmCommentPrefix(boolean selectCustomScmCommentPrefix } public boolean isSelectAppendHudsonUsername() { + M2ReleaseBuildWrapper.checkReleasePermission(project); return selectAppendHudsonUsername; } @@ -134,6 +139,7 @@ public void setSelectAppendHudsonUsername(boolean selectAppendHudsonUsername) { } public boolean isSelectCustomScmTag() { + M2ReleaseBuildWrapper.checkReleasePermission(project); return selectCustomScmTag; } @@ -146,6 +152,7 @@ public MavenModule getRootModule() { } public String computeReleaseVersion() { + M2ReleaseBuildWrapper.checkReleasePermission(project); String version = "NaN"; final MavenModule rootModule = getRootModule(); if (rootModule != null && StringUtils.isNotBlank(rootModule.getVersion())) { @@ -162,6 +169,7 @@ public String computeReleaseVersion() { } public String computeRepoDescription() { + M2ReleaseBuildWrapper.checkReleasePermission(project); StringBuilder sb = new StringBuilder(); sb.append(project.getRootModule().getName()); sb.append(':'); @@ -170,6 +178,7 @@ public String computeRepoDescription() { } public String computeScmTag() { + M2ReleaseBuildWrapper.checkReleasePermission(project); // maven default is artifact-version String artifactId = getRootModule() == null ? "M2RELEASE-TAG" : getRootModule().getModuleName().artifactId; StringBuilder sb = new StringBuilder(); @@ -180,6 +189,7 @@ public String computeScmTag() { } public String computeNextVersion() { + M2ReleaseBuildWrapper.checkReleasePermission(project); String version = "NaN-SNAPSHOT"; final MavenModule rootModule = getRootModule(); if (rootModule != null && StringUtils.isNotBlank(rootModule.getVersion())) { @@ -195,9 +205,11 @@ public String computeNextVersion() { } public boolean isNexusSupportEnabled() { + M2ReleaseBuildWrapper.checkReleasePermission(project); return project.getBuildWrappersList().get(M2ReleaseBuildWrapper.class).getDescriptor().isNexusSupport(); } + @RequirePOST public void doSubmit(StaplerRequest req, StaplerResponse resp) throws IOException, ServletException { M2ReleaseBuildWrapper.checkReleasePermission(project); M2ReleaseBuildWrapper m2Wrapper = project.getBuildWrappersList().get(M2ReleaseBuildWrapper.class); @@ -298,6 +310,7 @@ public void doSubmit(StaplerRequest req, StaplerResponse resp) throws IOExceptio * Gets the {@link ParameterDefinition} of the given name, if any. */ public ParameterDefinition getParameterDefinition(String name) { + M2ReleaseBuildWrapper.checkReleasePermission(project); for (ParameterDefinition pd : getParameterDefinitions()) { if (pd.getName().equals(name)) { return pd;
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-r4rv-cq77-6p24ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2019-10359ghsaADVISORY
- www.openwall.com/lists/oss-security/2019/07/31/1ghsamailing-listx_refsource_MLISTWEB
- github.com/jenkinsci/m2release-plugin/commit/2f1117d011e1ef200f28bbb0c24bf918b89704b6ghsaWEB
- jenkins.io/security/advisory/2019-07-31/ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.