The ctypes module for calling C libraries. LoadLibrary / CDLL on user-controlled paths loads arbitrary code — code-execution sink. String pointer operations can also be memory-safety findings.
.CDLL().WinDLL().LoadLibrary().CDLL()Sinkctypes.CDLL(name, mode=DEFAULT_MODE, handle=None, use_errno=False, use_last_error=False, winmode=None) -> CDLL
Loads a shared library. Code-execution sink on user-controlled name.
0.WinDLL()Sinkctypes.WinDLL(name, ...) -> WinDLL
Windows shared library loader. Code-execution sink.
0.LoadLibrary()Sinkctypes.cdll.LoadLibrary(name) -> CDLL
Loads a shared library. Code-execution sink on user-controlled name.
0| FQN | Field | |
|---|---|---|
| ctypes | fqns[0] |
Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.
from codepathfinder.go_rule import PyCtypes