GNU shtool, ocaml-mysql: Insecure temporary file creation — GLSA 200506-08

GNU shtool and ocaml-mysql are vulnerable to symlink attacks, potentially allowing a local user to overwrite arbitrary files.

Affected packages

dev-util/shtool on all architectures
Affected versions < 2.0.1-r2
Unaffected versions >= 2.0.1-r2
dev-ml/ocaml-mysql on all architectures
Affected versions < 1.0.3-r1
Unaffected versions >= 1.0.3-r1


GNU shtool is a compilation of small shell scripts into a single shell tool. The ocaml-mysql package includes the GNU shtool code.


Eric Romang has discovered that GNU shtool insecurely creates temporary files with predictable filenames (CAN-2005-1751). On closer inspection, Gentoo Security discovered that the shtool temporary file, once created, was being reused insecurely (CAN-2005-1759).


A local attacker could create symbolic links in the temporary files directory, pointing to a valid file somewhere on the filesystem. When a GNU shtool script is executed, this would result in the file being overwritten with the rights of the user running the script, which could be the root user.


There is no known workaround at this time.


All GNU shtool users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=dev-util/shtool-2.0.1-r2"

All ocaml-mysql users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=dev-ml/ocaml-mysql-1.0.3-r1"


Release date
June 11, 2005

Latest revision
June 11, 2005: 01



Bugzilla entries