# Impact
Matt Hamilton from Soluble has discovered a limited Server-Side Request Forgery (SSRF) that allowed Harbor project owners to scan the TCP ports of hosts on the Harbor server's internal network.
The vulnerability was immediately fixed by the Harbor team.
# Issue
The “Test Endpoint” API, part of the functionality for ensuring a project Webhook is accessible and functional, is vulnerable to a limited SSRF attack. A malicious user that is also a project administrator can use this API for internal port scanning.
# Known Attack Vectors
Successful exploitation of this issue will lead to bad actors identifying open TCP ports on any network that is accessible by the Harbor core services
# Patches
If your product uses the affected releases of Harbor, update to version 2.0.1 to patch this issue immediately.
https://github.com/goharbor/harbor/releases/tag/v2.0.1
# Workarounds
Since only project administrators (the user that created the project) are allowed to test the webhook endpoints configured in Harbor, a Harbor system administrator can control who is a project admin. In addition, Harbor system administrators can enforce a setting where only an administrator is allowed to create new projects instead of the default Everyone. This further restricts who can be a project administrator in Harbor.
# For more information
If you have any questions or comments about this advisory, contact cncf-harbor-security@lists.cncf.io
View our security policy at https://github.com/goharbor/harbor/security/policy
https://nvd.nist.gov/vuln/detail/CVE-2020-13788
https://www.soluble.ai/blog/harbor-ssrf-cve-2020-13788
{"id": "GHSA-33P6-FX42-7RF5", "vendorId": null, "type": "github", "bulletinFamily": "software", "title": "Harbor is vulnerable to a limited Server-Side Request Forgery (SSRF) (CVE-2020-13788)", "description": "# Impact\nMatt Hamilton from Soluble has discovered a limited Server-Side Request Forgery (SSRF) that allowed Harbor project owners to scan the TCP ports of hosts on the Harbor server's internal network. \n\nThe vulnerability was immediately fixed by the Harbor team. \n\n# Issue \nThe \u201cTest Endpoint\u201d API, part of the functionality for ensuring a project Webhook is accessible and functional, is vulnerable to a limited SSRF attack. A malicious user that is also a project administrator can use this API for internal port scanning.\n\n# Known Attack Vectors\nSuccessful exploitation of this issue will lead to bad actors identifying open TCP ports on any network that is accessible by the Harbor core services\n\n# Patches\nIf your product uses the affected releases of Harbor, update to version 2.0.1 to patch this issue immediately.\n\nhttps://github.com/goharbor/harbor/releases/tag/v2.0.1\n\n# Workarounds\nSince only project administrators (the user that created the project) are allowed to test the webhook endpoints configured in Harbor, a Harbor system administrator can control who is a project admin. In addition, Harbor system administrators can enforce a setting where only an administrator is allowed to create new projects instead of the default Everyone. This further restricts who can be a project administrator in Harbor.\n\n# For more information\nIf you have any questions or comments about this advisory, contact cncf-harbor-security@lists.cncf.io\nView our security policy at https://github.com/goharbor/harbor/security/policy\nhttps://nvd.nist.gov/vuln/detail/CVE-2020-13788\nhttps://www.soluble.ai/blog/harbor-ssrf-cve-2020-13788", "published": "2022-02-11T23:17:02", "modified": "2023-01-09T05:04:57", "epss": [{"cve": "CVE-2020-13788", "epss": 0.00081, "percentile": 0.33809, "modified": "2023-12-03"}], "cvss": {"score": 4.0, "vector": "AV:N/AC:L/Au:S/C:P/I:N/A:N"}, "cvss2": {"cvssV2": {"version": "2.0", "vectorString": "AV:N/AC:L/Au:S/C:P/I:N/A:N", "accessVector": "NETWORK", "accessComplexity": "LOW", "authentication": "SINGLE", "confidentialityImpact": "PARTIAL", "integrityImpact": "NONE", "availabilityImpact": "NONE", "baseScore": 4.0}, "severity": "MEDIUM", "exploitabilityScore": 8.0, "impactScore": 2.9, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}, "cvss3": {"cvssV3": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE", "baseScore": 4.3, "baseSeverity": "MEDIUM"}, "exploitabilityScore": 2.8, "impactScore": 1.4}, "href": "https://github.com/advisories/GHSA-33p6-fx42-7rf5", "reporter": "GitHub Advisory Database", "references": ["https://github.com/goharbor/harbor/security/advisories/GHSA-33p6-fx42-7rf5", "https://nvd.nist.gov/vuln/detail/CVE-2020-13788", "https://github.com/goharbor/harbor/releases", "https://www.soluble.ai/blog/harbor-ssrf-cve-2020-13788", "https://www.youtube.com/watch?v=v8Isqy4yR3Q", "https://github.com/advisories/GHSA-33p6-fx42-7rf5"], "cvelist": ["CVE-2020-13788"], "immutableFields": [], "lastseen": "2023-12-03T17:28:20", "viewCount": 8, "enchantments": {"backreferences": {"references": [{"type": "cve", "idList": ["CVE-2020-13788"]}, {"type": "kitploit", "idList": ["KITPLOIT:116690769744039319"]}]}, "dependencies": {"references": [{"type": "cve", "idList": ["CVE-2020-13788"]}, {"type": "osv", "idList": ["OSV:GHSA-33P6-FX42-7RF5"]}, {"type": "prion", "idList": ["PRION:CVE-2020-13788"]}, {"type": "veracode", "idList": ["VERACODE:25894"]}]}, "exploitation": null, "score": {"value": 0.9, "vector": "NONE"}, "affected_software": {"major_version": [{"name": "github.com/goharbor/harbor", "version": 1}, {"name": "github.com/goharbor/harbor", "version": 2}]}, "epss": [{"cve": "CVE-2020-13788", "epss": 0.00081, "percentile": 0.33208, "modified": "2023-05-01"}], "vulnersScore": 0.9}, "_state": {"dependencies": 1701624784, "score": 1701624911, "affected_software_major_version": 0, "epss": 0}, "_internal": {"score_hash": "a6ba48fda1906193ee69300d9666543d"}, "affectedSoftware": [{"version": "1.8.0", "operator": "ge", "ecosystem": "GO", "name": "github.com/goharbor/harbor"}, {"version": "2.0.1", "operator": "lt", "ecosystem": "GO", "name": "github.com/goharbor/harbor"}]}
{"prion": [{"lastseen": "2023-11-22T01:18:50", "description": "Harbor prior to 2.0.1 allows SSRF with this limitation: an attacker with the ability to edit projects can scan ports of hosts accessible on the Harbor server's intranet.", "cvss3": {"exploitabilityScore": 2.8, "cvssV3": {"baseSeverity": "MEDIUM", "confidentialityImpact": "LOW", "attackComplexity": "LOW", "scope": "UNCHANGED", "attackVector": "NETWORK", "availabilityImpact": "NONE", "integrityImpact": "NONE", "privilegesRequired": "LOW", "baseScore": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "version": "3.1", "userInteraction": "NONE"}, "impactScore": 1.4}, "published": "2020-07-15T21:15:00", "type": "prion", "title": "Design/Logic Flaw", "bulletinFamily": "NVD", "cvss2": {"severity": "MEDIUM", "exploitabilityScore": 8.0, "obtainAllPrivilege": false, "userInteractionRequired": false, "obtainOtherPrivilege": false, "cvssV2": {"accessComplexity": "LOW", "confidentialityImpact": "PARTIAL", "availabilityImpact": "NONE", "integrityImpact": "NONE", "baseScore": 4.0, "vectorString": "AV:N/AC:L/Au:S/C:P/I:N/A:N", "version": "2.0", "accessVector": "NETWORK", "authentication": "SINGLE"}, "impactScore": 2.9, "acInsufInfo": false, "obtainUserPrivilege": false}, "cvelist": ["CVE-2020-13788"], "modified": "2020-07-22T17:35:00", "id": "PRION:CVE-2020-13788", "href": "https://www.prio-n.com/kb/vulnerability/CVE-2020-13788", "cvss": {"score": 4.0, "vector": "AV:N/AC:L/Au:S/C:P/I:N/A:N"}}], "cve": [{"lastseen": "2023-12-03T15:07:31", "description": "Harbor prior to 2.0.1 allows SSRF with this limitation: an attacker with the ability to edit projects can scan ports of hosts accessible on the Harbor server's intranet.", "cvss3": {"exploitabilityScore": 2.8, "cvssV3": {"baseSeverity": "MEDIUM", "confidentialityImpact": "LOW", "attackComplexity": "LOW", "scope": "UNCHANGED", "attackVector": "NETWORK", "availabilityImpact": "NONE", "integrityImpact": "NONE", "privilegesRequired": "LOW", "baseScore": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "version": "3.1", "userInteraction": "NONE"}, "impactScore": 1.4}, "published": "2020-07-15T21:15:00", "type": "cve", "title": "CVE-2020-13788", "cwe": ["CWE-918"], "bulletinFamily": "NVD", "cvss2": {"severity": "MEDIUM", "exploitabilityScore": 8.0, "obtainAllPrivilege": false, "userInteractionRequired": false, "obtainOtherPrivilege": false, "cvssV2": {"accessComplexity": "LOW", "confidentialityImpact": "PARTIAL", "availabilityImpact": "NONE", "integrityImpact": "NONE", "baseScore": 4.0, "vectorString": "AV:N/AC:L/Au:S/C:P/I:N/A:N", "version": "2.0", "accessVector": "NETWORK", "authentication": "SINGLE"}, "impactScore": 2.9, "acInsufInfo": false, "obtainUserPrivilege": false}, "cvelist": ["CVE-2020-13788"], "modified": "2020-07-22T17:35:00", "cpe": [], "id": "CVE-2020-13788", "href": "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13788", "cvss": {"score": 4.0, "vector": "AV:N/AC:L/Au:S/C:P/I:N/A:N"}, "cpe23": []}], "veracode": [{"lastseen": "2023-04-18T12:38:02", "description": "github.com/goharbor/harbor is vulnerable to server-side request forgery (SSRF). The vulnerability exists due to a legacy endpoint to test webhook, allowing an attacker with permissions to edit projects to perform a port scan of hosts within the internal network.\n", "cvss3": {"exploitabilityScore": 2.8, "cvssV3": {"baseSeverity": "MEDIUM", "confidentialityImpact": "LOW", "attackComplexity": "LOW", "scope": "UNCHANGED", "attackVector": "NETWORK", "availabilityImpact": "NONE", "integrityImpact": "NONE", "privilegesRequired": "LOW", "baseScore": 4.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "version": "3.1", "userInteraction": "NONE"}, "impactScore": 1.4}, "published": "2020-07-16T05:56:20", "type": "veracode", "title": "Server-Side Request Forgery (SSRF)", "bulletinFamily": "software", "cvss2": {"severity": "MEDIUM", "exploitabilityScore": 8.0, "obtainAllPrivilege": false, "userInteractionRequired": false, "obtainOtherPrivilege": false, "cvssV2": {"accessComplexity": "LOW", "confidentialityImpact": "PARTIAL", "availabilityImpact": "NONE", "integrityImpact": "NONE", "baseScore": 4.0, "vectorString": "AV:N/AC:L/Au:S/C:P/I:N/A:N", "version": "2.0", "accessVector": "NETWORK", "authentication": "SINGLE"}, "impactScore": 2.9, "acInsufInfo": false, "obtainUserPrivilege": false}, "cvelist": ["CVE-2020-13788"], "modified": "2020-07-16T15:02:49", "id": "VERACODE:25894", "href": "https://sca.analysiscenter.veracode.com/vulnerability-database/security/1/1/sid-25894/summary", "cvss": {"score": 4.0, "vector": "AV:N/AC:L/Au:S/C:P/I:N/A:N"}}], "osv": [{"lastseen": "2022-05-12T01:13:36", "description": "# Impact\nMatt Hamilton from Soluble has discovered a limited Server-Side Request Forgery (SSRF) that allowed Harbor project owners to scan the TCP ports of hosts on the Harbor server's internal network. \n\nThe vulnerability was immediately fixed by the Harbor team. \n\n# Issue \nThe \u201cTest Endpoint\u201d API, part of the functionality for ensuring a project Webhook is accessible and functional, is vulnerable to a limited SSRF attack. A malicious user that is also a project administrator can use this API for internal port scanning.\n\n# Known Attack Vectors\nSuccessful exploitation of this issue will lead to bad actors identifying open TCP ports on any network that is accessible by the Harbor core services\n\n# Patches\nIf your product uses the affected releases of Harbor, update to version 2.0.1 to patch this issue immediately.\n\nhttps://github.com/goharbor/harbor/releases/tag/v2.0.1\n\n# Workarounds\nSince only project administrators (the user that created the project) are allowed to test the webhook endpoints configured in Harbor, a Harbor system administrator can control who is a project admin. In addition, Harbor system administrators can enforce a setting where only an administrator is allowed to create new projects instead of the default Everyone. This further restricts who can be a project administrator in Harbor.\n\n# For more information\nIf you have any questions or comments about this advisory, contact cncf-harbor-security@lists.cncf.io\nView our security policy at https://github.com/goharbor/harbor/security/policy\nhttps://nvd.nist.gov/vuln/detail/CVE-2020-13788\nhttps://www.soluble.ai/blog/harbor-ssrf-cve-2020-13788", "cvss3": {"exploitabilityScore": 2.8, "cvssV3": {"baseSeverity": "MEDIUM", "confidentialityImpact": "LOW", "attackComplexity": "LOW", "scope": "UNCHANGED", "attackVector": "NETWORK", "availabilityImpact": "NONE", "integrityImpact": "NONE", "baseScore": 4.3, "privilegesRequired": "LOW", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "userInteraction": "NONE", "version": "3.1"}, "impactScore": 1.4}, "published": "2022-02-11T23:17:02", "type": "osv", "title": "Harbor is vulnerable to a limited Server-Side Request Forgery (SSRF) (CVE-2020-13788)", "bulletinFamily": "software", "cvss2": {"severity": "MEDIUM", "exploitabilityScore": 8.0, "obtainAllPrivilege": false, "userInteractionRequired": false, "obtainOtherPrivilege": false, "cvssV2": {"accessComplexity": "LOW", "confidentialityImpact": "PARTIAL", "availabilityImpact": "NONE", "integrityImpact": "NONE", "baseScore": 4.0, "vectorString": "AV:N/AC:L/Au:S/C:P/I:N/A:N", "version": "2.0", "accessVector": "NETWORK", "authentication": "SINGLE"}, "acInsufInfo": false, "impactScore": 2.9, "obtainUserPrivilege": false}, "cvelist": ["CVE-2020-13788"], "modified": "2021-05-24T19:08:11", "id": "OSV:GHSA-33P6-FX42-7RF5", "href": "https://osv.dev/vulnerability/GHSA-33p6-fx42-7rf5", "cvss": {"score": 4.0, "vector": "AV:N/AC:L/Au:S/C:P/I:N/A:N"}}]}