Project

General

Profile

Actions

Bug #9512

closed

Privilege bypass due to match style used by widget privileges

Added by Jim Pingle over 2 years ago. Updated over 2 years ago.

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

100%

Estimated time:
Plus Target Version:
Release Notes:
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.

Actions #1

Updated by Jim Pingle over 2 years ago

  • Parent task set to #9398
Actions #2

Updated by Jim Pingle over 2 years 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*";
Actions #3

Updated by Jim Pingle over 2 years ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 100
Actions #4

Updated by Jim Pingle over 2 years ago

  • Target version changed from 2.5.0 to 2.4.4-p3
Actions #5

Updated by Jim Pingle over 2 years ago

  • Parent task changed from #9398 to #9515
Actions #6

Updated by Chris Linstruth over 2 years 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.

Actions #7

Updated by Jim Pingle over 2 years ago

  • Status changed from Feedback to Resolved
Actions #8

Updated by Jim Pingle over 2 years ago

  • Private changed from Yes to No
Actions

Also available in: Atom PDF