jupyter / jupyter/security

Migrating off GitHub for advisory publication and CVE assignment

Open
#126 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
27
Forks
12
Avg merge
3d 5h
Merged PRs (30d)
3

Description

As discussed on Zulip, [#ask-anything > how to leave GitHub](https://jupyter.zulipchat.com/#narrow/channel/103349-ask-anything/topic/how.20to.20leave.20GitHub/with/591902803), at this point it is really tempting to move off GitHub for security advisories because 3/4 core features are broken:
- merging PRs from security forks does not work (for months now!)
- CVE assignment does not work reliably - GitHub is not following the timelines expected from authorities or self-imposed 2-3 working days (now taking over a month!) [ref 1](https://github.com/orgs/community/discussions/200225), [ref 2](https://github.com/orgs/community/discussions/199123)
- advisory publication to GitHub Advisory Database is delayed and ends up riddled with mistakes due to human reviewers modifying and misinterpreting the text; then for weeks no one responds to correction requests

The only, and not insignificant, feature that still works is that almost every security researcher is happy to use private vulnerability reporting form. We could keep using it, just handle the rest of the process elsewhere.

### Process today

Since I cannot merge PRs from security forks this is the workaround I use when merging multiple PRs:
1. Go to the private fork PR say `https://github.com/jupyterlab/jupyterlab-ghsa-89vp-jrxv-24w8/pull/1`
2. Append `.diff` so it becomes `https://github.com/jupyterlab/jupyterlab-ghsa-89vp-jrxv-24w8/pull/1.diff`
3. Save the diff locally
4. On a new branch run `git apply ghsa-89vp-jrxv-24w8.diff`
5. `git commit . -m 'Fix for GHSA-89vp-jrxv-24w8'`
6. Repeat for all patches to be merged at once, resolving conflicts as needed
7. Backport to patch branches created of stable branches
8. Open pull requests using public PRs (as recommended by GitHub support) or push directly if feeling adventurous/when severity demands it
9. MERGE WITHOUT SQUASHING to preserve individual commits (of course, I forgot about it)

### Fully-featured alternatives

IMO we should evaluate GitLab. I know that GitLab is not an alternative for folks who worry about sovereignty and governance etc, but AFAIK it is the only other large CVE Numbering Authority (CNA) that has feautre-parity with GitHub. I hear it has improved recently. It also has private forks that we could use to review security patches.

There is also Bitbucket (Atlassian is a CNA for everything on bitbucket) but basic features of Bitbucket like issues were being deprecated recently so I am not sure how long-lived it will be for open-source users.

Gitea is a CNA but AFAIK only for itself, not for repositories hosted with Gitea.

### Security-focused and bug-bounty platforms

The alternatives per quick search are security and bug bonty platforms, many of which are also CNAs, e.g. Snyk, HackerOne, Bugcrowd, Patchstack, YesWeHack and Intigriti.

### Jupyter could become a CNA

Another path forward would be to apply for Jupyter Foundation to become a CNA, as are Python Software Foundation, Django Software Foundation, Apache Software Foundation, Eclipse Foundation, Erlang Ecosystem Foundation, The Document Foundation and PHP Group.

OpenSSF has a guide to becoming a CNA for Open Source projects ([announcement](https://openssf.org/blog/2023/11/27/openssf-introduces-guide-to-becoming-a-cve-numbering-authority-as-an-open-source-project/)): https://github.com/ossf/wg-vulnerability-disclosures/blob/main/docs/guides/becoming-a-cna-as-an-open-source-org-or-project.md

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked Zulip discussion and the documented GitHub workflow in this issue; compare GitLab and the other named advisory/CNA options against private reporting, fork review, CVE assignment, and publication. Done means selecting a supported path and documenting an agreed migration or CNA plan, including how security patches are merged and published.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, github, gitlab
Domain
security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.