všechny patche se dají shrnout do tří ukázek, něco mi řiká, že těhle pastí tam bude v celém kódu schovaných více. Nejzajímavější je poslední, validace username je nekonzistentní se zbytkem systému.
- if (geteuid() == getuid()) {
+ if (issetugid() == 0 && geteuid() == getuid()) {
- auth_call(as, path, style, "-s", "response", greet->name,
+ auth_call(as, path, style, "-s", "response", "--", greet->name,
+ /* User name must be specified and may not start with a '-'. */
+ if (name == NULL || *name == '\0' || *name == '-') {
+ syslog(LOG_ERR, "invalid user name %s", name ? name : "(NULL)");
+ return 0;
+ }
5. 12. 2019, 17:20 editováno autorem komentáře