Jenkins Unauthenticated Access Detection
Jenkins instances frequently expose sensitive endpoints without authentication. Default installations before version 2.0 had no security enabled at all. Even on newer versions, administrators often misconfigure authorization to allow anonymous read access or leave the script console exposed. This page confirms which high-value endpoints are accessible without credentials. For version and API enumeration, see Jenkins enumeration.
Script Console Access
The Groovy script console at /script executes arbitrary code on the Jenkins server. If it loads without a login redirect, the instance is vulnerable to immediate RCE.
200
200 means the script console is accessible. Proceed to Groovy console RCE. 403 or 302 to /login means authentication is required for this endpoint.
Credential Store Exposure
The credentials page at /credentials/ lists stored secrets. If accessible without auth, it reveals credential types and IDs. The actual secret values are masked in the UI but can be extracted through the script console or API if either is also accessible.
200
Build and Workspace Access
Build logs and workspaces contain source code, environment variables, deployment scripts, and credentials leaked during execution. Check whether anonymous users can read them.
200
200
Workspaces expose the job's working directory: source code, build artifacts, config files, and .env files.
System Information Disclosure
The /systemInfo page shows JVM version, OS details, and all Java system properties. Environment variables may contain AWS keys, database passwords, or API tokens.
200
CLI Endpoint Check
The Jenkins CLI JAR is downloadable at /jnlpJars/jenkins-cli.jar. If the CLI is enabled, it can be used for CVE-2024-23897 arbitrary file read even without authentication.
200
200 means the CLI JAR is available for download. This does not confirm CVE-2024-23897, but confirms the CLI attack surface exists.
Default Credentials
Jenkins installations using the setup wizard generate a random initial admin password stored at /var/lib/jenkins/secrets/initialAdminPassword. Installations that skip the wizard or use configuration management may have default or weak credentials.
200
Try admin:admin, admin:password, admin:jenkins. 200 with valid JSON means the credentials work.
References
-
Jenkins: Security Best PracticesLINK: Jenkins: Security Best Practices, www.jenkins.io/doc/book/security (opens in new tab)
Authorization matrix, CSRF protection, and access control configuration.
-
Hacking Articles: Jenkins Penetration TestingLINK: Hacking Articles: Jenkins Penetration Testing, www.hackingarticles.in/jenkins-penetration-testing (opens in new tab)
Enumeration and exploitation walkthrough.