Skip to content

Local File Inclusion vulnerability

High
connortechnology published GHSA-h5m9-6jjc-cgmw Feb 24, 2023

Package

zoneminder (ZoneMinder)

Affected versions

< 1.36.33, < 1.37.33

Patched versions

1.36.33, 1.37.33

Description

Impact

Local File Inclusion vulnerability, all ZoneMinder installs < 1.36.33 are impacted

  • In /web/index.php, there is a Local File Inclusion vulnerability:

if ( $action and $view and !$request ) {
if ( file_exists('includes/actions/'.$view.'.php') ) {
require_once('includes/actions/'.$view.'.php');
} else {
ZM\Warning("No includes/actions/$view.php for action $action");
}
}

By controlling $view, any local file ending in .php can be executed. This is supposed to be mitigated by calling detaintPath:

$view = isset($_REQUEST['view']) ? detaintPath($_REQUEST['view']) : null;

But dentaintPath is not properly sandboxing the path, but rather just replacing "../" with "" once: (/web/includes/functions.php)

function detaintPath($path) {
// Remove any absolute paths, or relative ones that want to go up
$path = str_replace('../', '', $path);
$path = ltrim($path, '/');
return $path;
}

This can be exploited by constructing paths like "..././", which get replaced by "../".

Patches

Fixed by 3268f95.
All users should apply patch manually or upgrade to 1.36.33 or 1.37.33 or greater.

Workarounds

Apply the patch manually.

Further credits

SamXML
Manfred Paul

Severity

High
8.1
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

CVE ID

CVE-2023-26036

Weaknesses

No CWEs

Credits