[Zope3-Users] Security alert: use of Through-the-Web reStructuredText

David Pratt fairwinds at eastlink.ca
Tue Jul 18 14:55:01 EDT 2006

Hi Jim. I was noticing a 0.4.0-zope in distutils that looks patched with 
  NotImplementedErrors for the offending code in 
docutils.parsers.rst.directives.misc.  Can you when this will land in 
the Zope3 trunk?


Jim Fulton wrote:
> On Jul 8, 2006, at 11:49 AM, David Pratt wrote:
>> Jim Fulton wrote:
>>> Recently, a serious security flaw was found in Zope 2 due to it's 
>>> improper support for allowing reStructuredText to be edited 
>>> through-the-web.  reStructuredText has directives that allow 
>>> inclusion of any file a Zope process could read and inclusion of data 
>>> obtained from fetching arbitrary URLs.  In a trusted environment, 
>>> these directives have legitimate uses.  The feature of including 
>>> files and URL results should not be enabled for text entered from 
>>> untrusted sources, which applies to most through-the-web interactions.
>> Hi Jim. In the case of a wiki, it is the nature of a wiki that folks 
>> are able to edit through the web.
> But a wiki can be edited in other formats that restructured text. 
> (Personally, I think
> wikis should use tools like Epoz or Kupu to allow direct HTML editing, but
> that's a different matter.
>> Wouldn't data validation and any necessary alterations to the 
>> directives some sense as opposed to removing it from the zope3 mix?
> Sure, if someone is willing to do it and take responsibility.  Note that 
> I'm not removing these from the release, because they've never been in 
> the release.  I didn't even remove them from the repository, I just 
> removed them from the Zope 3 tree.
> I'm convinced that TTW reST can be safe with suitable attention to detail.
> So far though, that hasn't happened.  No one has come forward yet and said
> "I'll maintain this and be responsible for making sure we're secure wrt 
> reST".
>>> The recent hotfix:
>>>   http://www.zope.org/Products/Zope/Hotfix-2006-07-05/Hotfix-2006-07-05
>>> addresses the problem for Zope 2.
> Perhaps. We don't know for sure. We don't have tests.  We don't know if 
> it can
> be defeated using a reload product.  It is also a very crude fix. It 
> prevents people
> from creating add-ons that make legitimate use of file-inclusion or the raw
> directive.  It was a great fix in an emergency -- and this was a serious 
> emergency,
> but I don't want to use such a fix in Zope 3.
>>> It is safe to allow reStructuredText through the web with care.  The 
>>> inclusion of files or URL results can be disabled, but the programmer 
>>> must explicitly disable the feature.  It is not disabled by default. 
>>> It is also critical that a developer who exposes through-the-web 
>>> reStructuredText have tests to verify that the file/url inclusion 
>>> feature has been disabled.
>>> Zope 3 itself, as released, doesn't have this problem because it 
>>> doesn't allow reST entry through the web.  There are third-party 
>>> applications, however, including 2 packages in the Zope 3 subversion 
>>> tree that do have this problem.  I strongly urge you to avoid using 
>>> any Zope package that allows through-the-web input of 
>>> reStructuredText unless you can verify that file/url has been 
>>> properly disabled.
>>> The zwiki and bugtracker packages do not currently disable file/url 
>>> inclusion and should not be used in situations in which users who are 
>>> not highly trusted have access to these applications.
>> Can you be explicit about the process of disabling file/url inclusion 
>> for zope3 (if this is the critical point you are making ). The use of 
>> restructured text is valuable in zope and obviously it is important to 
>> understand security measures that would allow its continued use.
> The reStructuredText documentation gives instructions for disabling it.
> But something this risk needs people to be responsible.  I'm not seeing 
> that. I expect someone to come forward eventually.  Part of being 
> responsible is writing reasonably extensive tests.
>> If this can be done, why remove the products from the repository tree? 
>> Would it not be better to apply the necessary fixes?  Many thanks.
> Because their presence in the Zope 3 tree put people at serious risk.  
> If someone
> wants to work on them, great, and they can release them as add-on packages.
> Jim
> -- 
> Jim Fulton            mailto:jim at zope.com        Python Powered!
> CTO                 (540) 361-1714            http://www.python.org
> Zope Corporation    http://www.zope.com        http://www.zope.org

More information about the Zope3-users mailing list