GHSA-qcqv-38jg-2r43 Pageflow vulnerable to insecure direct object reference in membership update endpoint
Attackers with manager roles can modify membership associations to compromise other accounts via insecure direct object reference.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is GHSA-qcqv-38jg-2r43?
GHSA-qcqv-38jg-2r43 is a missing authorization vulnerability in pageflow, published on 15 Sep 2022. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Impact
Pageflow has a membership edit feature which allows users to edit the roles of user memberships associated with an account that they have the manager role to (including their own). While the Entity dropdown select field is greyed out in the UI, an attacker can use tools which allow sending arbitrary HTTP request to craft a request to the /admin/users/{user_id}/memberships/{membership_id} endpoint containing an additional membership[entity_id] parameter. This parameter is honored when the membership is updated, allowing an attacker to update the membership object associated with their own account (with manager role) to be associated with a different attacker-chosen account instead. Since account_ids are enumerable, an attacker can compromise all accounts present on the platform.
Mitigation
Upgrade to version 15.7.1 or 14.5.2 of the pageflow gem.
For more information
If you have any questions or comments about this advisory email us at info(at)codevise.de
Credits
Which versions are affected by GHSA-qcqv-38jg-2r43?
4 open source packages ship an affected version, including pageflow.
| Package | Affected | Fixed in |
|---|---|---|
pageflow RubyGems | All versions | 14.5.2 |
pageflow RubyGems | All versions | 14.5.2 |
pageflow RubyGems | From 15.0.0 | 15.7.1 |
pageflow RubyGems | From 15.0.0 | 15.7.1 |
How do I fix GHSA-qcqv-38jg-2r43?
Upgrade pageflow to a fixed version for your release line: 14.5.2 or 15.7.1.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is GHSA-qcqv-38jg-2r43 being exploited?
There is no known exploitation of GHSA-qcqv-38jg-2r43 in the wild and no public exploit code.