On 9/15/22 15:40, Philip Prindeville wrote:
I was thinking of the case where the directory containing the keys (as 
configured) is correctly owned, but contains a symlink pointing outside of that 
directory somewhere else... say to a file owned by an ordinary user.

In that case, as has been pointed out, it might be sufficient to just pay 
attention to the owner/group/modes of the file and reject them if:

(1) the file isn't 600 or 400;
(2) the file isn't owned by root or the app-id that the app runs at.

Do we agree on that?

Yes, that sounds very good.

That's the potential problem with symlinks.  Rarely should they ever point to something that is under the control of an unprivileged user.  Exceptions might be in cases where you actually do want a configuration for that user to come from a directory that they control ... but that should only be done in situations where that input is considered untrusted and is stringently validated and sanitized before it is used.

If symlinks are used responsibly, they won't have security risks. In general, if the program checks the ownership and permissions of the actual file before using it, it shouldn't matter whether there is a symlink or not.

Thanks,
Shawn

Reply via email to