<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Jupyter Blog - Jupyter Team</title><link href="https://jasongrout.github.io/medium-archive/pelican/" rel="alternate"/><link href="https://jasongrout.github.io/medium-archive/pelican/feeds/author-jupyter-team.atom.xml" rel="self"/><id>https://jasongrout.github.io/medium-archive/pelican/</id><updated>2016-12-15T18:27:00+00:00</updated><subtitle>The Project Jupyter blog: news, releases, and community stories, archived from blog.jupyter.org.</subtitle><entry><title>ipywidget security release</title><link href="https://jasongrout.github.io/medium-archive/pelican/posts/2016/ipywidget-security-release/" rel="alternate"/><published>2016-09-26T23:37:00+00:00</published><updated>2016-12-15T18:27:00+00:00</updated><author><name>Jupyter Team</name></author><id>tag:jasongrout.github.io,2016-09-26:/medium-archive/pelican/posts/2016/ipywidget-security-release/</id><summary type="html">&lt;p&gt;Hello Jovyan, A version of ipywidget has been released, which fixes important security issues. Please upgrade ipywidgets as soon as you can: $ pip install ipywidgets --upgrade Please do so in all your environments. More details follow. We requested a CVE number and were asked to wait before any public disclosure&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Hello Jovyan,&lt;/p&gt;
&lt;p&gt;A version of ipywidget has been released, which fixes important security issues. Please upgrade ipywidgets as soon as you can:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;ipywidgets&lt;span class="w"&gt; &lt;/span&gt;--upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Please do so in all your environments.&lt;/p&gt;
&lt;p&gt;More details follow. We requested a CVE number and were asked to wait before any public disclosure of the vulnerability. As we have now been delaying the disclosure for over a resonable time, and we’re still waiting for the CVE number, we decided to still disclose the vulnerability. This post will be updated once/if a CVE number is made available.&lt;/p&gt;
&lt;p&gt;[Update Dec 15, 2016]&lt;/p&gt;
&lt;p&gt;A CVE number cannot be assigned for lack of sufficient information. No explanation of what more is needed was provided.&lt;/p&gt;
&lt;h1 id="description"&gt;Description&lt;/h1&gt;
&lt;p&gt;ipywidgets version 5.1.5 (widgetsnbextension 1.2.3) fixes a security vulnerability (CVE-PENDING) which affects the usage of ipywidgets in conjunction with the Jupyter Notebook.&lt;/p&gt;
&lt;h2 id="affected-versions"&gt;Affected versions&lt;/h2&gt;
&lt;p&gt;ipywidgets version 5.0.0 ≤ V ≤ 5.1.4 (widgetsnbextension &amp;lt; 1.2.3).&lt;/p&gt;
&lt;p&gt;Only users who installed ipywidgets using pip or from source on the GitHub repository are affected.&lt;/p&gt;
&lt;p&gt;Anaconda users are unaffected because the vulnerable version of ipywidget has never been released to the default conda channel.&lt;/p&gt;
&lt;h2 id="resolution"&gt;Resolution&lt;/h2&gt;
&lt;p&gt;We released ipywidgets version 5.1.5 (widgetsnbextension version 1.2.3).&lt;/p&gt;
&lt;p&gt;You can check whether your system is affected by running the following command from a Python or IPython prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;distutils.version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LooseVersion&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;V&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;ipywidgets&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;5.0.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ipywidgets&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__version__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;V&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;5.1.5&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Upgrade ipywidgets to 5.1.5&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If your system is vulnerable, you will see the following output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Upgrade ipywidgets to 5.1.5
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If your system is vulnerable please upgrade to ipywidgets version 5.1.5. Use the following command to install:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ipywidgets&amp;gt;=5.1.5&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;conda&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ipywidgets&amp;gt;=5.1.5&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1 id="technical-details"&gt;Technical details&lt;/h1&gt;
&lt;p&gt;The vulnerability was discovered following an investigation of a potential vulnerability reported by Brian Granger to the ipython-security mailing list (&lt;code&gt;security@ipython.org&lt;/code&gt;) on May 5.&lt;/p&gt;
&lt;p&gt;The reason for such behavior was determined on May 5 by Matthias Bussonnier.&lt;br&gt;
A fix was proposed written and reviewed, then &lt;a href="https://github.com/ipython/ipywidgets/pull/591"&gt;merged&lt;/a&gt; into the development branch on May 20, and a non vulnerable version released on May 25.&lt;/p&gt;
&lt;p&gt;A widget snapshotting feature introduced in ipywidgets 5.0.0 allowed untrusted javascript code to execute in an untrusted notebook on loading and saving of a notebook. A well crafted notebook could execute arbitrary code with the rights of the current user in the context of the page, the notebook server, and available kernels.&lt;/p&gt;
&lt;p&gt;We recommend immediate upgrade of the ipywidgets package.&lt;/p&gt;
&lt;p&gt;There is no simple configuration option that could mitigate the system for vulnerability. The user must upgrade to ipywidget version 5.1.5 or downgrade to 4.x.&lt;/p&gt;
&lt;h2 id="future-plan"&gt;Future Plan&lt;/h2&gt;
&lt;p&gt;The security issue resulted from the seemingly harmless combination of calls:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;json = cell.get_json()
json = update_json(json)
cell.clear_output()
cell.from_json(json)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;clear_output()&lt;/code&gt; method has as a consequence to mark the cell as trusted (as it has no output that can potentially execute javascript). This is followed by the next call which can trigger JavaScript execution in the page context.&lt;/p&gt;
&lt;p&gt;We plan on improving the notebook API so that &lt;code&gt;clear_output()&lt;/code&gt; does not change the trusted status of a cell (or a notebook), to prevent mistakes like this from having security consequences. This will lead to the slight behavior change that an empty cell with no output can be untrusted.&lt;/p&gt;
&lt;h2 id="doing-better-next-time"&gt;Doing better next time&lt;/h2&gt;
&lt;p&gt;We learned that we are not completely ready for fast release of security fixes. The time from vulnerability discovery to available fix and release could have been better. The announcement was delayed while waiting for a CVE number which is still not there. We will consider a sorter timescale to publication even if we don’t get assigned a CVE number quickly. The standard seem to be 90 days from security vulnerability report, we might end up selecting this as well.&lt;/p&gt;
&lt;p&gt;We encourage users who find possible security issues to notify &lt;code&gt;security@ipython.org&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
</content><category term="releases"/><category term="security"/><category term="widgets"/></entry><entry><title>Jupyter Notebook User Experience Survey</title><link href="https://jasongrout.github.io/medium-archive/pelican/posts/2015/jupyter-notebook-user-experience-survey/" rel="alternate"/><published>2015-12-22T05:13:00+00:00</published><updated>2015-12-22T05:13:00+00:00</updated><author><name>Jupyter Team</name></author><id>tag:jasongrout.github.io,2015-12-22:/medium-archive/pelican/posts/2015/jupyter-notebook-user-experience-survey/</id><summary type="html">&lt;p&gt;[A Guest post by Peter Parente, from the IBM team developing several of our current incubator projects] For the past few weeks, a handful of folks and I have been working on a survey about the Jupyter Notebook user experience. The purpose of this questionnaire is to gather information from&lt;/p&gt;
</summary><content type="html">&lt;p&gt;[A Guest post by &lt;a href="https://github.com/parente"&gt;Peter Parente&lt;/a&gt;, from the IBM team developing several of our current incubator projects]&lt;/p&gt;
&lt;p&gt;For the past few weeks, a handful of folks and I have been working on a survey about the Jupyter Notebook user experience. The purpose of this questionnaire is to gather information from you, the Jupyter community, about how you are using (or not using) Jupyter Notebook today. We hope that your answers will help uncover pain-points to address, identify core features to retain, and generate new ideas to consider in Jupyter Lab.&lt;/p&gt;
&lt;p&gt;We’d like to invite you now to take part in this survey. It should take you no more than 5-7 minutes to complete. Click the link below to get started. When you finish, please consider sharing the link far-and-wide so that all Jupyter Notebook users have a chance to respond.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.surveygizmo.com/s3/2490075/Project-Jupyter-Notebook-Survey-2015"&gt;https://www.surveygizmo.com/s3/2490075/Project-Jupyter-Notebook-Survey-2015&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Be aware that the results of this survey will be published anonymously and publicly. Please do not include private information in your responses.&lt;/p&gt;
&lt;p&gt;I’d like to thank Julie Santilli for drafting and revising this survey over the past month. I’d also like to thank Fernando, Brian, Min, Matthias, and Jason for their early-access reviews and feedback.&lt;/p&gt;
&lt;p&gt;Thanks in advance for your participation!&lt;/p&gt;
</content><category term="community"/><category term="Jupyter Notebook"/></entry><entry><title>Welcome to Jupyter</title><link href="https://jasongrout.github.io/medium-archive/pelican/posts/2015/post0/" rel="alternate"/><published>2015-02-13T20:27:00+00:00</published><updated>2015-04-15T22:37:00+00:00</updated><author><name>Jupyter Team</name></author><id>tag:jasongrout.github.io,2015-02-13:/medium-archive/pelican/posts/2015/post0/</id><content type="html">&lt;p&gt;Watch this space for announcements about Jupyter and IPython.&lt;/p&gt;
</content><category term="community"/></entry></feed>