avatar
Bug bounty
Public

Jenkins Bug Bounty Program

The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

Reward

Bounty
Hall of fame
€100
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000

Program

Avg reward
-
Max reward
-

Scopes
8
Supported languages
English

Hacktivity

Reports
16
1st response
< 1 day
Reports last 24h
2
Reports last week
16
Reports this month
-

About our project

Jenkins is the leading open source automation server supported by a large and growing community of developers, testers, designers and other people interested in continuous integration, continuous delivery and modern software delivery practices. Built on the Java Virtual Machine (JVM), it provides more than 2,000 plugins that extend Jenkins to automate with practically any technology software delivery teams use. In 2022, Jenkins reached 300,000 known installations making it the most widely deployed automation server.

Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery.

It supports most of the version control tools and most of the build tools, as well as arbitrary shell scripts and Windows batch commands.

About the scope

This program is limited to a specific list of assets. Your tests must be limited to :

  • Jenkins Core and its main components
  • A selection of plugins
  • Use the latest versions of the different component or the latest master/main branch on GitHub
  • Pay attention on the latest weekly releases of the Jenkins core

Reports about other assets won't be eligible for reward. If you find something outside of the scope, feel free to report them through https://www.jenkins.io/security/reporting/

Documentation

You may find our project documentation here.

A docker version is available here.

Program rules

About report's content

To be eligible, your reports must include the hereafter information :

  • General description of the issue
  • Details about the impacted function and specific conditions to be met (ideally, including the vulnerable code snippet)
  • Impacted version (for Core and the minimal set of plugins and their versions)
  • A step by step proof of concept allowing to reliably reproduce the issue (be explicit about the system requirements / configuration)
  • Recommendations and fix suggestions

A detailed template will be provided automatically when submitting a report, please stick to it. This will help us ensure a smooth and swift processing of your reports.

Mind that reports that do not follow the template’s guidelines won’t be eligible for reward. Abuse may lead to further sanctions (e.g. spamming or repeated submission of invalid reports).

Testing Policy, Responsible Disclosure

Please adhere to the following rules while performing research on this program:

  • As the project infrastructure of the project is out of scope, attacks on the provided servers/services are strictly forbidden
  • All reports must be validated manually, submission from automated tools won't be considered and may lead to sanctions (code analysis tools, AI, …)
  • Targeting other users' instances is forbidden (and they are out of scope), only test against your own
  • DO NOT include Personally Identifiable Information (PII) in your report and please REDACT/OBFUSCATE the PII that is part of your PoC (screenshot, server response, JSON file, etc.) as much as possible.
  • Same with secrets, keys and credentials
  • No vulnerability disclosure, full, partial or otherwise, is allowed without prior agreement from us
  • Please avoid submitting security issues on our repositories before reporting it to this program, your report might be considered as a duplicate if a related submission already exists on our repositories
  • The following topics won’t be considered as a valid finding eligible for reward nonetheless, you’re welcome to suggest improvements about it through our repositories but not our bug bounty program :
    • Code improvements/code quality issues without security impact
    • Insecure default/basic configurations
    • Mistakes or lack of precision in our documentation

Furthermore, reports about behaviours that relies on leveraging a legitimate access as an administrator won't be considered for reward. Being administrator of a Jenkins realm grants extended rights which could be abused as for any application. Due to our threat model and context of use we won't consider reports that leverage legitimate administrator access under the assumption that the administrator may have malicious intent and could abuse his level of rights.

Reward Eligibility

We are happy to thank everyone who submits valid reports which help us improve the security, however only those that meet the following eligibility requirements may receive a monetary reward:

  • You must be the first reporter of a vulnerability
  • You must not break any of the testing policy rules listed above
  • You must not be a maintainer of the target component (exception for Jenkins Core)
  • You must not be a member of the Jenkins Security team
  • The vulnerability must be a qualifying vulnerability
  • The report must contain the following elements:
    • Clear textual description of the vulnerability, how it can be exploited, the security impact it has on the application, its users, and remediation advice on fixing the vulnerability
    • Proof of exploitation: screenshots demonstrating the exploit was performed, and showing the final impact
    • Provide complete steps with the necessary information to reproduce the exploit, including (if necessary) code snippets, payloads, commands etc
  • Identical vulnerabilities present in different versions will be considered as a single issue/will warrant a single reward
  • Multiple vulnerabilities caused by one underlying issue will be considered as a single issue/will warrant a single reward

Reward amounts are based on:

  • Reward grid of the report's scope
  • CVSS scoring and actual business impact of the vulnerability upon performing risk analysis

Reward

Asset value CVSS
Low
CVSS
Medium
CVSS
High
CVSS
Critical
High
€500€1,000€2,000€5,000

Systemic issues

1st report100%
2nd report100%
3rd report75%
4th report50%
5th report25%
6th+ report10%

We appreciate all valid reports submitted to our program that enhance our security. However, please note that if a similar issue (see definition in 'More info') has already been reported, by you or any other hunter, the reward will be decreasing according to these percentages.


