Junglewise Threat Intelligence

CVE-2026-19895: OpenSourcePOS missing brute-force protection on login endpoint

CVE-2026-19895 · Severity: low · CVSS 3.7 · Published 2026-08-15

Technologies: Opensourcepos Open Source Point of Sale. Vendors: Opensourcepos.

Executive brief

OpenSourcePOS is a point-of-sale system used in retail and hospitality to manage sales, inventory, and employee access. The login endpoint lacks rate limiting and account lockout mechanisms, allowing attackers to conduct unlimited credential-guessing attacks against employee accounts. When reCAPTCHA is enabled (not default), the CAPTCHA validation occurs after password verification, creating a security flaw where incorrect passwords never trigger CAPTCHA protection and error messages leak whether a username exists—enabling attackers to enumerate valid credentials without solving any challenge.

Technical details

The vulnerability is classified as CWE-307 (Improper Restriction of Excessive Authentication Attempts). The Login::index() controller in app/Controllers/Login.php applies only a single custom validation rule (login_check) to submitted credentials with no failed-attempt counter, temporary/permanent account lockout, or per-IP rate limiting. The /login endpoint is excluded from CSRF protection by default (app/Config/Filters.php), allowing unauthenticated credential-guessing POST requests. Google reCAPTCHA is the only optional mitigation but is disabled by default. When reCAPTCHA is enabled, the password is verified before CAPTCHA validation occurs (app/Models/Employee.php::login()), so incorrect passwords never consume a CAPTCHA token. Additionally, distinct error responses ('invalid_username_and_password' vs 'invalid_gcaptcha') create an oracle allowing attackers to determine the correct password by observing which error is returned. Patches have been committed to fix these issues.

Affected products

  • opensourcepos Open Source Point of Sale up to 3.4.2

Timeline

  • 2026-08-15: disclosed
  • 2026-07-12: patched: Fix committed in fork purnadika/opensourcepos at 851fc32

References

Related threats