Description

This bug bounty program focuses on three open-source software packages from Project Jupyter: JupyterLab, Jupyter Server, and JupyterHub. Project Jupyter (https://jupyter.org) is a non-profit, open-source project, that supports interactive data science and scientific computing across all programming languages. Jupyter is a large umbrella project that covers many different software offerings and tools.

Bounties
Low
0.1 - 3.9
Medium
4.0 - 6.9
High
7.0 - 8.9
Critical
9.0 - 9.4
Exceptional
9.5 - 10.0
Tier 2
250
1,000
2,500
4,500
5,000
Tier 2
€250 - €5,000
Rules of engagement
Not applicable
Not applicable
Not applicable
Not applicable

This project is restricted to static and dynamic analysis of the listed software packages. Attacks against online ecosystem infrastructure and community members is a violation of the rules of engagement.

By participating in this program, you agree to:

  • Respect the Community Code of Conduct
  • Respect the Intigriti Terms and Conditions
  • Respect the scope of the program
  • Not discuss or disclose vulnerability information without prior written consent (including PoC's on YouTube and Vimeo)

Validation times

We will validate all submissions within the below timelines, once your submission has been verified by Intigriti.

Vulnerability Severity Time to validate
Exceptional 5 Working days
Critical 10 Working days
High 15 Working days
Medium 30 Working days
Low 60 Working days

This remains at the discretion of Jupyter to award.

Check our fix
We offer up to €50 bonus to verify a resolved issue for us (when requested).
This remains at the discretion of Jupyter to award.

Domains

Jupyter Server

Tier 2
Other

Jupyter Server

The Jupyter Server provides the backend (i.e. the core services, APIs, and REST endpoints) for Jupyter web applications like Jupyter notebook, JupyterLab, and Voila.

JupyterHub

Tier 2
Other

JupyterHub

With JupyterHub you can create a multi-user Hub that spawns, manages, and proxies multiple instances of the single-user Jupyter Server.

Project Jupyter created JupyterHub to support many users. The Hub can offer notebook servers to a class of students, a corporate data science workgroup, a scientific research project, or a high-performance computing group.

JupyterLab

Tier 2
Other

JupyterLab

JupyterLab is a highly extensible, feature-rich notebook authoring application and editing environment.

In scope

Introduction

This program is scoped to recent versions of specific software packages. If you're not familiar with the Jupyter ecosystem, these packages exist to provide code execution capabilities and are extremely configurable. Therefore, good findings will focus on violating trust boundaries and security controls not building and exploiting intentionally vulnerable configurations or using the code execution functionality to interact with third party software. Read the documentation for the specific software package to identify valid use cases and security boundaries. For instance, the official solution for multi-user servers is JupyterHub. Therefore, reports assuming multiple users on a JupyterLab instance may not be valid.

For JupyterHub, the security model and settings are documented here.

For Jupyter Server, the security model and settings are documented here.

For notebooks (available in JupyterLab and JupyterHub), the security model is documented here:

  • Untrusted HTML is always sanitized
  • Untrusted JavaScript is never executed
  • HTML and JavaScript in Markdown cells are never trusted
  • Outputs generated by the user are trusted
  • Any other HTML or JavaScript (in Markdown cells, output generated by others) is never trusted
  • The central question of trust is “Did the current user do this?”

Our worst-case scenarios are:

  • Authentication bypasses that enable unauthorized users to execute code, change configurations, or otherwise impact the confidentially, availability, or integrity of authorized user data.
  • Bypasses of default and/or secure configuration settings such as network restrictions that enable remote attacks.

Useful infrastructure information:

  • You will need to install these packages in personal environments. We recommend using Python venv, conda, or mamba to isolate your installation from your system Python.
  • To learn more about how users interact with the Jupyter ecosystem, check out videos from previous JupyterCons.

Feedback
Would you like to help us improve our program or have some feedback to share, please send your anonymous feedback to security@ipython.org.

Program feedback link
Please note this form will be checked periodically and should not be used for submission or support queries.

Out of scope

This program is specifically for software packages that you will install and test on your host. If you find yourself attacking targets online, you have exceeded the scope of this program.

Additionally, the following elements are out of scope:

  • Information disclosure through intentional software package functionality
  • intentionally vulnerable configurations
  • Exploit relying on third-party library or software package
  • Reflective attacks that don't exploit other users or systems
  • Verbose messages/files/directory listings without disclosing any sensitive information
  • Self-XSS that can't be used to exploit other users
  • CORS misconfiguration on non-sensitive endpoints
  • Missing cookie flags
  • Missing security headers
  • CSRF with no or low impact
  • Presence of autocomplete attribute on web forms
  • Reverse tabnabbing
  • Bypassing rate-limits or the non-existence of rate-limits.
  • Clickjacking on pages with no sensitive actions
  • Sessions not being invalidated (logout, enabling 2FA, etc.)
  • Hyperlink injection/takeovers
  • Cross-domain referrer leakage
  • Content injection
  • HTTP Request smuggling without any proven impact
  • Banner grabbing/Version disclosure
  • Open ports without an accompanying proof-of-concept demonstrating vulnerability
  • Weak SSL configurations and SSL/TLS scan reports
  • Disclosing API keys without proven impact

General

  • In case that a reported vulnerability was already known to the company from their own tests, it will be flagged as a duplicate
  • Theoretical security issues with no realistic exploit scenario(s) or attack surfaces, or issues that would require complex end user interactions to be exploited, may be excluded or be lowered in severity
  • Spam, social engineering and physical intrusion
  • DoS/DDoS attacks or brute force attacks
  • Vulnerabilities that are limited to non-current browsers (older than 3 versions) will not be accepted
  • Attacks requiring physical access to a victim’s computer/device, man in the middle or compromised user accounts
  • Recently discovered zero-day vulnerabilities found in in-scope assets within 14 days after the public release of a patch or mitigation may be reported, but are usually not eligible for a bounty
  • Reports that state that software is out of date/vulnerable without a proof-of-concept
Severity assessment

This program follows Intigriti's contextual CVSS standard

FAQ

How can I install the app?

*Note that Jupyter Server is a core component of both JupyterLab and JupyterHub and is usually used as a backend for other projects in the Jupyter ecoystem -- rarely accessed directly.

All aboard!
Please log in or sign up on the platform

For obvious reasons we can only allow submissions or applications for our program with a valid Intigriti account.

It will only take 2 minutes to create a new one or even less to log in with an existing account, so don't hesitate and let's get started. We would be thrilled to have you as part of our community.

Researchers
last contributors
logo
logo
logo
logo
leaderboard
logo
logo
Overall stats
submissions received
13
average payout
€1,125
accepted submissions
6
total payouts
€6,750
Last 90 day response times
avg. time first response
< 2 days
avg. time to decide
< 3 weeks
avg. time to triage
< 4 days
Activity
9/4
Jupyter
published a program update
9/4
Jupyter
suspended the program
9/1
Jupyter
accepted a submission
9/1
Jupyter
accepted a submission
9/1
Jupyter
closed a submission
9/1
Jupyter
accepted a submission
9/1
Jupyter
closed a submission
8/31
logo
created a submission
8/22
Jupyter
closed a submission
8/19
logo
created a submission