Jump to content
lukio

A3 Linux beserver.so 0 bytes.

Recommended Posts

After a routine restart of my my linux server I got the error

Attempt to override final function - rscunitinfo_script
 9:33:42 BattlEye initialization failed
Server creation failed : 2302

First I was dumbfounded because ports are open and to my knowledge the port permissions have not been changed. After doing a little bit of searching I noticed that in the /<installdir>/battleye beserver.so was set to 0 bytes. So I downloaded the newest version of beserver.so from the BattleEye site, dumped it there and restarted the server. Immediately after server started running, the beserver.so got set from 277.160 bytes to 0 bytes. The file still remains

 

Any information on how to remedy this? Server has been running fine for several weeks and we never had issues with BattleEye server not being initialized.

Share this post


Link to post
Share on other sites

Same here.

Also downloaded newest beserver.so, set to 0 size immediately after server restart.

 

Only thing is, that it seems to me that this error occurred yesterday after BE updated itself (logfile message dates to 10. September 17:20).

We didn't restart the server bin itself, it just stopped working - process was still running, but it wasn't connected to Steam anymore.

It also looks to me as if the server process is writing to beserver.so, setting its size to 0 Bytes. Normally the whole A3 server dir ownership is set to serveruser.servergroup because I run the binary with a dedicated user, but after a failed start attempt the ownership of beserver.so is set to serveruser.serveruserprimarygroup. Since group ownership changes to the primary group of the serveruser, I strongly suspect that the server binary is writing to beserver.so but failing for some reason.

 

Disabling BE makes the server start and run normally.

Any help is appreciated.

Share this post


Link to post
Share on other sites

Disabling BE makes the server start and run normally.

 

 

