제출 #870664: OpenSourcePOS <=3.4.2 Improper Restriction of Excessive Authentication Attempts정보

제목OpenSourcePOS <=3.4.2 Improper Restriction of Excessive Authentication Attempts
설명OpenSourcePOS authenticates users through the Login::index() controller action, which applies a single custom validation rule (login_check) to the submitted credentials. The application implements no protection against repeated failed authentication attempts: there is no failed-attempt counter, no temporary or permanent account lockout, and no per-IP or per-account rate limiting anywhere in the login path. An attacker can therefore submit an unlimited number of username/password combinations at machine speed. The only optional mitigation is Google reCAPTCHA, which is disabled by default (the setting gcaptcha_enable is absent from the shipped default configuration and must be enabled manually in the database). In a default deployment the login endpoint has neither CAPTCHA nor rate limiting, and /login is additionally excluded from CSRF protection (app/Config/Filters.php: 'csrf' => ['except' => 'login|migrate']), so credential-guessing requests need no token. Even when an administrator enables reCAPTCHA, the validation logic in OSPOSRules::login_check() verifies the password before the CAPTCHA. When the password is wrong, the function returns immediately and the CAPTCHA branch is never reached. Consequently: - Wrong-password attempts never consume or require a valid CAPTCHA token, so the CAPTCHA does not throttle guessing. - The server returns invalid_username_and_password for a wrong password but invalid_gcaptcha once the password is correct (and a valid token is absent). This observable response discrepancy is a credential-validity oracle: an attacker can determine the correct password without solving the CAPTCHA, by watching which error is returned. The net effect is that an attacker can enumerate valid credentials offline. With CAPTCHA disabled (default), a correct guess additionally grants an authenticated session directly (HTTP 302 redirect to /home).
원천⚠️ https://github.com/opensourcepos/opensourcepos/issues/4583
사용자
 ZAST.AI (UID 87884)
제출2026. 06. 26. AM 10:24 (2 개월 ago)
모더레이션2026. 08. 14. PM 08:52 (2 months later)
상태수락
VulDB 항목390085 [opensourcepos Open Source Point of Sale 까지 3.4.2 Login Endpoint app/Config/Filters.php Login::index 정보 공개]
포인트들20

Might our Artificial Intelligence support you?

Check our Alexa App!