Scopes

ScopeTypeAsset value
https://github.com/jenkinsci/jenkins
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/stapler
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/jelly
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/winstone
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/script-security-plugin
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/credentials-plugin
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/credentials-binding-plugin
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000
https://github.com/jenkinsci/workflow-cps-plugin
Open Source
High
Low
€500
Medium
€1,000
High
€2,000
Critical
€5,000

Out of scopes

  • Everything from https://www.jenkins.io/security/reporting/#non-issues, and in addition the following items
  • Docker images are not in scope for this program
  • Any components/plugins not explicitly included are not in scope (e.g. forks, libraries or packages)
  • Jenkins installers are not in scope
  • Jenkins project infrastructure (the one hosted by the project) is not in scope
  • Jenkins instances hosted by users are not in scope

Vulnerability types

Qualifying vulnerabilities

  • Cross-Site Scripting (XSS)
  • Remote Code Execution (RCE)
  • Insecure Direct Object Reference (IDOR)
  • Horizontal and vertical privilege escalation
  • Authentication bypass & broken authentication
  • Business Logic Errors vulnerability with real security impact
  • Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA)
  • Cross-Origin Resource Sharing (CORS) with real security impact
  • Cross-site Request Forgery (CSRF) with real security impact
  • Open Redirect
  • Cryptographic flaws (e.g. using insecure crypto primitives, insufficient randomness, incorrect handling of keys, …) with real security impact
  • Memory corruption or safety issues (e.g. use-after-free, double free, aliasing, out-of-bounds access, …)
  • Missing validations of untrusted inputs (e.g. injection of unescaped markup in output, following untrusted symlinks, …) with real security impact
  • Undefined behavior leading to a security vulnerability (e.g. integer overflow)
  • Race conditions (e.g. time-of-check-to-time-of-use races on file system checks)
  • SQL Injection (SQLi)

Non-qualifying vulnerabilities

  • Everything from https://www.jenkins.io/security/reporting/#non-issues
  • Tabnabbing
  • Content/Text injections
  • Clickjacking/UI redressing
  • Denial of Service (DoS) attacks
  • Recently disclosed CVEs (less than 30 days since patch release)
  • CVEs without exploitable vulnerabilities and PoC
  • Open ports or services without exploitable vulnerabilities and PoC
  • Social engineering of staff or contractors
  • Presence of autocomplete attribute on web forms
  • Vulnerabilities affecting outdated browsers or platforms
  • Self-XSS or XSS that cannot be used to impact other users
  • Any hypothetical flaw or best practices without exploitable vulnerabilities and PoC
  • SSL/TLS issues (e.g. expired certificates, best practices)
  • Unexploitable vulnerabilities (e.g. Self-XSS, XSS or Open Redirect through HTTP headers...)
  • Reports with attack scenarios requiring MITM or physical access to victim's device
  • Missing security-related HTTP headers which do not lead directly to an exploitable vulnerability and PoC
  • Session management issues (e.g. lack of expiration, no logout on password change, concurrent sessions)
  • Disclosure of information without exploitable vulnerabilities and PoC (e.g. stack traces, path disclosure, directory listings, software versions, IP disclosure, 3rd party secrets, EXIF Metadata, Origin IP)
  • CSV injection
  • Malicious file upload (e.g. EICAR files, .EXE)
  • Blind SSRF without exploitable vulnerabilities and PoC (e.g. DNS & HTTP pingback, Wordpress XMLRPC)
  • Lack or bypass of rate-limiting, brute-forcing or captcha issues
  • User enumeration (e.g. email, alias, GUID, phone number, common CMS endpoints)
  • Password policy/strategy (e.g. no 2FA, no brute-force prevention, complexity, etc.)
  • Ability to spam users (email / SMS / direct messages flooding)
  • Password reset token sent via HTTP referer to external services (e.g. analytics / ads platforms)
  • Pre-account takeover (e.g. account creation via oAuth)
  • Exploits that rely on non standard configurations too distant from normal use cases or official recommendations (https://www.jenkins.io/doc/book/security/)
  • Exploits that rely on a voluntarily downgraded configuration

Reports of leaks and exposed credentials

In the context of this program, we do not intend to encourage, accept or reward reports of leaks that are not applicable to our program’s scope and policy. To summarize our policy, you may refer to the below table:

Type of leak
Source of leak is in-scope
Source of leak belongs to the Organization and is out-of-scope
Source of leak does not belong to the Organization and is out-of-scope
Impact is in-scope (e.g. valid credentials on an in-scope asset)
checked Not eligible
checked Not eligible
checked Not eligible
Impact is out-of-scope (e.g. valid credentials for an out-of-scope asset)
checked Not eligible
checked Not eligible
checked Not eligible

Hunters collaboration

When submitting new report, you can add up to 5 collaborators, and define the reward split ratio.

For more information, see help center.
Note: For reports that have already been rewarded, it is not possible to redistribute the rewards.

To submit a vulnerability report, you need to login with your hunter account.