|
Message-ID: <20240715234059.ThiJfcS3@steffen%sdaoden.eu> Date: Tue, 16 Jul 2024 01:40:59 +0200 From: Steffen Nurpmeso <steffen@...oden.eu> To: oss-security@...ts.openwall.com Subject: Re: ASLRn't is still alive and well on x86 kernels, despite CVE-2024-26621 patch Jacob Bachmeyer wrote in <66946BDB.4070709@...il.com>: |Steffen Nurpmeso wrote: |> [...] |> |> Some findings: |> . I note that the mentioned files are writable by only root (and |> i would assume MAP_DENYWRITE to only work if i could do so |> myself). |> | |I believe that most executables are writable only by root, but available |to unprivileged users. Since the purpose of MAP_DENYWRITE seems to have |been ensuring that executables cannot change out from underneath running |programs, it would need to work when unprivileged users map the file; |thus the DoS problem. I have to reread mandatory-locking.txt and locks.txt from Linux src. I just realized that lslocks(1) aka /proc/locks shows me locks held by PID 1130 which "i" cannot see due to $ findmnt /proc TARGET SOURCE FSTYPE OPTIONS /proc none proc rw,nosuid,nodev,noexec,relatime,gid=10,hidepid=invisible $ cat /proc/locks 1: FLOCK ADVISORY WRITE 1130 00:15:354719 0 EOF 2: FLOCK ADVISORY WRITE 1130 00:15:354609 0 EOF I have the gut feeling in the end there will be nothing in /proc nor /sys. |> . Capabilities have become more fine-grained. |> . I always whimper when i have to rm(1) a running executable before |> placing an updated variant on Linux, on BSDs i simply over-cp(1) |> (and i do not understand as long as one gets either the one or |> the other when executing the path). |> |Simple solution: | - write the new executable under a temporary name | - use link(2) to create a new name for the existing executable | - use rename(2) to atomically replace the existing executable | - use unlink(2) to remove the old version after any needed checks | |You can dispense with link(2) and unlink(2) if you do not want to |preserve a backup of the old executable. Using this method will change |the executable's inode number (meaning that it really is a different |file) and that means that the old version can remain on disk for as long |as it remains in use, even after its last name has been removed. Thank you. Whimpering is not that bad, The Cure boys were crying. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.