Design flaws in issetugid() (2017)
Summary
The article discusses tainted inputs in set-UID programs and how various BSDs and Linux handle the issetugid concept. It explains that OpenBSD introduced issetugid to allow libraries to detect privilege at exec time, while other BSDs altered semantics. It covers secure getenv and getauxval approaches, the complexity of implementing a portable secure getenv and the many platform differences. It ends with suggestions for new system calls and a call to standardize auxv information across platforms.