mvdevs / jk2mv

JK2MV - improved, modernized JK2 client and server
https://jk2mv.org
GNU General Public License v2.0
105 stars 33 forks source link

Plenty of exploits and fixes missing from OpenJK/ioquake3 #46

Closed ensiform closed 8 years ago

ensiform commented 9 years ago

When I have time to crawl through more, I can start showing which things exactly.

ouned commented 9 years ago

hmm I never heard about most of these problems.

Is there any particular reason why systeminfo cvars aren't protected better on the client like this?

I think @Daggolin fixed the CVAR_SYSTEMINFO somehow a while ago.

Not all cases of dir traversal appear fixed

the fs_game fixes from the link? q3dirtrav is fixed

ensiform commented 8 years ago

Currently looking at an alternative sv_filterCommands implementation:

sv_filterCommands 0/1 was implemented by OpenJK. The Cmd_Args_Sanatise feature wasn't optional in ioquake3 (but we felt it was too strict and we are looking to make it even less strict when 1 now, hence removing the default ; check and leaving that to ONLY for callvote unless sv_filterCommands has bitflag 2.

https://gist.github.com/ensiform/5de0ba2901a9a956905e

https://gist.github.com/ensiform/4e1c418a25ebfd47c25c

// flags for sv_filterCommands
#define SVFC_GENERAL_NORMAL 1
#define SVFC_GENERAL_STRICT 2
#define SVFC_FIX_CHAT 4
#define SVFC_FIX_CALLVOTE 8
#define SVFC_FIX_BADTEAMS 16

I have not yet submitted this or tested it much. But this is the POC because of this thread: https://github.com/JACoders/OpenJK/issues/726

ensiform commented 8 years ago

Added more things. Working on diffing codebases right now.

ensiform commented 8 years ago

https://github.com/JACoders/OpenJK/blame/master/codemp/client/cl_scrn.cpp#L502-L519

Trying to host a server ie via the menu and non dedicated will crash your client if using a ratio that is not 4:3. Was a q3 bug so I doubt its not affected in jk2 since it was affected in jka.

ouned commented 8 years ago

closing this for now as everything important is finished