~/talk

Anatomy of a Phishing Campaign

Talkat PyCon US 2026 · 2026-05-13..05-19· [security]
links:none on file
slides:none on file

July 2025 attackers stand up pypj.org transparent proxy that relays credentials and TOTP in real time, harvest emails from package metadata, and within hours compromise four compromised accounts and upload malicious releases to num2words 0.5.15/0.5.16 containing a Windows DLL scavenger loader that executes on import The proxy produces valid session cookies lasting ~8 hours Traditional TOTP is phishable while WebAuthn blocks proxy Response takes weeks to fully takedown and November defenses add email verification for new-device TOTP logins and note a September 2025 follow up against pypi-mirror.org

AI-written summary · about

  1. 0:00Introduction to PyPI security challenges
  2. 1:51Why attackers target package repositories
  3. 3:34How the phishing email was crafted
  4. 5:39The proxy attack mechanism explained
  5. 7:23Timeline of the incident response
  6. 9:52Challenges with vendor abuse reporting
  7. 10:53Malware payload in num2words package
  8. 13:43Why pinning versions matters
  9. 15:28Mandating 2FA for PyPI maintainers
  10. 17:11Why WebAuthn is better than TOTP
  11. 18:35Actions taken to mitigate the attack
  12. 20:46Second phishing campaign with PyPI mirror
  13. 21:30Practical steps to protect yourself
  14. 23:53The reality of phishing-resistant security
  15. 24:55Call to action for ecosystem support
  16. 25:16Q&A: Insights on the attackers
  17. 26:19Q&A: Trademark use against domain abuse
  18. 26:39Q&A: Package download impact analysis
  19. 27:20Q&A: Secure dependency management
  20. 28:46Q&A: Funding for PyPI security
  21. 29:50Q&A: Insights on attacker profiles
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.