Passphrases may leak to temporary files

The function call-process-region writes data in region to a temporary file. If your PGP library used this function, your passphrases would leak to the filesystem.

EasyPG Library does not use call-process-region to communicate with a gpg subprocess.

Passphrases may be stolen from core files

If Emacs crashes and dumps core, Lisp strings in memory are also
dumped within the core file. read-passwd function clears passphrase
strings by (fillarray string 0) to avoid this risk. However, Emacs performs compaction
in gc_sweep phase. If GC happens before fillarray, passphrase
strings may be moved elsewhere in memory. Therefore, passphrase
caching in elisp is generally a bad idea.

EasyPG Library dares to disable passphrase caching. Fortunately,
there is more secure way to cache passphrases - use gpg-agent.