@@ -17,6 +17,36 @@ Release 4.0.37
1717 using this command guarantees that clients see no errors.
1818 * Fixed a crash occurs when an application fails to spawn, but the HTTP
1919 client disconnects before the error page is generated. Fixes issue #1028.
20+ * Fixed a symlink-related security vulnerability.
21+
22+ Urgency: low
23+ Scope: local exploit
24+ Summary: writing files to arbitrary directory by hijacking temp directories
25+ Affected versions: 4.0.5 and later
26+ Fixed versions: 4.0.37
27+
28+ Description:
29+ Phusion Passenger creates a "server instance directory" in /tmp during startup,
30+ which is a temporary directory that Phusion Passenger uses to store working files.
31+ This directory is deleted after Phusion Passenger exits. For various technical
32+ reasons, this directory must have a semi-predictable filename. If a local attacker
33+ can predict this filename, and precreates a symlink with the same filename that
34+ points to an arbitrary directory with mode 755, owner root and group root, then
35+ the attacker will succeed in making Phusion Passenger write files and create
36+ subdirectories inside that target directory. The following files/subdirectories
37+ are created:
38+
39+ * control_process.pid
40+ * generation-X, where X is a number.
41+
42+ If you happen to have a file inside the target directory called `control_process.pid`,
43+ then that file's contents are overwritten.
44+
45+ These files and directories are deleted during Phusion Passenger exit. The target
46+ directory itself is not deleted, nor are any other contents inside the target
47+ directory, although the symlink is.
48+
49+ Thanks go to Jakub Wilk for discovering this issue.
2050
2151
2252Release 4.0.36
0 commit comments