CVE-2024-2188
Cross-Site Scripting vulnerability in TP-Link Archer AX50
Record summary
CVE-2024-2188 has a selected CVSS score of 6.1 (medium); EIP currently links 1 curated repository PoC.
Description
Cross-Site Scripting (XSS) vulnerability stored in TP-Link Archer AX50 affecting firmware version 1.0.11 build 2022052. This vulnerability could allow an unauthenticated attacker to create a port mapping rule via a SOAP request and store a malicious JavaScript payload within that rule, which could result in an execution of the JavaScript payload when the rule is loaded.
Exploitation context
Available material
- Curated repository PoCs
- 1
CISA SSVC decision
CISA Coordinator · SSVC 2.0.3 · Evaluated Aug 2, 2024 · Source: CVE List
Affected products and versions
1| Product | Source | Version range | Status |
|---|---|---|---|
Archer AX50Browse TP-Link / Archer AX50Default status: unaffected | CVE List | 1.0.11 build 2022052 | affected |
Proofs of concept
1Curated repository PoCs
GitHubCVE-2024-2188Curated repository PoCby hacefreskoStars: 11Exploit3 files
Analysis
Technical assessment
Python script that exploits CVE-2024-2188, a stored XSS vulnerability in TP-Link Archer AX50 firmware, by sending SOAP requests to the UPnP service to inject a JavaScript payload into a port mapping description.
Backdoor review
No backdoor observed in reviewed code
The PoC consists of a README and a Python script (poc.py) that demonstrates a stored XSS vulnerability (CVE-2024-2188) by sending SOAP requests to a TP-Link Archer AX50 router. The script deletes a previous port mapping and adds a new one containing a hardcoded XSS payload. No backdoor, deceptive payload, or concealed operator-directed harm is observed.
Classification basis and observed behavior
Classification basis
The script actively sends crafted SOAP requests to inject a malicious JavaScript payload into the target device, which constitutes exploitation of the stored XSS vulnerability rather than mere detection or scanning.
poc.py:31-52README.md:4-5Requirements
- Target device must be a TP-Link Archer AX50 running firmware version 1.0.11 build 2022052 with the UPnP service exposed on port 1900.
README.md:3poc.py:11 - Attacker must provide the victim router IP and attacker IP as command-line arguments.
poc.py:3-5
Observed behavior
- Sends a SOAP DeletePortMapping request to remove any existing port mapping on external port 1337.
poc.py:10-27 - Sends a SOAP AddPortMapping request with a script tag payload in the NewPortMappingDescription field to create a new port mapping.
poc.py:30-52 - The injected JavaScript payload executes when an authenticated user views the UPnP tab in the router's admin interface.
README.md:4-6
Behaviors behind the backdoor verdict
Observables
- Xss Payload
- Payload withheldThe PoC injects this payload into the NewPortMappingDescription field of a SOAP AddPortMapping request to demonstrate the stored XSS vulnerability.
poc.py:31poc.py:38 - Target Url
- Payload withheldThe script sends SOAP requests to this URL on the victim router to manipulate UPnP port mappings.
poc.py:11
What the analysis did not establish
- One binary firmware file (vulnerable_fw/ax50v1_intel-up-ver1-0-11-P1[20220526-rel63519]_sign_2022-05-27_08.55.42.bin) is present but not analyzed; its contents are opaque.
- The analysis is based solely on the provided text files (README.md and poc.py); the binary file and any other potential artifacts are not inspected.
- One binary file (vulnerable_fw/ax50v1_intel-up-ver1-0-11-P1[20220526-rel63519]_sign_2022-05-27_08.55.42.bin) was flagged as binary and not analyzed; it is the target firmware, not executable PoC code.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.