CVE-2026-33730·PHP vulnerability
Open Source Point of Sale (opensourcepos) is a web based point of sale application written in PHP using CodeIgniter framework. Prior to version 3.4.2, an Insecure Direct Object Reference (IDOR) vulnerability allows an authenticated low-privileged user to access the password change functionality of other users, including administrators, by manipulating the `employee_id` parameter. The application does not verify object ownership or enforce authorization checks. Version 3.4.2 adds object-level authorization checks to validate that the current user owns the employee_id being accessed.
- Severity
- medium
- Software
- PHP
- Fixed in
- 3.4.2
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 2% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
Until: 3.4.2
Fixed in: 3.4.2
How to fix this CVE
Upgrade PHP and OpenSourcePOS to version 3.4.2 or later to patch an IDOR vulnerability that allows authenticated users to modify password settings for other employee accounts, including administrators. This fix enforces proper authorization validation on employee resource access. Apply the update immediately, especially if your installation serves multi-user point-of-sale environments with varying privilege levels.
sudo dnf update php php-cli php-common php-curl php-gd php-json php-mbstring php-mysql php-opcache php-xmlDefensia detects this vulnerability
What an exploitation attempt looks like
Sample log line indicative of exploitation attempts:
POST|GET /employee/change_password.*employee_id=\d+ HTTP/1\.1.*Authorization: Bearer|Cookie:.*session.*[^0-9](?!\1)\d{2,4}[^0-9]WAF mitigation (if patching is not yet possible)
Add this rule to your WAF to block exploitation attempts while you schedule the patch.
Implement a WAF rule to enforce authorization checks on the /employee/change_password endpoint: block requests where the `employee_id` parameter differs from the authenticated user's own employee ID, unless the user has admin role. Log and alert on any authorization bypass attempts.How to check if you are affected
- Run `php -v` to check the installed PHP version and confirm if OpenSourcePOS is running on a version prior to 3.4.2.
- Check the OpenSourcePOS installation directory for the version file: `grep -r 'version' /path/to/opensourcepos/application/config/ | grep -i config`
- Search web server access logs for repeated requests to `/employee/change_password` endpoints with varying `employee_id` parameters from the same authenticated user: `grep 'employee.*change_password' /var/log/apache2/access.log | grep -oP 'employee_id=\d+' | sort | uniq -c | sort -rn`
- Verify the patch by checking the git commit hash in the OpenSourcePOS installation: `cd /path/to/opensourcepos && git log --oneline | head -20 | grep 'ee4d44e'`
FAQ
What is CVE-2026-33730?
This vulnerability is an Insecure Direct Object Reference (IDOR) in OpenSourcePOS that allows authenticated users with low privileges to change password settings for any other employee account, including high-privilege administrators, by manipulating the employee_id parameter without proper authorization checks.
Is CVE-2026-33730 being actively exploited?
No, CVE-2026-33730 is not currently listed on the CISA KEV catalog and no public exploits are available. However, the vulnerability is straightforward to exploit and poses a critical insider threat risk.
What versions of PHP are affected by CVE-2026-33730?
All versions of OpenSourcePOS prior to 3.4.2 running on PHP are affected. The vulnerability exists in the application logic, not PHP itself, but upgrading both the framework and OpenSourcePOS is necessary.
How do I check if my server is vulnerable to CVE-2026-33730?
Run `cd /path/to/opensourcepos && grep -r 'VERSION\|version' . | head -5` to identify the installed OpenSourcePOS version, or inspect the GitHub repository history at commit ee4d44ed to see what authorization checks were added.
Does Defensia detect CVE-2026-33730?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If PHP and OpenSourcePOS are installed on a monitored server, CVE-2026-33730 will appear in your dashboard with remediation steps.
Related PHP CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-33730. Free for 1 server.
Get started free