Fixes vulerabilities in The Syndicate's security software (#72430)

Fixes #72420

🆑 ShizCalev
fix: Crew AIs can no longer interact with ANY syndicate machinery (ie
shuttle computers, buttons, ect.)
fix: Crew AIs can no longer attempt to track mobs on the syndicate base
to determine the gamemode.
/🆑
This commit is contained in:
ShizCalev
2023-01-03 20:20:35 -05:00
committed by GitHub
parent fb25613947
commit e2482efb5b
4 changed files with 12 additions and 5 deletions
+5
View File
@@ -721,6 +721,11 @@
/obj/machinery/attack_ai(mob/user)
if(!(interaction_flags_machine & INTERACT_MACHINE_ALLOW_SILICON) && !isAdminGhostAI(user))
return FALSE
if(!(ROLE_SYNDICATE in user.faction))
if((ACCESS_SYNDICATE in req_access) || (ACCESS_SYNDICATE_LEADER in req_access) || (ACCESS_SYNDICATE in req_one_access) || (ACCESS_SYNDICATE_LEADER in req_one_access))
return FALSE
if((onSyndieBase() && loc != user))
return FALSE
if(iscyborg(user))// For some reason attack_robot doesn't work
return attack_robot(user)
return _try_interact(user)
+5
View File
@@ -14,6 +14,11 @@
if(issilicon(accessor))
if(ispAI(accessor))
return FALSE
if(!(ROLE_SYNDICATE in accessor.faction))
if((ACCESS_SYNDICATE in req_access) || (ACCESS_SYNDICATE_LEADER in req_access) || (ACCESS_SYNDICATE in req_one_access) || (ACCESS_SYNDICATE_LEADER in req_one_access))
return FALSE
if(onSyndieBase() && loc != accessor)
return FALSE
return TRUE //AI can do whatever it wants
if(isAdminGhostAI(accessor))
//Access can't stop the abuse
+2
View File
@@ -1187,6 +1187,8 @@
return FALSE
if(is_away_level(T.z))
return FALSE
if(onSyndieBase() && !(ROLE_SYNDICATE in user.faction))
return FALSE
if(user != null && src == user)
return FALSE
if(invisibility || alpha == 0)//cloaked
-5
View File
@@ -13,11 +13,6 @@
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_1 = NODECONSTRUCT_1
/obj/machinery/computer/shuttle/syndicate/allowed(mob/M)
if(issilicon(M) && !(ROLE_SYNDICATE in M.faction))
return FALSE
return ..()
/obj/machinery/computer/shuttle/syndicate/launch_check(mob/user)
. = ..()
if(!.)