CVE-2026-39380
Received Received - Intake
Stored XSS in Open Source POS Stock Locations Configuration

Publication date: 2026-04-07

Last updated on: 2026-04-24

Assigner: GitHub, Inc.

Description
Open Source Point of Sale is a web based point-of-sale application written in PHP using CodeIgniter framework. Prior to 3.4.3, a Stored Cross-Site Scripting (XSS) vulnerability exists in the Stock Locations configuration feature. The application fails to properly sanitize user input supplied through the stock_location parameter, allowing attackers to inject malicious JavaScript code that is stored in the database and executed when rendered in the Employees interface. This vulnerability is fixed in 3.4.3.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-07
Last Modified
2026-04-24
Generated
2026-05-07
AI Q&A
2026-04-07
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
opensourcepos open_source_point_of_sale to 3.4.3 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 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.
Attack-Flow Graph
AI Powered Q&A
What immediate steps should I take to mitigate this vulnerability?

The immediate and recommended mitigation is to upgrade the Open Source Point of Sale application to version 3.4.3 or later, where the vulnerability is fixed.

The fix involves properly escaping user input using the esc() helper function or htmlspecialchars() in PHP before rendering it in the Employees interface.

If upgrading immediately is not possible, avoid entering untrusted input into the Stock Locations configuration and restrict access to the configuration interface to trusted users only.

Additionally, monitor and sanitize any existing stock_location entries in the database to remove malicious scripts.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

The vulnerability allows attackers to inject and execute malicious JavaScript code in the application, which can lead to unauthorized actions on behalf of authenticated users, defacement, phishing, and credential harvesting.

Such security weaknesses can potentially lead to unauthorized access to personal or sensitive data, which may impact compliance with data protection regulations like GDPR or HIPAA that require safeguarding user data and preventing unauthorized access.

However, the provided information does not explicitly state the direct impact on compliance with these standards.


Can you explain this vulnerability to me?

CVE-2026-39380 is a Stored Cross-Site Scripting (XSS) vulnerability in the Open Source Point of Sale application, specifically in the Stock Locations configuration feature. The application does not properly sanitize user input supplied through the stock_location parameter, allowing attackers to inject malicious JavaScript code. This code is stored in the database and executed later when viewed in the Employees interface, enabling attackers to run arbitrary scripts in other users' browsers.


How can this vulnerability impact me? :

This vulnerability can allow attackers to execute arbitrary JavaScript in the browsers of authenticated users. Potential impacts include performing unauthorized actions on behalf of users, defacing the application interface, and conducting phishing or credential harvesting attacks. The attacker can exploit this by injecting malicious scripts that run when users access certain parts of the application.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by attempting to inject a test payload into the Stock Locations configuration feature and observing if the payload executes in the Employees interface.

A practical method is to log into the Open Source Point of Sale application, navigate to Configuration β†’ Stock tab, and insert a payload such as <img/src=x onerror=alert(1)> into the Stock Locations field.

After saving, navigate to Employees β†’ New Employee and check if the injected script executes, indicating the presence of the vulnerability.

For command-line detection, you can use curl to send a POST request with a malicious payload to the /config/saveLocations endpoint and then verify if the payload is stored and executed in the Employees interface.

  • Example curl command to test injection: curl -X POST -d "stock_location[]=<img/src=x onerror=alert(1)>" https://your-opensourcepos-instance/config/saveLocations -b cookie.txt -c cookie.txt

After running the above command, access the Employees β†’ New Employee page in a browser to see if the alert triggers.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart