:PROPERTIES: :ID: ba4c7c25-ee27-4b5e-8ef7-ba2ecc34f127 :mtime: 20220522180309 :ctime: 20220306172805 :END: #+title: defusedxml * Introduction Module proposant une sourcouche protégeant contre les vulnérabilités de certains modules python gérant des données XML. Par exemple : #+BEGIN_SRC python from xml.etree.ElementTree import parse et = parse(xmlfile) #+END_SRC Serait à mettre à jour ainsi : #+BEGIN_SRC python from defusedxml.ElementTree import parse et = parse(xmlfile) #+END_SRC * Liste des vulnérabilités et fonctionnalités | Vulnérabilité | sax | etree | minidom | pulldom | xmlrpc | [[id:b18fe210-fac3-4f63-8041-4b686c64ee6a][lxml]] | genshi | |--------------------------------------------+-------+-------+---------+---------+--------+------------+--------| | [[id:7b090d0a-b96b-4d40-afec-2155a6909935][xml billion laughs]] | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (1) | ✖ (5) | | quadratic blowup | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✖ (5) | | [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (remote) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✖ (1) | ✖ (5) | | [[id:869e88ed-fe68-47b5-a911-e27cf3927f66][XML external entity expension]] (local file) | ✔ | ✖ (3) | ✖ (4) | ✔ | ✖ | ✔ | ✖ (5) | | DTD retrieval | ✔ | ✖ | ✖ | ✔ | ✖ | ✖ (1) | ✖ | | gzip bomb | ✖ | ✖ | ✖ | ✖ | ✔ | Partly (2) | ✖ | | xpath support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | | xsl(t) support (7) | ✖ | ✖ | ✖ | ✖ | ✖ | ✔ | ✖ | | xinclude support (7) | ✖ | ✔ (6) | ✖ | ✖ | ✖ | ✔ (6) | ✔ | | C library | expat | expat | expat | expat | expat | libxml2 | expat | 1. /lxml/ est protégé contre les attaques /billion laughs/ et ne fait pas de recherche réseau (/network lookups/) par défaut. 2. /libxml2/ et /lxml/ ne sont pas directement vulnérables aux /gzip decompression bombs/ mais ne vous protège pas contre par ailleurs. 3. /xml.etree/ ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait. 4. /minicom/ ne développe pas les entités et retourne une entitée textuelle non développée. 5. /genshi.input/ (v0.6) ne développe pas les entités et déclenche une /ParserError/ lorsqu'une entité apparait. 6. La librarie apporte un support limité à /XInclude/ (mécanisme de fusion) mais requiert une étape additionnelle pour réaliser l'inclusion. 7. Il s'agit de fonctionnalités mais peuvent introduire des failles supplémentaires. * Références * [[https://github.com/tiran/defusedxml][Github]]