CVE-2025-68434

8.8 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in Open Source Point of Sale (OSPOS) allows unauthenticated attackers to create administrator accounts when logged-in administrators visit malicious web pages. This affects all OSPOS installations running versions 3.4.0 through 3.4.1. Successful exploitation leads to complete system takeover.

💻 Affected Systems

Products:
  • Open Source Point of Sale (OSPOS)
Versions: 3.4.0 through 3.4.1
Operating Systems: Any OS running PHP web server
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations within affected version range are vulnerable. CSRF protection was explicitly disabled in the code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise where attacker creates administrator account, gains full control over POS system, accesses sensitive customer/payment data, and disrupts business operations.

🟠

Likely Case

Attacker creates backdoor administrator account, accesses sales data, modifies pricing/inventory, and potentially exfiltrates payment information.

🟢

If Mitigated

With proper network segmentation and administrative access controls, impact limited to POS system only without lateral movement to other systems.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: CONFIRMED
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploit requires social engineering to lure administrator to malicious page. No authentication required for attacker.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.4.2

Vendor Advisory: https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-wjm4-hfwg-5w5r

Restart Required: No

Instructions:

1. Backup your current installation and database. 2. Download version 3.4.2 from GitHub. 3. Replace all files except app/Config/ and app/Uploads/ directories. 4. Verify CSRF filter is enabled in app/Config/Filters.php.

🔧 Temporary Workarounds

Manual CSRF Filter Enable

all

Manually re-enable CSRF protection in configuration file

Edit app/Config/Filters.php and uncomment line: '$filters->aliases['csrf'] = \CodeIgniter\Filters\CSRF::class;'

🧯 If You Can't Patch

  • Restrict administrative access to specific IP addresses only
  • Implement web application firewall (WAF) with CSRF protection rules

🔍 How to Verify

Check if Vulnerable:

Check app/Config/Filters.php for CSRF filter line. If commented out or missing, system is vulnerable.

Check Version:

Check app/Config/Constants.php for OSPOS_VERSION constant or view footer in web interface

Verify Fix Applied:

Verify app/Config/Filters.php contains uncommented line: '$filters->aliases['csrf'] = \CodeIgniter\Filters\CSRF::class;'

📡 Detection & Monitoring

Log Indicators:

  • Unexpected administrator account creation
  • POST requests to user management endpoints without CSRF tokens
  • Multiple failed login attempts followed by successful admin creation

Network Indicators:

  • HTTP POST requests to /users/create or similar endpoints without Referer header validation
  • Cross-origin requests to administrative endpoints

SIEM Query:

source="web_logs" AND (uri_path="/users/create" OR uri_path="/users/save") AND NOT csrf_token=*

🔗 References

📤 Share & Export