getmembers

python · standard library
sourceDerived from model facts
RoleSource
WeaknessCWE-22
WatchesReturnValue
Kindarchive-entry
Confidencemedium
Corroboration2

Source boundary: An archive entry is modeled because its name or contents can cross a filesystem boundary.

Argument map · what each slot does

The pack does not provide a callable signature for this record; the watched access path is shown directly.

No positional argument is specified; inspect the return value or named access path in the model facts below.
The weakness
CWE-22
Path Traversal

External input constructs a pathname that can escape its intended directory.

What goes wrong
Attacker's-eye view · archive-entry

A crafted archive member uses traversal or link behavior to write outside the intended extraction directory.

// modeled boundary: ReturnValue getmembers(attacker_influenced_value);
To decide if this call is a bug, check
1Normalize and validate the entry path.
2Reject traversal and unexpected links.
3Extract with least privilege into an isolated directory.
These checks require the surrounding codebase. The model names the boundary; it does not decide reachability or prove that a guard dominates every path.
Is this a bug in your code?Atropos stops here — by design

Atropos identifies ReturnValue as a archive-entry source. It cannot see whether untrusted data reaches this call in your repository.

Lachesis is the codebase-level step: it traces reachability and guards for this symbol.

Check this symbol in Lachesis
The family · archive-entry

Same behavior

namelistpython

What neutralizes it

No sanitizer of this kind is modeled.

Model facts · verbatim from the pack
RoleKindAccess pathModel IDConfidence
sourcearchive-entryReturnValuepython.archive.getmembers.retmedium · corrob. 2