Skip to content
LowVulnerability

GHSA-83pf-v6qq-pwmr: Fickling has a detection bypass via stdlib network-protocol constructors

Published
Record updated
View JSON
Affected
  • fickling <= 0.1.7
Fixed in
No fixed version was stated when the source was last read.

Summary

Fickling's check_safety() API and --check-safety CLI flag rate as LIKELY_SAFE pickle files that open outbound TCP connections at deserialization time through stdlib constructors such as smtplib.SMTP, imaplib.IMAP4, ftplib.FTP, poplib.POP3, telnetlib.Telnet and nntplib.NNTP. The bypass has two root causes: these modules were missing from the UNSAFE_IMPORTS and UnsafeImportsML.UNSAFE_MODULES blocklists, and an unpatched logic flaw in unused_assignments() at fickle.py:1183 causes variables used only in the final result assignment to be misclassified as unused, letting a BUILD opcode hide the dangerous call from UnusedVariables.

Mitigation

Fixed in PR #233, which adds the six network-protocol modules to UNSAFE_IMPORTS. The unused_assignments() logic flaw at fickle.py:1183 is unpatched in the source; the source does not describe a fix for it.