Project

General

Profile

Bug #9512

Privilege bypass due to match style used by widget privileges

Added by Jim Pingle 6 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
Web Interface
Target version:
Start date:
05/09/2019
Due date:
% Done:

100%

Estimated time:
Affected Version:
All
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.

Associated revisions

Revision bc319bc0 (diff)
Added by Jim Pingle 6 months ago

Make widget privilege matching more specific. Fixes #9512

Revision 2d7ec8bf (diff)
Added by Jim Pingle 6 months ago

Make widget privilege matching more specific. Fixes #9512

(cherry picked from commit bc319bc01a4d709b39e4c93c7223d277ee666bff)

History

#1 Updated by Jim Pingle 6 months ago

  • Parent task set to #9398

#2 Updated by Jim Pingle 6 months ago

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*";

#3 Updated by Jim Pingle 6 months ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 100

#4 Updated by Jim Pingle 5 months ago

  • Target version changed from 2.5.0 to 2.4.4-p3

#5 Updated by Jim Pingle 5 months ago

  • Parent task changed from #9398 to #9515

#6 Updated by Chris Linstruth 5 months ago

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.

#7 Updated by Jim Pingle 5 months ago

  • Status changed from Feedback to Resolved

#8 Updated by Jim Pingle 5 months ago

  • Private changed from Yes to No

Also available in: Atom PDF