Not really an option on some servers :-(

Share this post


Link to post
Share on other sites

There is a heavy security issue that give root privilege. It seems to be a linux security issue

 

 


 

drwxr-xr-x  2 steam steam 4.0K Sep 11 22:48 .
drwxr-xr-x 13 steam steam 4.0K Sep 11 22:49 ..
-r--r--r--  1 root  root  239K Sep 11 22:36 beserver.bak
-rw-------  1 steam steam    0 Sep 11 22:48 beserver.so
-rwxr-xr-x  1 steam steam 1.8K Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam  290 Oct 29  2014 publicvariable.log

root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye # cp beserver.bak beserver.so
root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye # chown root.root beserver.so
root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye # chmod 444 beserver.so
root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye # su - steam

steam@Debian-76-wheezy-64-minimal:~$ cd /home/steam/arma3
steam@Debian-76-wheezy-64-minimal:~/arma3$ ./watchdog1 start
Starting ArmA 3 server...
steam@Debian-76-wheezy-64-minimal:~/arma3$ nohup: redirecting stderr to stdout

steam@Debian-76-wheezy-64-minimal:~/arma3$ cd battleye/

// player connecting to the game
// BE updating
//////////////////////////////

steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 516
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-r--r--r--  1 root  root  244721 Sep 11 22:50 beserver.so
-rw-r--r--  1 steam steam  20480 Sep 11 22:51 beserver.so.new
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log
steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 568
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-r--r--r--  1 root  root  244721 Sep 11 22:50 beserver.so
-rw-r--r--  1 steam steam  73728 Sep 11 22:51 beserver.so.new
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log

steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 636
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-r--r--r--  1 root  root  244721 Sep 11 22:50 beserver.so
-rw-r--r--  1 steam steam 143360 Sep 11 22:51 beserver.so.new
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log

steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 712
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-r--r--r--  1 root  root  244721 Sep 11 22:50 beserver.so
-rw-r--r--  1 steam steam 221184 Sep 11 22:51 beserver.so.new
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log
steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 744
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-r--r--r--  1 root  root  244721 Sep 11 22:50 beserver.so
-rw-r--r--  1 steam steam 253952 Sep 11 22:51 beserver.so.new
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log

// ESCALATION ISSUE - process with steam id/gid overwrite root file with 444 rights

steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$ ls
total 256
drwxr-xr-x  2 steam steam   4096 Sep 11 22:51 .
drwxr-xr-x 13 steam steam   4096 Sep 11 22:50 ..
-r--r--r--  1 root  root  244721 Sep 11 22:36 beserver.bak
-rw-------  1 steam steam      0 Sep 11 22:51 beserver.so
-rwxr-xr-x  1 steam steam   1787 Aug 29  2014 eula.txt
-rw-r--r--  1 steam steam    290 Oct 29  2014 publicvariable.log

steam@Debian-76-wheezy-64-minimal:~/arma3/battleye$
 

 

 


arma3serv 10856 11019      steam  263w      REG                9,3     16384  136315367 /home/steam/steamcmd/arma3/battleye/beserver.so.new
arma3serv 10856 11029      steam  263w      REG                9,3     16384  136315367 /home/steam/steamcmd/arma3/battleye/beserver.so.new
arma3serv 10856 11060      steam  263w      REG                9,3     16384  136315367 /home/steam/steamcmd/arma3/battleye/beserver.so.new
arma3serv 10856 11061      steam  263w      REG                9,3     16384  136315367 /home/steam/steamcmd/arma3/battleye/beserver.so.new
root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye #
root@Debian-76-wheezy-64-minimal /home/steam/arma3/battleye # strace -p 10856
Process 10856 attached - interrupt to quit
+++ killed by SIGSEGV (core dumped) +++

 

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/steam/steamcmd/arma3/arma3server -name=server -config=server1.cfg -port=2'.
Program terminated with signal 11, Segmentation fault.
#0  0x086c2882 in ?? ()
 

 


(gdb) (gdb) bt
Undefined command: "".  Try "help".
(gdb) #0  0x086c2882 in ?? ()
(gdb) #1  0x086d1e1d in ?? ()
(gdb) #2  0x086d289b in ?? ()
(gdb) #3  0x081a69bd in ?? ()
(gdb) #4  0x081a738a in ?? ()
(gdb) #5  0x081a6100 in ?? ()
(gdb) #6  0xf7789c39 in start_thread () from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
(gdb) #7  0xf7143a6e in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6

 

(gdb) disass 0x086c2882
No function contains specified address.


 

Share this post


Link to post
Share on other sites

The 0-bytes overwrite is caused by a bug in the Arma 3 server following "BattlEye initialization failed". The devs are aware of it.

 

The problem here is missing dependencies. If you check your GLIBC version using "ldd --version" it will probably show 2.13. The new beserver.so needs at least 2.15. Please upgrade GLIBC on your server by following instructions such as these: http://stackoverflow.com/questions/10863613/how-to-upgrade-glibc-from-version-2-13-to-2-15-on-debian.

  • Like 1

Share this post


Link to post
Share on other sites

The 0-bytes overwrite is caused by a bug in the Arma 3 server following "BattlEye initialization failed". The devs are aware of it

 

Problem solved, thank you!

Share this post


Link to post
Share on other sites

The 0-bytes overwrite is caused by a bug in the Arma 3 server following "BattlEye initialization failed". The devs are aware of it.

 

The problem here is missing dependencies. If you check your GLIBC version using "ldd --version" it will probably show 2.13. The new beserver.so needs at least 2.15. Please upgrade GLIBC on your server by following instructions such as these: http://stackoverflow.com/questions/10863613/how-to-upgrade-glibc-from-version-2-13-to-2-15-on-debian.

 

Does that mean updating glibc is a work-around or is this the final solution?

Just asking, because unfortunately upgrading glibc is not an option here.

 

Thnx.

Share this post


Link to post
Share on other sites

The library should be compiled as static, not dynamic exec. This was a mistake to deploy a dynamic binary without checking if required libraries were present before.

 

Normaly, it can not happen for thoses reasons:

- only distrib packages use dynamic compilaton cause package system check and manage dependencies with libraries

- or manual compilation that check first if libraries are presents

 

Deploy dynamic code without checking dependencies beforehand automatically lead to an issue. Ask players to upgrade their glibc is not a satisfactory solution. It is BE client deployment process that is bad.

 

Note: static compilation will not fix the system security issue, and the BIS backdoor that download distance code.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×