CVE-2019-10344
Description
Missing permission checks in Jenkins Configuration as Code Plugin 1.24 and earlier in various HTTP endpoints allowed users with Overall/Read access to access the generated schema and documentation for this plugin containing detailed information about installed plugins.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Jenkins Configuration as Code Plugin 1.24 and earlier lacked permission checks on HTTP endpoints, allowing Overall/Read users to view generated schema and documentation of installed plugins.
Missing
Permission Check in Configuration as Code Plugin
Jenkins Configuration as Code Plugin versions 1.24 and earlier contained missing permission checks in various HTTP endpoints. These endpoints exposed the generated schema and documentation for the plugin, which contain detailed information about installed plugins. The issue was identified as SECURITY-1290 and affects all plugin versions prior to 1.25 [1][3].
The attack surface is accessible to any authenticated user with Overall/Read permission, a default permission granted to most authenticated users. The affected HTTP endpoints did not enforce the required Jenkins.ADMINISTER permission, allowing users with read-only access to retrieve sensitive configuration schema and documentation. This can be exploited remotely over the network without any special prerequisites beyond a valid Jenkins account with read access [1][2].
The impact is information disclosure: an attacker gains detailed insight into the installed plugins, their configuration parameters, and possibly the plugin schema itself. While this does not directly allow code execution or data modification, it can significantly aid in planning further attacks by revealing the plugin landscape and potential weaknesses [1][3].
The vulnerability has been addressed in Configuration as Code Plugin version 1.25, which adds proper permission checks (Jenkins.ADMINISTER) to the doReference and doSchema endpoints [4]. Users are advised to upgrade to version 1.25 or later. There is no workaround available beyond restricting Overall/Read access, which is often not feasible in multi-user Jenkins deployments [1][2].
AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
io.jenkins:configuration-as-codeMaven | < 1.25 | 1.25 |
Affected products
2- Jenkins project/Jenkins Configuration as Code Pluginv5Range: 1.24 and earlier
Patches
11c531c1a46fc[SECURITY-1290]
2 files changed · +69 −0
plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java+18 −0 modified@@ -414,6 +414,24 @@ public void doViewExport(StaplerRequest req, StaplerResponse res) throws Excepti req.getView(this, "viewExport.jelly").forward(req, res); } + public void doReference(StaplerRequest req, StaplerResponse res) throws Exception { + if (!Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER)) { + res.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } + + req.getView(this, "reference.jelly").forward(req, res); + } + + public void doSchema(StaplerRequest req, StaplerResponse res) throws Exception { + if (!Jenkins.getInstance().hasPermission(Jenkins.ADMINISTER)) { + res.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } + + req.getView(this, "schema.jelly").forward(req, res); + } + @Restricted(NoExternalUse.class) public void export(OutputStream out) throws Exception {
plugin/src/test/java/io/jenkins/plugins/casc/Security1290Test.java+51 −0 added@@ -0,0 +1,51 @@ +package io.jenkins.plugins.casc; + +import com.gargoylesoftware.htmlunit.HttpMethod; +import com.gargoylesoftware.htmlunit.WebRequest; +import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import jenkins.model.Jenkins; +import org.junit.Rule; +import org.junit.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.MockAuthorizationStrategy; + +import static org.junit.Assert.assertEquals; + +public class Security1290Test { + + @Rule + public JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule(); + + @Test + public void configurationAsCodePagesPermissions() throws Exception { + final String ADMIN = "admin"; + final String USER = "user"; + + j.jenkins.setCrumbIssuer(null); + j.jenkins.setSecurityRealm(j.createDummySecurityRealm()); + j.jenkins.setAuthorizationStrategy(new MockAuthorizationStrategy() + .grant(Jenkins.ADMINISTER).everywhere().to(ADMIN) + .grant(Jenkins.READ).everywhere().to(USER) + ); + + JenkinsRule.WebClient adminWc = j.createWebClient(); + adminWc.login(ADMIN); + + JenkinsRule.WebClient userWc = j.createWebClient() + .withThrowExceptionOnFailingStatusCode(false); + userWc.login(USER); + + assertRightPermissionConfigurations("configuration-as-code/schema", adminWc, userWc); + assertRightPermissionConfigurations("configuration-as-code/reference", adminWc, userWc); + } + + private void assertRightPermissionConfigurations(String relativeUrl, JenkinsRule.WebClient adminWc, JenkinsRule.WebClient userWc) throws IOException { + WebRequest request = new WebRequest(new URL(j.getURL() + relativeUrl), HttpMethod.GET); + + assertEquals(HttpURLConnection.HTTP_OK, adminWc.getPage(request).getWebResponse().getStatusCode()); + assertEquals(HttpURLConnection.HTTP_FORBIDDEN, userWc.getPage(request).getWebResponse().getStatusCode()); + } +}
Vulnerability mechanics
Generated 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-mqr8-3v8j-46wvghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2019-10344ghsaADVISORY
- www.openwall.com/lists/oss-security/2019/07/31/1ghsamailing-listx_refsource_MLISTWEB
- github.com/jenkinsci/configuration-as-code-plugin/commit/1c531c1a46fc1da6a82cd728bf66428083d30fefghsaWEB
- jenkins.io/security/advisory/2019-07-31/ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.