Authored by Matteo Beccati

Revive Adserver versions 5.1.0 and below suffer from multiple reflective cross site scripting vulnerabilities.

advisories | CVE-2021-22874, CVE-2021-22875

========================================================================
Revive Adserver Security Advisory REVIVE-SA-2021-002
------------------------------------------------------------------------
https://www.revive-adserver.com/security/revive-sa-2021-002
------------------------------------------------------------------------
CVE-IDs: CVE-2021-22874, CVE-2021-22875
Date: 2020-01-26
Risk Level: Low
Applications affected: Revive Adserver
Versions affected: <= 5.1.0
Versions not affected: >= 5.1.1
Website: https://www.revive-adserver.com/
========================================================================


========================================================================
Vulnerability 1 - Reflected XSS
========================================================================
Vulnerability Type: Improper Neutralization of Input During Web Page
Generation ('Cross-site Scripting') [CWE-79]
CVE-ID: CVE-2021-22874
CVSS Base Score: 4.3
CVSSv3.1 Vector: AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
CVSS Impact Subscore: 1.4
CVSS Exploitability Subscore: 2.8
========================================================================

Description
-----------
Security researcher Alexey Solovyev (solov9ev) has discovered a
reflected XSS vulnerability in userlog-index.php. An attacker could
trick a user with access to the user interface of a Revive Adserver
instance into clicking on a specifically crafted URL and execute
injected JavaScript code.


Details
-------
The period_preset parameter was not fully escaped in userlog-index.php
(and possibly other scripts) when printed it in a JavaScript context,
allowing an attacker to work around the existing escaping with the
injection of a closing </script> tag. That allows to append other
malicious HTML and/or JavaScript code. What could be injected is limited
by the existing escaping and the session cookie cannot be accessed or
stolen via JavaScript.

References
----------
https://hackerone.com/reports/1083231
https://github.com/revive-adserver/revive-adserver/commit/e2a67ce8
https://cwe.mitre.org/data/definitions/79.html



========================================================================
Vulnerability 2 - Reflected XSS
========================================================================
Vulnerability Type: Improper Neutralization of Input During Web Page
Generation ('Cross-site Scripting') [CWE-79]
CVE-ID: CVE-2021-22875
CVSS Base Score: 4.3
CVSSv3.1 Vector: AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
CVSS Impact Subscore: 1.4
CVSS Exploitability Subscore: 2.8
========================================================================

Description
-----------
Security researcher Alexey Solovyev (solov9ev) has discovered a
reflected XSS vulnerability in stats.php. An attacker could trick a user
with access to the user interface of a Revive Adserver instance into
clicking on a specifically crafted URL and pressing a certain key
combination to execute injected JavaScript code.


Details
-------
The setPerPage parameter was not fully escaped in stats.php (and
possibly other scripts) when printed it in an HTML attribute, allowing
an attacker to work around the existing escaping and to inject other
HTML attributes. The published exploit requires the victim to press a
complex combination of keys to execute JavaScript code injected as
onclick attribute of a hidden form field. Again, the session cookie
cannot be accessed or stolen via JavaScript.



References
----------
https://hackerone.com/reports/1083376
https://github.com/revive-adserver/revive-adserver/commit/6f46076a
https://cwe.mitre.org/data/definitions/79.html


========================================================================
Solution
========================================================================

We strongly advise people to upgrade to the most recent 5.1.1 version of
Revive Adserver.


========================================================================
Contact Information
========================================================================

The security contact for Revive Adserver can be reached at:
<security AT revive-adserver DOT com>.

Please review https://www.revive-adserver.com/security/ before doing so.


--
Matteo Beccati
On behalf of the Revive Adserver Team
https://www.revive-adserver.com/