Library parses local XXE entities but seems does not allow use them inside XML document. See responses from examples/server.py before and after patch that disables entities resolving in lxml:
xxe.xml
<?xml version="1.0"?>
<!DOCTYPE external [
<!ENTITY ee SYSTEM "file:///dev/random">
]>
<methodCall>
<methodName>xⅇ</methodName>
<params>
</params>
</methodCall>
Before patch
$ curl -X POST -H "Content-type: application/xml" -d @xxe.xml http://127.0.0.1:8080/ | grep -Eo "<string>.*</string>"
<string>XMLSyntaxError('Input is not proper UTF-8, indicate encoding !\nBytes: 0xDA 0x08 0xCE 0x99, line 1, column 1',)</string>
After patch
$ curl -X POST -H "Content-type: application/xml" -d @r2-xxe.xml http://127.0.0.1:8080/ | -Eo "<string>.*</string>"
<string><[-32500] ApplicationError(Method 'x' not found)></string>
So, attacker has limited abilities to leak portions of binary files, may be something from /proc/self
Library parses local XXE entities but seems does not allow use them inside XML document. See responses from examples/server.py before and after patch that disables entities resolving in lxml:
xxe.xml
Before patch
After patch
So, attacker has limited abilities to leak portions of binary files, may be something from /proc/self
Patch