mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-08-26 01:22:27 +02:00
- Fix python examples/calc.py for eval, reported by X41 D-Sec.
This commit is contained in:
@@ -45,9 +45,13 @@ def operate(id, event, qstate, qdata):
|
||||
|
||||
if (event == MODULE_EVENT_NEW) or (event == MODULE_EVENT_PASS):
|
||||
|
||||
if qstate.qinfo.qname_str.endswith("._calc_.cz."):
|
||||
if qstate.qinfo.qname_str.endswith("._calc_.cz.") and not ("__" in qstate.qinfo.qname_str):
|
||||
try:
|
||||
res = eval(''.join(qstate.qinfo.qname_list[0:-3]))
|
||||
# the second and third argument to eval attempt to restrict
|
||||
# functions and variables available to stop code execution
|
||||
# but it may not be safe either. This is why __ substrings
|
||||
# are excluded from evaluation.
|
||||
res = eval(''.join(qstate.qinfo.qname_list[0:-3]),{"__builtins__":None},{})
|
||||
except:
|
||||
res = "exception"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user