diff --git a/src/zabbix_server/escalator/escalator.c b/src/zabbix_server/escalator/escalator.c
index c608f76efa..bd6bd02921 100644
--- a/src/zabbix_server/escalator/escalator.c
+++ b/src/zabbix_server/escalator/escalator.c
@@ -1039,6 +1039,13 @@ static void	execute_commands(const DB_EVENT *event, const DB_EVENT *r_event, con
 			goto fail;
 		}
 
+		if (ZBX_SCRIPT_TYPE_WEBHOOK == script.type &&
+				SUCCEED != zbx_check_webhook_script_permissions(&script, error, sizeof(error)))
+		{
+			rc = FAIL;
+			goto fail;
+		}
+
 		if (ZBX_SCRIPT_TYPE_WEBHOOK == script.type)
 		{
 			if (SUCCEED != DBfetch_webhook_params(script.scriptid, &webhook_params, error, sizeof(error)))
diff --git a/src/zabbix_server/scripts/scripts.c b/src/zabbix_server/scripts/scripts.c
index 115ea0b628..bd059131f2 100644
--- a/src/zabbix_server/scripts/scripts.c
+++ b/src/zabbix_server/scripts/scripts.c
@@ -233,6 +233,17 @@ exit:
 	return ret;
 }
 
+int	zbx_check_webhook_script_permissions(const zbx_script_t *script, char *error, size_t error_len)
+{
+	if (ZBX_SCRIPT_EXECUTE_ON_SERVER == script->execute_on)
+		return SUCCEED;
+
+	zbx_strlcpy(error, "Deprecated configuration. Webhook script can be executed only on Zabbix server.",
+			error_len);
+
+	return FAIL;
+}
+
 int	zbx_check_script_user_permissions(zbx_uint64_t userid, zbx_uint64_t hostid, zbx_script_t *script)
 {
 	int		ret = SUCCEED;
diff --git a/src/zabbix_server/scripts/scripts.h b/src/zabbix_server/scripts/scripts.h
index cf251914c7..f5f0ca25cb 100644
--- a/src/zabbix_server/scripts/scripts.h
+++ b/src/zabbix_server/scripts/scripts.h
@@ -26,6 +26,7 @@
 void	zbx_script_init(zbx_script_t *script);
 void	zbx_script_clean(zbx_script_t *script);
 int	zbx_check_script_permissions(zbx_uint64_t groupid, zbx_uint64_t hostid);
+int	zbx_check_webhook_script_permissions(const zbx_script_t *script, char *error, size_t error_len);
 int	zbx_check_script_user_permissions(zbx_uint64_t userid, zbx_uint64_t hostid, zbx_script_t *script);
 int	DBfetch_webhook_params(zbx_uint64_t scriptid, char **params, char *error, size_t error_len);
 int	zbx_script_prepare(zbx_script_t *script, const zbx_uint64_t *hostid, char *error, size_t max_error_len);
diff --git a/src/zabbix_server/trapper/nodecommand.c b/src/zabbix_server/trapper/nodecommand.c
index 2a19e3d2ab..80c41d594f 100644
--- a/src/zabbix_server/trapper/nodecommand.c
+++ b/src/zabbix_server/trapper/nodecommand.c
@@ -368,6 +368,12 @@ static int	execute_script(zbx_uint64_t scriptid, zbx_uint64_t hostid, zbx_uint64
 		goto fail;
 	}
 
+	if (ZBX_SCRIPT_TYPE_WEBHOOK == script.type &&
+			SUCCEED != zbx_check_webhook_script_permissions(&script, error, sizeof(error)))
+	{
+		goto fail;
+	}
+
 	/* get host or event details */
 
 	if (0 != hostid)
