All versions of package reportlab are vulnerable to Server-side Request Forgery (SSRF) via img tags. In order to reduce risk, use trustedSchemes & trustedHosts (see in Reportlab's documentation) Steps to reproduce by Karan Bamal: 1. Download and install the latest package of reportlab 2. Go to demos -> odyssey -> dodyssey 3. In the text file odyssey.txt that needs to be converted to pdf inject <img src="http://127.0.0.1:5000" valign="top"/> 4. Create a nc listener nc -lp 5000 5. Run python3 dodyssey.py 6. You will get a hit on your nc showing we have successfully proceded to send a server side request 7. dodyssey.py will show error since there is no img file on the url, but we are able to do SSRF
{
"binaries": [
{
"binary_name": "python-renderpm",
"binary_version": "3.3.0-1ubuntu0.1"
},
{
"binary_name": "python-reportlab",
"binary_version": "3.3.0-1ubuntu0.1"
},
{
"binary_name": "python-reportlab-accel",
"binary_version": "3.3.0-1ubuntu0.1"
},
{
"binary_name": "python3-renderpm",
"binary_version": "3.3.0-1ubuntu0.1"
},
{
"binary_name": "python3-reportlab",
"binary_version": "3.3.0-1ubuntu0.1"
},
{
"binary_name": "python3-reportlab-accel",
"binary_version": "3.3.0-1ubuntu0.1"
}
]
}
{
"binaries": [
{
"binary_name": "python-renderpm",
"binary_version": "3.4.0-3ubuntu0.1"
},
{
"binary_name": "python-reportlab",
"binary_version": "3.4.0-3ubuntu0.1"
},
{
"binary_name": "python-reportlab-accel",
"binary_version": "3.4.0-3ubuntu0.1"
},
{
"binary_name": "python3-renderpm",
"binary_version": "3.4.0-3ubuntu0.1"
},
{
"binary_name": "python3-reportlab",
"binary_version": "3.4.0-3ubuntu0.1"
},
{
"binary_name": "python3-reportlab-accel",
"binary_version": "3.4.0-3ubuntu0.1"
}
]
}