groffer, included in the Groff package, and the der_chop script, included in the OpenSSL package, are both vulnerable to symlink attacks, potentially allowing a local user to overwrite arbitrary files with the rights of the user running the utility.
|Package||dev-libs/openssl on all architectures|
|Affected versions||< 0.9.7d-r2|
|Unaffected versions||>= 0.9.7d-r2|
|Package||sys-apps/groff on all architectures|
|Affected versions||< 1.19.1-r2|
|Unaffected versions||>= 1.19.1-r2, revision >= 18.104.22.168|
OpenSSL is a toolkit implementing the Secure Sockets Layer and Transport Layer Security protocols as well as a general-purpose cryptography library. It includes the der_chop script, which is used to convert DER-encoded certificates to PEM format. Groff (GNU Troff) is a typesetting package which reads plain text mixed with formatting commands and produces formatted output. It includes groffer, a command used to display groff files and man pages on X and tty.
groffer and the der_chop script create temporary files in world-writeable directories with predictable names.
A local attacker could create symbolic links in the temporary files directory, pointing to a valid file somewhere on the filesystem. When groffer or der_chop is executed, this would result in the file being overwritten with the rights of the user running the utility, which could be the root user.
There is no known workaround at this time.
All Groff users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose sys-apps/groff
All OpenSSL users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=dev-libs/openssl-0.9.7d-r2"
Note: /etc/ssl/misc/der_chop is protected by Portage as a configuration file. Don't forget to use etc-update and overwrite the old version with the new one.