@@ -17,6 +17,36 @@ Release 4.0.37
17
17
using this command guarantees that clients see no errors.
18
18
* Fixed a crash occurs when an application fails to spawn, but the HTTP
19
19
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.
20
50
21
51
22
52
Release 4.0.36
0 commit comments