The GNU Privacy Guard, GnuPG, is a free replacement for the PGP suite of cryptographic software.
Hugh Warrington has reported a boundary error in GnuPG, in the "ask_outfile_name()" function from openfile.c: the make_printable_string() function could return a string longer than expected. Additionally, Tavis Ormandy of the Gentoo Security Team reported a design error in which a function pointer can be incorrectly dereferenced.
A remote attacker could entice a user to interactively use GnuPG on a crafted file and trigger the boundary error, which will result in a buffer overflow. They could also entice a user to process a signed or encrypted file with gpg or gpgv, possibly called through another application like a mail client, to trigger the dereference error. Both of these vulnerabilities would result in the execution of arbitrary code with the permissions of the user running GnuPG. gpg-agent, gpgsm and other tools are not affected.
There is no known workaround at this time.
All GnuPG users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose "=app-crypt/gnupg-1.4*"