oss-sec mailing list archives

CVE Request : CSRF in IPython/Jupyter notebook Tree.


From: Matthias Bussonnier <bussonniermatthias () gmail com>
Date: Wed, 2 Sep 2015 15:00:25 +0200


Email addresses of requester: security () ipython org; rgbkrk () gmail com; bussonniermatthias () gmail com; thebrowfc 
() gmail com; jkamens () quantopian com 

Software name: IPython notebook / Jupyter notebook

Type of vulnerability: CSRF

Attack outcome: Possible remote execution
Patches:
  3.x: `3ab41641cf6fce3860c73d5cf4645aa12e1e5892` 
(https://github.com/ipython/ipython/commit/3ab41641cf6fce3860c73d5cf4645aa12e1e5892)
  4.0.x: `dd9876381f0ef09873d8c5f6f2063269172331e3` 
(https://github.com/jupyter/notebook/commit/dd9876381f0ef09873d8c5f6f2063269172331e3)
  4.x: `35f32dd2da804d108a3a3585b69ec3295b2677ed` 
(https://github.com/jupyter/notebook/commit/35f32dd2da804d108a3a3585b69ec3295b2677ed)


Affected versions: 0.12 ≤ version ≤ 4.0

(Note, software change name between 3.x and 4.0)

Summary: Local folder name was used in HTML templates without escaping, allowing CSRF in said pages by carefully 
crafting folder name and URL to access it.


URI with issues:

* GET /tree/**

Mitigations:

Start notebook server with the following flag:

--NotebookApp.jinja_environment_options='{"autoescape":True}'

Or set the following configuration option:

c.NotebookApp.jinja_environment_options = {"autoescape": True}


Upgrade to IPython/Jupyter notebook 4.0.5, 4.1 or 3.2.2 once available.
If using pip,

    pip install --upgrade `ipython[notebook]<4.0`  # for 3.2.2
    pip install --upgrade notebook # for 4.1


For conda:

    conda update conda
    conda update ipython 'ipython-notebook<4.0' # for 3.2.2
    conda update notebook # for 4.1 or 4.0.5


Vulnerability was found by Juan Broullón, and reported by Jonathan Kamens at Quantopian.

Thanks !
-- 
Matthias


Current thread: