The shelve module persists arbitrary Python objects — backed by pickle under the hood. shelve.open() on untrusted files is a deserialization sink (RCE via pickle's __reduce__).
.open().open()Sinkshelve.open(filename, flag='c', protocol=None, writeback=False) -> Shelf
Opens a shelf (pickle-backed dict). Deserialization sink on untrusted files.
0| FQN | Field | |
|---|---|---|
| shelve | fqns[0] |
Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.
from codepathfinder.go_rule import PyShelve