CVE-2018-11564 in Pagekitinfo

Summary

by MITRE

Stored XSS in YOOtheme Pagekit 1.0.13 and earlier allows a user to upload malicious code via the picture upload feature. A user with elevated privileges could upload a photo to the system in an SVG format. This file will be uploaded to the system and it will not be stripped or filtered. The user can create a link on the website pointing to "/storage/poc.svg" that will point to http://localhost/pagekit/storage/poc.svg. When a user comes along to click that link, it will trigger a XSS attack.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 06/18/2024

The vulnerability CVE-2018-11564 represents a critical stored cross-site scripting flaw in YOOtheme Pagekit version 1.0.13 and earlier, demonstrating a significant security weakness in the content management system's file upload validation mechanisms. This vulnerability specifically targets the picture upload feature, where users with elevated privileges can exploit a lack of proper input sanitization to upload malicious SVG files. The flaw stems from insufficient validation and filtering of uploaded files, allowing attackers to bypass security measures that should prevent the execution of malicious code within the system's storage directory.

The technical implementation of this vulnerability occurs through the manipulation of SVG file uploads, where the system fails to properly sanitize or validate the content of these files before storing them in the designated storage location. When an attacker uploads a malicious SVG file named poc.svg to the system's storage directory at /storage/poc.svg, the file remains unfiltered and executable. The vulnerability operates through a chained attack vector where the malicious file is stored server-side and can be accessed through a predictable URL path, making it accessible to other users who click on the crafted link. This creates a persistent XSS attack surface where the malicious code executes within the context of the victim's browser when they navigate to the compromised URL.

The operational impact of CVE-2018-11564 extends beyond simple script execution, as it provides attackers with the ability to perform session hijacking, data exfiltration, and further system compromise through the exploitation of the stored XSS vulnerability. The vulnerability affects users with elevated privileges, making it particularly dangerous as it allows for privilege escalation and persistent access to the system. When users click on the crafted link pointing to the stored malicious SVG file, the XSS payload executes within their browser context, potentially allowing attackers to steal cookies, credentials, or perform actions on behalf of the victim. The vulnerability aligns with CWE-79, which specifically addresses cross-site scripting flaws, and represents a classic example of how insufficient input validation can lead to persistent security issues in web applications.

The attack surface created by this vulnerability demonstrates a fundamental flaw in the application's security architecture, where file upload validation processes fail to properly sanitize SVG content that could contain executable JavaScript. This vulnerability maps to ATT&CK technique T1203, which covers the exploitation of web applications through stored XSS attacks, and highlights the importance of implementing proper content validation and sanitization for all file uploads. Organizations using Pagekit versions prior to the patched release face significant risk as this vulnerability allows for persistent malicious code execution and can be leveraged for more sophisticated attacks including credential theft and privilege escalation. The vulnerability's persistence stems from the fact that once the malicious SVG file is uploaded and stored, it remains active until manually removed, creating a long-term security risk for the affected system.

Reservation

05/30/2018

Disclosure

06/01/2018

Moderation

accepted

CPE

ready

Exploit

Download

EPSS

0.00952

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!