fixes small fail2topic vulnerability
This commit is contained in:
@@ -44,7 +44,19 @@ SUBSYSTEM_DEF(fail2topic)
|
|||||||
/datum/controller/subsystem/fail2topic/Shutdown()
|
/datum/controller/subsystem/fail2topic/Shutdown()
|
||||||
DropFirewallRule()
|
DropFirewallRule()
|
||||||
|
|
||||||
|
/datum/controller/subsystem/fail2topic/CanProcCall(procname)
|
||||||
|
. = ..()
|
||||||
|
if(.)
|
||||||
|
switch(procname)
|
||||||
|
if("IsRateLimited")
|
||||||
|
return FALSE
|
||||||
|
if("BanFromFirewall")
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/datum/controller/subsystem/fail2topic/proc/IsRateLimited(ip)
|
/datum/controller/subsystem/fail2topic/proc/IsRateLimited(ip)
|
||||||
|
if(IsAdminAdvancedProcCall())
|
||||||
|
return FALSE
|
||||||
|
|
||||||
var/last_attempt = rate_limiting[ip]
|
var/last_attempt = rate_limiting[ip]
|
||||||
|
|
||||||
var/static/datum/config_entry/keyed_list/topic_rate_limit_whitelist/cached_whitelist_entry
|
var/static/datum/config_entry/keyed_list/topic_rate_limit_whitelist/cached_whitelist_entry
|
||||||
@@ -82,6 +94,8 @@ SUBSYSTEM_DEF(fail2topic)
|
|||||||
/datum/controller/subsystem/fail2topic/proc/BanFromFirewall(ip)
|
/datum/controller/subsystem/fail2topic/proc/BanFromFirewall(ip)
|
||||||
if (!enabled)
|
if (!enabled)
|
||||||
return
|
return
|
||||||
|
if(IsAdminAdvancedProcCall())
|
||||||
|
return
|
||||||
|
|
||||||
active_bans[ip] = REALTIMEOFDAY
|
active_bans[ip] = REALTIMEOFDAY
|
||||||
fail_counts -= ip
|
fail_counts -= ip
|
||||||
|
|||||||
Reference in New Issue
Block a user