From 6225820910f83fcf52d4854bce3d0157701dce1f Mon Sep 17 00:00:00 2001 From: Anton Reutov Date: Mon, 16 Aug 2021 14:59:41 +0300 Subject: [PATCH] Fix for "Broken or Risky Cryptographic Algorithm" Fix for reflected XSS vulnerability, found by Brian Semrau --- web/login/index.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/login/index.php b/web/login/index.php index 849eead26..36ea9fe5c 100644 --- a/web/login/index.php +++ b/web/login/index.php @@ -112,7 +112,7 @@ if (isset($_POST['user']) && isset($_POST['password'])) { } // Regenerate session id to prevent session fixation - session_regenerate_id(); + session_regenerate_id(true); // Redirect request to control panel interface if (!empty($_SESSION['request_uri'])) { @@ -158,7 +158,8 @@ if (empty($_SESSION['language'])) { } // Generate CSRF token -$_SESSION['token'] = md5(uniqid(mt_rand(), true)); +$token = bin2hex(file_get_contents('/dev/urandom', false, null, 0, 16)); +$_SESSION['token'] = $token; require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php'); require_once('../templates/header.html');