Description
CoopCycle coopcycle-web before 6.20.1 contains a broken access control vulnerability that allows any courier to read and modify every incident because Incident operations only check ROLE_COURIER. Attackers can enumerate sequential incident ids and use PUT /api/incidents/{id}/action to re-price, cancel or reschedule other stores' orders and tasks.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| CoopCycle | coopcycle-web | < 6.20.1 | 6.20.1 |
References
- https://github.com/coopcycle/coopcycle-web/issues/5390 issue-tracking
- https://hackmd.io/@hieund/coopcycle-incident-courier-cross-tenant-bola third-party-advisory
- https://github.com/coopcycle/coopcycle-web/commit/d997393d128afa1febe34e8f295b9511c12d19a0 patch
- https://github.com/coopcycle/coopcycle-web/blob/v6.19.1/src/Entity/Incident/Incident.php#L43-L71 technical-description
- VulnCheck Advisory: CoopCycle coopcycle-web before 6.20.1 IDOR via Incident Resource and Action Endpoint third-party-advisory