comparison mod_firewall/actions.lib.lua @ 2782:8fd37f0e108c

mod_firewall: Don't interpret format specifiers in LOG May include untrusted input (e.g. $(stanza)), and there is no legitimate way to provide additional parameters anyway.
author Matthew Wild <mwild1@gmail.com>
date Wed, 04 Oct 2017 10:54:52 +0100
parents 0116672348c4
children 165d2877eeac
comparison
equal deleted inserted replaced
2781:fe5bb7b13a59 2782:8fd37f0e108c
174 174
175 function action_handlers.LOG(string) 175 function action_handlers.LOG(string)
176 local level = string:match("^%[(%a+)%]") or "info"; 176 local level = string:match("^%[(%a+)%]") or "info";
177 string = string:gsub("^%[%a+%] ?", ""); 177 string = string:gsub("^%[%a+%] ?", "");
178 local meta_deps = {}; 178 local meta_deps = {};
179 local code = meta(("(session.log or log)(%q, %q);"):format(level, string), meta_deps); 179 local code = meta(("(session.log or log)(%q, '%%s', %q);"):format(level, string), meta_deps);
180 return code, meta_deps; 180 return code, meta_deps;
181 end 181 end
182 182
183 function action_handlers.RULEDEP(dep) 183 function action_handlers.RULEDEP(dep)
184 return "", { dep }; 184 return "", { dep };