edges | samples.py:2:26:2:32 | After ImportMember | samples.py:2:26:2:32 | request | provenance | | | samples.py:2:26:2:32 | request | samples.py:9:25:9:31 | request | provenance | | | samples.py:2:26:2:32 | request | samples.py:16:25:16:31 | request | provenance | | | samples.py:9:5:9:14 | user_input | samples.py:10:59:10:68 | user_input | provenance | | | samples.py:9:18:9:47 | After escape() | samples.py:9:5:9:14 | user_input | provenance | | | samples.py:9:25:9:31 | request | samples.py:9:25:9:36 | After Attribute | provenance | AdditionalTaintStep | | samples.py:9:25:9:36 | After Attribute | samples.py:9:25:9:46 | After Attribute() | provenance | dict.get | | samples.py:9:25:9:46 | After Attribute() | samples.py:9:18:9:47 | After escape() | provenance | Config | | samples.py:16:5:16:14 | user_input | samples.py:20:62:20:71 | user_input | provenance | | | samples.py:16:18:16:47 | After escape() | samples.py:16:5:16:14 | user_input | provenance | | | samples.py:16:25:16:31 | request | samples.py:16:25:16:36 | After Attribute | provenance | AdditionalTaintStep | | samples.py:16:25:16:36 | After Attribute | samples.py:16:25:16:46 | After Attribute() | provenance | dict.get | | samples.py:16:25:16:46 | After Attribute() | samples.py:16:18:16:47 | After escape() | provenance | Config | nodes | samples.py:2:26:2:32 | After ImportMember | semmle.label | After ImportMember | | samples.py:2:26:2:32 | request | semmle.label | request | | samples.py:9:5:9:14 | user_input | semmle.label | user_input | | samples.py:9:18:9:47 | After escape() | semmle.label | After escape() | | samples.py:9:25:9:31 | request | semmle.label | request | | samples.py:9:25:9:36 | After Attribute | semmle.label | After Attribute | | samples.py:9:25:9:46 | After Attribute() | semmle.label | After Attribute() | | samples.py:10:59:10:68 | user_input | semmle.label | user_input | | samples.py:16:5:16:14 | user_input | semmle.label | user_input | | samples.py:16:18:16:47 | After escape() | semmle.label | After escape() | | samples.py:16:25:16:31 | request | semmle.label | request | | samples.py:16:25:16:36 | After Attribute | semmle.label | After Attribute | | samples.py:16:25:16:46 | After Attribute() | semmle.label | After Attribute() | | samples.py:20:62:20:71 | user_input | semmle.label | user_input | subpaths #select | samples.py:10:59:10:68 | user_input | samples.py:2:26:2:32 | After ImportMember | samples.py:10:59:10:68 | user_input | This $@ processes unsafely $@ and any logical validation in-between could be bypassed using special Unicode characters. | samples.py:10:59:10:68 | user_input | Unicode transformation (Unicode normalization) | samples.py:2:26:2:32 | After ImportMember | remote user-controlled data | | samples.py:20:62:20:71 | user_input | samples.py:2:26:2:32 | After ImportMember | samples.py:20:62:20:71 | user_input | This $@ processes unsafely $@ and any logical validation in-between could be bypassed using special Unicode characters. | samples.py:20:62:20:71 | user_input | Unicode transformation (Unicode normalization) | samples.py:2:26:2:32 | After ImportMember | remote user-controlled data |