← Back to CVEs
Ultimate POS

CVE-2026-70560 - Ultimate POS Stored XSS via First Name Field in Leave Notifications

August 2026 — Common Vulnerabilities and Exposures (CVE)

A GitHub repository version of this disclosure can be read here: CVE-2026-70560.


DetailInformation
CVE RecordCVE-2026-70560
Severity4.8 Medium (CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N)
5.4 Medium (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N)
Date Published2026-08-12
Software NameUltimate POS
Affected Version(s)0 through 7.2
Software Linkhttps://codecanyon.net/item/ultimate-pos-stock-management-point-of-sale-application/21216332
VendorUltimate Fosters
Researcher CreditsAaron Amran Bin Amiruddin (@aaronamran)

Description

Ultimate POS (Stock Management & Point of Sale) contains a stored cross-site scripting vulnerability that allows low-privileged authenticated attackers to inject arbitrary HTML and script markup by setting a malicious payload in the user first-name field during account creation. Attackers with a low-privileged role such as Cashier can submit a leave request through the HRM/Leave module, causing the unsanitized first-name markup to execute in the browser session of any higher-privileged user who views the leave-application notification pane, enabling cross-user session compromise within the admin origin.


Proof-of-Concept

The live demo of Ultimate POS v7.2 does not allow self-registration without authenticating first. For the purpose of this PoC, log in as the demo admin user and create a new user account. Insert the following XSS payload into the user's First Name field, filling the remaining fields with arbitrary test data:

<u>firstname</u><script>alert(document.domain)</script>

CVE-2026-70560 Image 1

2. Once the user is created, navigate to the HRM module and add a leave request on behalf of that user. Select the newly created employee, fill in any required fields with dummy data, and save the changes.

CVE-2026-70560 Image 2

CVE-2026-70560 Image 3

3. When an administrator opens or views the leave request notification, the stored XSS payload executes automatically due to improper input sanitization and unescaped rendering.

CVE-2026-70560 Image 4


Timeline



See you in the next hack.

@aaronamran

August 2026