View Source Sobelow.Misc.FilePath (Sobelow v0.13.0)

Insecure use of File and Path

Note: This check has been deprecated. File/Path issues were addressed with the release of OTP 21.

In Elixir, File methods are null-terminated, while Path functions are not. This may cause security issues in certain situations. For example:

user_input = "/var/www/secret.txt\0/name"

path = Path.dirname(user_input)
public_file = path <> "/public.txt"

File.read(public_file)

Because Path functions are not null-terminated, this will attempt to read the file, "/var/www/secret.txt\0/public.txt". However, due to the null-byte termination of File functions "secret.txt" will ultimately be read.

File/Path checks can be ignored with the following command:

$ mix sobelow -i Misc.FilePath