Bug #9512
closed
Privilege bypass due to match style used by widget privileges
Added by Jim Pingle almost 7 years ago.
Updated almost 7 years ago.
Affected Architecture:
All
Description
The current dashboard and widget privileges specify a leading wildcard, for example:
$priv_list['page-dashboard-all']['match'][] = "*.widget.php*";
$priv_list['page-dashboard-widgets']['match'][] = "*.widget.php*";
Due to this loose matching, adding ?&.widget.php" to any URL will allow the user to bypass privileges set on the page when making a GET or POST request.
Changing the match to start with the path to the widgets works around the problem:
$priv_list['page-dashboard-all']['match'][] = "widgets/widgets/*.widget.php*";
$priv_list['page-dashboard-widgets']['match'][] = "widgets/widgets/*.widget.php*";
- Status changed from New to Feedback
- % Done changed from 0 to 100
Applied in changeset commit:bc319bc01a4d709b39e4c93c7223d277ee666bff.
- Target version changed from 2.5.0 to 2.4.4-p3
- Parent task changed from #9398 to #9515
Confirmed user could access any page by appending ?&.widget.php to the URL in 2.4.4-p2. 2.4.4-p3 only allowed access to the permitted page(s) using the same technique.
- Status changed from Feedback to Resolved
- Private changed from Yes to No
Also available in: Atom
PDF