Page MenuHomeFeedback Tracker

Debug Console "Local Exec" incorrectly uses remoteExec, triggers BattlEye
Reviewed, NormalPublic

Description

For whatever dumb reason, the "Local Exec" button from the pause menu Debug Console pointlessly invokes the remoteExec command. This is highly problematic for us modders who are trying to diagnose issues on live servers with very strict BattlEye filters, since all uses of the remoteExec command are (also pointlessly) filtered by BE's remoteexec.txt filter.

So, when I click "Local Exec" at any time on one of my live servers, I get kicked by BattlEye for Remote Execution, despite having absolutely no intention of doing remote execution.

THE PROBLEM LIES HERE: ui_f\scripts\GUI\RscDebugConsole.sqf

//--- Local
case 0: {[[], _inputCode] spawn {_this remoteExec ["call", [player, clientOwner] select isNull player]}};

THIS IS THE FIX:

//--- Local
case 0: {[] spawn_inputCode};

This remoteExec was NOT needed here. It was put there in early 2016, but provides zero benefit, and is a complete annoyance to mod devs and server admins.

Please fix. Thank you very much.

Details

Severity
Minor
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Category
Ingame UI

Event Timeline

Any reason you won't just add exception to BE filter?

An exception for the call command? This is a joke, right? While I'm at it, do you want me to rename my server to "HACKER PARTY"?

I'm just trying to run a code snippet locally, I don't want it to be run thru remoteExec ! Do I have to build my own dev console because Bohemia can't comprehend this problem? This is absolutely ridiculous.

razazel claimed this task.Apr 6 2017, 10:27 AM
razazel changed the task status from New to Reviewed.

@razazel What does "reviewed" means? Is it getting fixed or not? I would appreciate if you guys could be just a little more explicit.

It's being worked on, if/when/how is yet to be found out.

ТЫ ОТВЕТИШ МОЙ ВОПРОС ИЛИ НЕТ?

ВАСТАНОВИ МОЙ АНКЕТУ НЕМЕДЛЕНО

@sulim0010715 This is an English-only website. Go away. - Это англоязычный сайт. Уходи.

@AgentRev That was a little bit uncalled for, seems like he is having trouble and there's no reason to push him away.

@sulim0010715 One thing he got correct, unfortunately I will have to ask you to carry on with any further communication in English.
Also I can't see a ticket you would create, if you are having trouble with some crash, please create a ticket, I will look into that afterwards.
If you are not sure how to create a ticket, please follow this link - How to Guide

PiepMGI added a subscriber: PiepMGI.Apr 7 2017, 1:54 AM

This remoteExec seems weird but it's probably the unique mean to avoid a security breach as far as you can can open the debug console locally (even if not enabled).

BIS_fnc_KK added a comment.EditedApr 28 2017, 2:27 PM

Console has been improved and made more secure. It now uses own function for code execution which makes it easier to include it in BE ignore filters or CfgRemoteExec if necessary. For more information check https://community.bistudio.com/wiki/Mission_Editor:_Debug_Console_(Arma_3)#BattlEye_Filters

Excellent, this solution suits me, that way I can allow only mode 0 thru. remoteExecutedOwner is also a very nice command I've wanted for a long time.

BIS_fnc_KK added a comment.EditedApr 30 2017, 8:56 PM

This change is scheduled for 1.70. Also whether or not execution is allowed now checked on both client and server. So it should be pretty safe to allow all modes as in example filter, as, unless configured for everyone, only logged in admin can execute it.

I am looking at fn_debugConsoleExec.sqf from dev right now, I don't see any admin login check. It seems a hacker could use it to inject server code, hence why a mode filter is still preferable:

5="BIS_fnc_debugConsoleExec \[[^0],.*\]"

The check is in BIS_fnc_isDebugConsoleAllowed which is major condition in fn_debugConsoleExec.sqf

Oh! I thought it was just a variable, didn't notice the call... I was also thinking "that's not even possible", but just now I noticed the new admin command :)