thanks !

  Yes, I have now pushed it in master, this should solve all the
issues which got reported for that CVE-2014-0191 patch

  
https://git.gnome.org/browse/libxml2/commit/?id=dd8367da17c2948981a51e52c8a6beb445edf825

  feedback welcome !

Daniel

On Tue, Jun 10, 2014 at 02:18:19PM -0700, Alexey Neyman wrote:
> Hi Daniel,
> 
> Your patch works for me, thanks! One more thing you missed though: 
> s/parsed/parameter/ in the copy-pasted comment :)
> 
> Regards,
> Alexey.
> 
> On Monday, June 09, 2014 07:06:02 am Daniel Veillard wrote:
> >   Pong, sorry, but was distracted with other things and I accumulated
> > feedback from different places on this issue, I would rather not have to
> > push 3 different patches to cover this :-)
> > 
> >   I ended up with a rather similar but slightly more complex patch
> > (attached), the DTD may have to be loaded in other different conditions
> > wna while you apparently covered xmlIOParseDTD, one of the case I got
> > also pointed to xmlSAXParseDTD so both need to be fixed. Also I'm
> > doing an incremental bit fix rather than overwriting the full context
> > option which could also cause regressions.
> > 
> >   I will also push separately an update to xmlInitParserCtxt() setting
> > up the options based on the global variable settings (it's evil but
> > needed for compatibility), but it's more of a cleanup than an actual
> > fix for the issue so not in that patch,
> > 
> >   give it a try,
> > 
> >    thanks,
> > 
> > Daniel
> > 
> > On Sun, Jun 08, 2014 at 06:31:57PM -0700, Alexey Neyman wrote:
> > > PING!
> > > 
> > > On Tuesday, May 20, 2014 10:06:27 PM Alexey Neyman wrote:
> > > > [More investigation follows. Writing from a different machine, so
> > > > cannot reply to my own email]
> > > > 
> > > > The issue, brief summary: upgrade of libxml2 from 2.7.6-14.el6 to
> > > > 2.7.6-14.el6_5.1 (RHEL6) broke the --postvalid/--dtdvalid options.
> > > > 
> > > > Minimal test case:
> > > > 
> > > > [a.xml]
> > > > <?xml version="1.0"?>
> > > > <!-- vi: set sw=2 : -->
> > > > <!DOCTYPE a SYSTEM "a.dtd">
> > > > <a>
> > > > 
> > > >  <b/>
> > > > 
> > > > </a>
> > > > 
> > > > 
> > > > [a.dtd]
> > > > <!ELEMENT a (b|c)>
> > > > <!ENTITY % base.dtd SYSTEM "b.dtd">
> > > > %base.dtd;
> > > > 
> > > > 
> > > > [b.dtd]
> > > > <!ELEMENT b EMPTY>
> > > > <!ELEMENT c EMPTY>
> > > > 
> > > > This command works:
> > > > xmllint --valid --noout --dtdvalid a.dtd a.xml
> > > > 
> > > > This command doesn't:
> > > > xmllint --postvalid --noout --dtdvalid a.dtd a.xml
> > > > a.xml:5: element b: validity error : No declaration for element b
> > > > Document a.xml does not validate against a.dtd
> > > > 
> > > > The problem:
> > > > 1. With --postvalid (and similarly treated options --dtdvalid,
> > > > --dtdvalidfpi) the XML_PARSE_DTDVALID is not set. Instead,
> > > > XML_PARSE_DTDLOAD is set (the validation is performed after loading of
> > > > the XML document). Solution: the
> > > > xmlParserHandlePEReference() should also check for XML_PARSE_DTDLOAD or
> > > > the parsed entities defined in the nested DTDs will not load.
> > > > 
> > > > 2. Even with parsed entities loaded, the validation then fails: the
> > > > xmlParserHandlePEReference() is called during the post-validation with
> > > > the ctxt->options equal to zero when loading a separate DTD (e.g. due
> > > > to --dtdvalid option) via the xmlSAXParseDTD(). Solution:
> > > > xmlSAXParseDTD() should set the ctxt->options to XML_PARSE_DTDLOAD -
> > > > after all, xmlSAXParseDTD *is* loading the DTD.
> > > > 
> > > > 3. The comment in the xmlParserHandlePEReference() is an obvious
> > > > copy-paste: it refers to parsed entities while the code actually
> > > > handles parameter entities. Solution: fix the comment :)
> > > > 
> > > > Updated patch attached (against RHEL version of 2.7.6 - will update to
> > > > git version of libxml2 if needed).
> > > > 
> > > > Regards,
> > > > Alexey.
> > > 
> > > _______________________________________________
> > > xml mailing list, project page  http://xmlsoft.org/
> > > xml@gnome.org
> > > https://mail.gnome.org/mailman/listinfo/xml

-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to