NexoPOS through 6.3.0 Missing Authorization via Cash Register Session Actions
Impact
NexoPOS through 6.3.0 contains a missing authorization vulnerability that allows authenticated cashiers to manipulate other cashiers' register sessions because CashRegistersService never compares used_by with the user. Attackers holding the default nexopos.use.registers permission can submit closing, cash-in, or cash-out actions to POST /api/cash-registers/{action}/{register} to force-close sessions or alter balances.
Source excerpt · VulnCheckAffected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
Blair2004 · NexoPOS
Other versions: unaffected
| Version / range | Source status |
|---|---|
| 0 through 6.3.0 (inclusive) | affected |
Original source description
NexoPOS through 6.3.0 contains a missing authorization vulnerability that allows authenticated cashiers to manipulate other cashiers' register sessions because CashRegistersService never compares used_by with the user. Attackers holding the default nexopos.use.registers permission can submit closing, cash-in, or cash-out actions to POST /api/cash-registers/{action}/{register} to force-close sessions or alter balances.
References
- Source reference github.com/Blair2004/NexoPOS/issues/2668
- Patch github.com/Blair2004/NexoPOS/pull/2673
- Source reference github.com/Blair2004/NexoPOS/blob/1e9b2e272026e176cba354534678a111b1832ce6/app/Services/CashRegistersService.php
- Source reference github.com/Blair2004/NexoPOS
- Security advisory www.vulncheck.com/advisories/nexopos-through-6.3.0-missing-authorization-via-cash-register-session-actions