diff --git a/src/www/services_dhcp.php b/src/www/services_dhcp.php index f46f4ac20..37d43de6d 100644 --- a/src/www/services_dhcp.php +++ b/src/www/services_dhcp.php @@ -101,7 +101,9 @@ $config_copy_fieldsnames = array('enable', 'staticarp', 'failover_peerip', 'fail if ($_SERVER['REQUEST_METHOD'] === 'GET') { // handle identifiers and action - if (!empty($_GET['if']) && !empty($config['interfaces'][$_GET['if']])) { + if (!empty($_GET['if']) && !empty($config['interfaces'][$_GET['if']]) && + isset($config['interfaces'][$_GET['if']]['enable']) && + is_ipaddr($config['interfaces'][$_GET['if']]['ipaddr'])) { $if = $_GET['if']; if (isset($_GET['pool']) && !empty($config['dhcpd'][$_GET['if']]['pool'][$_GET['pool']])) { $pool = $_GET['pool']; diff --git a/src/www/services_dhcpv6.php b/src/www/services_dhcpv6.php index 41af40bdf..d062df975 100644 --- a/src/www/services_dhcpv6.php +++ b/src/www/services_dhcpv6.php @@ -44,7 +44,10 @@ function reconfigure_dhcpd() if ($_SERVER['REQUEST_METHOD'] === 'GET') { // handle identifiers and action - if (!empty($_GET['if']) && !empty($config['interfaces'][$_GET['if']])) { + if (!empty($_GET['if']) && !empty($config['interfaces'][$_GET['if']]) && + isset($config['interfaces'][$_GET['if']]['enable']) && + (is_ipaddr($config['interfaces'][$_GET['if']]['ipaddrv6']) || + !empty($config['interfaces'][$_GET['if']]['dhcpd6track6allowoverride']))) { $if = $_GET['if']; } else { /* if no interface is provided this invoke is invalid */