CVE-2017-2619.html:

====================================================================
== Subject:     Symlink race allows access outside share definition.
==
== CVE ID#:     CVE-2017-2619
==
== Versions:    All versions of Samba prior to 4.6.1, 4.5.7, 4.4.12
==
== Summary:     A time-of-check, time-of-use race condition
==		can allow clients to access non-exported parts
==		of the file system via symlinks.
==
====================================================================

===========
Description
===========

All versions of Samba prior to 4.6.1, 4.5.7, 4.4.12 are vulnerable to
a malicious client using a symlink race to allow access to areas of
the server file system not exported under the share definition.

Samba uses the realpath() system call to ensure when a client requests
access to a pathname that it is under the exported share path on the
server file system.

Clients that have write access to the exported part of the file system
via SMB1 unix extensions or NFS to create symlinks can race the server
by renaming a realpath() checked path and then creating a symlink. If
the client wins the race it can cause the server to access the new
symlink target after the exported share path check has been done. This
new symlink target can point to anywhere on the server file system.

This is a difficult race to win, but theoretically possible. Note that
the proof of concept code supplied wins the race reliably only when
the server is slowed down using the strace utility running on the
server. Exploitation of this bug has not been seen in the wild.

==================
Patch Availability
==================

A patch addressing this defect has been posted to

  http://www.samba.org/samba/security/

Additionally, Samba 4.6.1, 4.5.7 and 4.4.12 have been issued as
security releases to correct the defect. Patches against older Samba
versions are available at http://samba.org/samba/patches/. Samba
vendors and administrators running affected versions are advised to
upgrade or apply the patch as soon as possible.

==========
Workaround
==========

Add the parameter:

unix extensions = no

to the [global] section of your smb.conf and restart smbd. This
prevents SMB1 clients from creating symlinks on the exported file
system using SMB1.

However, if the same region of the file system is also exported using
NFS, NFS clients can create symlinks that potentially can also hit the
race condition. For non-patched versions of Samba we recommend only
exporting areas of the file system by either SMB or NFS, not both.

=======
Credits
=======

This problem was found by Jann Horn of Google. Jeremy Allison, of
Google and the Samba Team, and Ralph Boehme of SerNet and the Samba
Team provided the fix. Code review was performed by Uri Simchoni of
CTERA Networks and the Samba Team.