Merge pull request #15774 from deathride58/firewallfix

[S] fixes small fail2topic vulnerability
This commit is contained in:
Lin
2022-08-16 21:02:10 +00:00
committed by GitHub
+19
View File
@@ -44,7 +44,24 @@ SUBSYSTEM_DEF(fail2topic)
/datum/controller/subsystem/fail2topic/Shutdown()
DropFirewallRule()
/datum/controller/subsystem/fail2topic/vv_edit_var(var_name, var_value)
if(var_name == NAMEOF(src, rule_name))
return FALSE
return ..()
/datum/controller/subsystem/fail2topic/CanProcCall(procname)
. = ..()
if(.)
switch(procname)
if("IsRateLimited")
return FALSE
if("BanFromFirewall")
return FALSE
/datum/controller/subsystem/fail2topic/proc/IsRateLimited(ip)
if(IsAdminAdvancedProcCall())
return FALSE
var/last_attempt = rate_limiting[ip]
var/static/datum/config_entry/keyed_list/topic_rate_limit_whitelist/cached_whitelist_entry
@@ -82,6 +99,8 @@ SUBSYSTEM_DEF(fail2topic)
/datum/controller/subsystem/fail2topic/proc/BanFromFirewall(ip)
if (!enabled)
return
if(IsAdminAdvancedProcCall())
return
active_bans[ip] = REALTIMEOFDAY
fail_counts -= ip