Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions projects/jupyter-notebook/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM gcr.io/oss-fuzz-base/base-python

# Installa dipendenze di sistema
RUN apt-get update && apt-get install -y \
git \
libxml2-dev \
libxslt1-dev \
&& rm -rf /var/lib/apt/lists/*

# Installa Atheris (fuzzer Python)
RUN pip install atheris

# Installa Jupyter Notebook (versione vulnerabile per test)
RUN pip install notebook==7.0.6

# Clona il codice sorgente
RUN git clone --depth 1 https://github.com/jupyter/notebook.git $SRC

WORKDIR $SRC
COPY build.sh $SRC/
17 changes: 17 additions & 0 deletions projects/jupyter-notebook/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash -eu

# Installa dipendenze
pip install -r $SRC/requirements.txt

# Installa Atheris
pip install atheris

# Copia fuzz target
cp $SRC/projects/jupyter-notebook/fuzz_notebook.py $OUT/

# Crea seed corpus (il tuo PoC RCE)
mkdir -p $OUT/corpus
echo "__import__('os').system('id')" > $OUT/corpus/seed1.py

# Build (Python fuzzers sono script)
cp $OUT/fuzz_notebook.py $OUT/fuzz_notebook
17 changes: 17 additions & 0 deletions projects/jupyter-notebook/fuzz_notebook.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env python3
import sys
import atheris

@atheris.instrument_func
def test_notebook_cell(data):
try:
exec(data.decode('utf-8', errors='ignore'))
except:
pass

def main():
atheris.Setup(sys.argv, test_notebook_cell)
atheris.Fuzz()

if __name__ == '__main__':
main()
20 changes: 20 additions & 0 deletions projects/jupyter-notebook/project.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
homepage: "https://jupyter.org"
language: python
primary_contact: "lau90eth@gmail.com"
auto_ccs:
- "jupyter-security@googlegroups.com"
main_repo: 'https://github.com/jupyter/notebook.git'
vendor_ccs:
- "security@jupyter.org"
sanitizers:
- address
- undefined
architectures:
- x86_64
fuzzing_engines:
- libfuzzer
- afl
builds_per_day: 1
file_github_issue: true

.
3 changes: 3 additions & 0 deletions projects/jupyter-notebook/project.yaml.save
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

.
ò