Find a vulnerability
Search criteria
Related vulnerabilities
BREW-MAIGRET-CVE-2020-28463 (GHSA-MPVW-25MG-59VX)
Vulnerability from osv_homebrew – Published: 2026-08-13 17:11 – Updated: 2026-09-10 00:28 – Source websiteAll versions of package reportlab at time of writing 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
{
"affected": [
{
"ecosystem_specific": {
"fix": "bump",
"range_state": "fixed",
"resource": "reportlab",
"resource_purl": "pkg:pypi/reportlab@4.5.1",
"upstream_fixed_in": "3.5.55"
},
"package": {
"ecosystem": "Homebrew",
"name": "maigret",
"purl": "pkg:brew/maigret"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.6.4"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"database_specific": {
"confidence": "high",
"source": "matched",
"strategy": "registry",
"upstream_evidence": [
{
"ecosystem": "PyPI",
"key": "pkg:pypi/reportlab@4.5.1",
"name": "reportlab",
"resource": "reportlab",
"strategy": "registry",
"subject_version": "4.5.1"
}
]
},
"details": "All versions of package reportlab at time of writing are vulnerable to Server-side Request Forgery (SSRF) via img tags. In order to reduce risk, use trustedSchemes \u0026 trustedHosts (see in Reportlab\u0027s documentation) \n\nSteps to reproduce by Karan Bamal: \n1. Download and install the latest package of reportlab \n2. Go to demos -\u003e odyssey -\u003e dodyssey \n3. In the text file odyssey.txt that needs to be converted to pdf inject `\u003cimg src=\"http://127.0.0.1:5000\" valign=\"top\"/\u003e`\n4. Create a nc listener `nc -lp 5000`\n5. Run python3 dodyssey.py \n6. You will get a hit on your nc showing we have successfully proceded to send a server side request \n7. dodyssey.py will show error since there is no img file on the url, but we are able to do SSRF",
"id": "BREW-maigret-CVE-2020-28463",
"modified": "2026-09-10T00:28:25Z",
"published": "2026-08-13T17:11:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-28463"
},
{
"type": "WEB",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1930417"
},
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-mpvw-25mg-59vx"
},
{
"type": "WEB",
"url": "https://github.com/pypa/advisory-database/tree/main/vulns/reportlab/PYSEC-2021-146.yaml"
},
{
"type": "PACKAGE",
"url": "https://hg.reportlab.com/hg-public/reportlab"
},
{
"type": "WEB",
"url": "https://hg.reportlab.com/hg-public/reportlab/file/f094d273903a/CHANGES.md#l71"
},
{
"type": "WEB",
"url": "https://hg.reportlab.com/hg-public/reportlab/rev/7f2231703dc7"
},
{
"type": "WEB",
"url": "https://lists.debian.org/debian-lts-announce/2023/09/msg00037.html"
},
{
"type": "WEB",
"url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/HMUJA5GZTPQ5WRYUCCK2GEZM4W43N7HH"
},
{
"type": "WEB",
"url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/YZQSFCID67K6BTC655EQY6MNOF35QI44"
},
{
"type": "WEB",
"url": "https://snyk.io/vuln/SNYK-PYTHON-REPORTLAB-1022145"
},
{
"type": "WEB",
"url": "https://www.reportlab.com/docs/reportlab-userguide.pdf"
}
],
"schema_version": "1.7.3",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
"type": "CVSS_V4"
}
],
"summary": "Server-side Request Forgery (SSRF) via img tags in reportlab",
"upstream": [
"GHSA-mpvw-25mg-59vx",
"CVE-2020-28463",
"PYSEC-2021-146",
"SNYK-PYTHON-REPORTLAB-1022145"
]
}
PYSEC-2021-146
Vulnerability from pysec - Published: 2021-02-18 16:15 - Updated: 2021-08-27 03:22All 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 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
| Name | purl | reportlab | pkg:pypi/reportlab |
|---|
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "reportlab",
"purl": "pkg:pypi/reportlab"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "3.5.55"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0",
"2.3",
"2.4",
"2.5",
"2.6",
"2.7",
"3.0",
"3.1.44",
"3.1.8",
"3.2.0",
"3.3.0",
"3.4.0",
"3.5.0",
"3.5.1",
"3.5.10",
"3.5.11",
"3.5.12",
"3.5.13",
"3.5.16",
"3.5.17",
"3.5.18",
"3.5.19",
"3.5.2",
"3.5.20",
"3.5.21",
"3.5.23",
"3.5.26",
"3.5.28",
"3.5.31",
"3.5.32",
"3.5.34",
"3.5.4",
"3.5.42",
"3.5.44",
"3.5.45",
"3.5.46",
"3.5.47",
"3.5.48",
"3.5.49",
"3.5.5",
"3.5.50",
"3.5.51",
"3.5.52",
"3.5.53",
"3.5.54",
"3.5.6",
"3.5.8",
"3.5.9"
]
}
],
"aliases": [
"CVE-2020-28463",
"SNYK-PYTHON-REPORTLAB-1022145",
"GHSA-mpvw-25mg-59vx"
],
"details": "All versions of package reportlab are vulnerable to Server-side Request Forgery (SSRF) via img tags. In order to reduce risk, use trustedSchemes \u0026 trustedHosts (see in Reportlab\u0027s documentation) Steps to reproduce by Karan Bamal: 1. Download and install the latest package of reportlab 2. Go to demos -\u003e odyssey -\u003e dodyssey 3. In the text file odyssey.txt that needs to be converted to pdf inject \u003cimg src=\"http://127.0.0.1:5000\" valign=\"top\"/\u003e 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",
"id": "PYSEC-2021-146",
"modified": "2021-08-27T03:22:19.297131Z",
"published": "2021-02-18T16:15:00Z",
"references": [
{
"type": "ADVISORY",
"url": "https://snyk.io/vuln/SNYK-PYTHON-REPORTLAB-1022145"
},
{
"type": "WEB",
"url": "https://www.reportlab.com/docs/reportlab-userguide.pdf"
},
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-mpvw-25mg-59vx"
}
]
}