Description
The Approval app's approve/reject endpoint is meant to require the file's current etag as a freshness check, preventing an approver from approving or rejecting a file whose contents changed after they reviewed it. The backend only enforced this check when the etag parameter was present and non-empty in the request. An attacker able to intercept and modify the approval request could omit the etag field entirely, bypassing the freshness check and approving or rejecting a file version they never reviewed.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Nextcloud | Approval | 1.0.0 – ≤ 3.0.0 | — |