Files
codeql/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected
yoff d5f1e092dd Python: migrate remaining query-side files to new Cfg::
Four library/query files still referenced the legacy Flow.qll `ControlFlowNode`
and friends, which no longer match the dataflow library's `Cfg::ControlFlowNode`:

- SubclassFinder.qll: type `value` as `Cfg::ControlFlowNode`.
- ExceptionInfo.qll: replace `EssaNodeDefinition.getDefiningNode()` filter
  with `Cfg::NameNode.defines(_)` (the legacy ESSA class isn't reachable
  through the new dataflow API at the query-pack layer).
- ServerSideRequestForgeryCustomizations.qll: qualify `BinaryExprNode` with
  `Cfg::` and update `stringRestriction` to take `Cfg::ControlFlowNode`.
- TarSlipCustomizations.qll: qualify `CallNode`/`AttrNode`/`NameNode` and
  the `tarFileInfoSanitizer` parameter with `Cfg::`.

The three reblessed `.expected` files are purely cosmetic toString churn
("ControlFlowNode for X" -> "X", "After X"); verified set-equal after
normalising the toString prefixes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-28 21:09:48 +00:00

67 lines
5.7 KiB
Plaintext

edges
| tarslip.py:14:1:14:3 | tar | tarslip.py:15:1:15:3 | tar | provenance | |
| tarslip.py:14:7:14:39 | After Attribute() | tarslip.py:14:1:14:3 | tar | provenance | |
| tarslip.py:18:1:18:3 | tar | tarslip.py:19:5:19:9 | entry | provenance | |
| tarslip.py:18:7:18:39 | After Attribute() | tarslip.py:18:1:18:3 | tar | provenance | |
| tarslip.py:19:5:19:9 | entry | tarslip.py:20:17:20:21 | entry | provenance | |
| tarslip.py:35:1:35:3 | tar | tarslip.py:36:5:36:9 | entry | provenance | |
| tarslip.py:35:7:35:39 | After Attribute() | tarslip.py:35:1:35:3 | tar | provenance | |
| tarslip.py:36:5:36:9 | entry | tarslip.py:39:17:39:21 | entry | provenance | |
| tarslip.py:42:1:42:3 | tar | tarslip.py:43:24:43:26 | tar | provenance | |
| tarslip.py:42:7:42:39 | After Attribute() | tarslip.py:42:1:42:3 | tar | provenance | |
| tarslip.py:58:1:58:3 | tar | tarslip.py:59:5:59:9 | entry | provenance | |
| tarslip.py:58:7:58:39 | After Attribute() | tarslip.py:58:1:58:3 | tar | provenance | |
| tarslip.py:59:5:59:9 | entry | tarslip.py:61:21:61:25 | entry | provenance | |
| tarslip.py:90:1:90:3 | tar | tarslip.py:91:1:91:3 | tar | provenance | |
| tarslip.py:90:7:90:39 | After Attribute() | tarslip.py:90:1:90:3 | tar | provenance | |
| tarslip.py:94:1:94:3 | tar | tarslip.py:95:5:95:9 | entry | provenance | |
| tarslip.py:94:7:94:39 | After Attribute() | tarslip.py:94:1:94:3 | tar | provenance | |
| tarslip.py:95:5:95:9 | entry | tarslip.py:96:17:96:21 | entry | provenance | |
| tarslip.py:109:1:109:3 | tar | tarslip.py:110:1:110:3 | tar | provenance | |
| tarslip.py:109:7:109:39 | After Attribute() | tarslip.py:109:1:109:3 | tar | provenance | |
| tarslip.py:112:1:112:3 | tar | tarslip.py:113:24:113:26 | tar | provenance | |
| tarslip.py:112:7:112:39 | After Attribute() | tarslip.py:112:1:112:3 | tar | provenance | |
nodes
| tarslip.py:14:1:14:3 | tar | semmle.label | tar |
| tarslip.py:14:7:14:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:15:1:15:3 | tar | semmle.label | tar |
| tarslip.py:18:1:18:3 | tar | semmle.label | tar |
| tarslip.py:18:7:18:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:19:5:19:9 | entry | semmle.label | entry |
| tarslip.py:20:17:20:21 | entry | semmle.label | entry |
| tarslip.py:35:1:35:3 | tar | semmle.label | tar |
| tarslip.py:35:7:35:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:36:5:36:9 | entry | semmle.label | entry |
| tarslip.py:39:17:39:21 | entry | semmle.label | entry |
| tarslip.py:42:1:42:3 | tar | semmle.label | tar |
| tarslip.py:42:7:42:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:43:24:43:26 | tar | semmle.label | tar |
| tarslip.py:58:1:58:3 | tar | semmle.label | tar |
| tarslip.py:58:7:58:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:59:5:59:9 | entry | semmle.label | entry |
| tarslip.py:61:21:61:25 | entry | semmle.label | entry |
| tarslip.py:90:1:90:3 | tar | semmle.label | tar |
| tarslip.py:90:7:90:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:91:1:91:3 | tar | semmle.label | tar |
| tarslip.py:94:1:94:3 | tar | semmle.label | tar |
| tarslip.py:94:7:94:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:95:5:95:9 | entry | semmle.label | entry |
| tarslip.py:96:17:96:21 | entry | semmle.label | entry |
| tarslip.py:109:1:109:3 | tar | semmle.label | tar |
| tarslip.py:109:7:109:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:110:1:110:3 | tar | semmle.label | tar |
| tarslip.py:112:1:112:3 | tar | semmle.label | tar |
| tarslip.py:112:7:112:39 | After Attribute() | semmle.label | After Attribute() |
| tarslip.py:113:24:113:26 | tar | semmle.label | tar |
subpaths
#select
| tarslip.py:15:1:15:3 | tar | tarslip.py:14:7:14:39 | After Attribute() | tarslip.py:15:1:15:3 | tar | This file extraction depends on a $@. | tarslip.py:14:7:14:39 | After Attribute() | potentially untrusted source |
| tarslip.py:20:17:20:21 | entry | tarslip.py:18:7:18:39 | After Attribute() | tarslip.py:20:17:20:21 | entry | This file extraction depends on a $@. | tarslip.py:18:7:18:39 | After Attribute() | potentially untrusted source |
| tarslip.py:39:17:39:21 | entry | tarslip.py:35:7:35:39 | After Attribute() | tarslip.py:39:17:39:21 | entry | This file extraction depends on a $@. | tarslip.py:35:7:35:39 | After Attribute() | potentially untrusted source |
| tarslip.py:43:24:43:26 | tar | tarslip.py:42:7:42:39 | After Attribute() | tarslip.py:43:24:43:26 | tar | This file extraction depends on a $@. | tarslip.py:42:7:42:39 | After Attribute() | potentially untrusted source |
| tarslip.py:61:21:61:25 | entry | tarslip.py:58:7:58:39 | After Attribute() | tarslip.py:61:21:61:25 | entry | This file extraction depends on a $@. | tarslip.py:58:7:58:39 | After Attribute() | potentially untrusted source |
| tarslip.py:91:1:91:3 | tar | tarslip.py:90:7:90:39 | After Attribute() | tarslip.py:91:1:91:3 | tar | This file extraction depends on a $@. | tarslip.py:90:7:90:39 | After Attribute() | potentially untrusted source |
| tarslip.py:96:17:96:21 | entry | tarslip.py:94:7:94:39 | After Attribute() | tarslip.py:96:17:96:21 | entry | This file extraction depends on a $@. | tarslip.py:94:7:94:39 | After Attribute() | potentially untrusted source |
| tarslip.py:110:1:110:3 | tar | tarslip.py:109:7:109:39 | After Attribute() | tarslip.py:110:1:110:3 | tar | This file extraction depends on a $@. | tarslip.py:109:7:109:39 | After Attribute() | potentially untrusted source |
| tarslip.py:113:24:113:26 | tar | tarslip.py:112:7:112:39 | After Attribute() | tarslip.py:113:24:113:26 | tar | This file extraction depends on a $@. | tarslip.py:112:7:112:39 | After Attribute() | potentially untrusted source |