Description
Avo is a framework to create admin panels for Ruby on Rails apps. Prior to 3.32.1 and 4.0.0.beta.51, Avo's association attach workflow checks attach_<association>? in the UI and GET /resources/:resource/:id/:related/new path, but the actual write endpoint, POST /resources/:resource/:id/:related, does not run the same authorization check before mutating the association through Avo::AssociationsController#create. An authenticated low-privileged Avo user can bypass hidden or disabled attach controls and directly attach related records to a parent record by sending a crafted POST request, which can lead to privilege escalation and cross-tenant data exposure where associations represent authorization-bearing relationships. This issue is fixed in versions 3.32.1 and 4.0.0.beta.51.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| avo-hq | avo | >= 4.0.0.beta.1, < 4.0.0.beta.51, < 3.32.1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | avo | < 3.32.1 | 3.32.1 | GHSA-8fq9-273g-6mrg |
| RubyGems | avo | >= 4.0.0.beta.1, < 4.0.0.beta.51 | 4.0.0.beta.51 | GHSA-8fq9-273g-6mrg |