Tohle je chyba s eskalací práv. Na tento útok stačí mít na PC normální účet. Díky této chybě mu pak můžete zvednout oprávnění a udělat z něj admina. Takže ten problém trápí v zásadě jen adminy, kteří nechtějí, aby si normální uživatelé sami přidělili práva lokálního administrátora. Což je v korporátním prostředí většina administrátorů.
Ne, to je chyba, že když do složky, ze které se to spouští, podstrčíš vlastní knihovnu, tak při načítání knihoven, na kterých to závisí, se načte ta tvoje. Nezískáš tím žádná práva, která bys nemohl získat "normálně" a MS to neopravuje jen proto, že to v tomhle případě za to nestojí.
To co popisujete (podsunutí vlastní dll knihovny) je "standardní chování" a MS s tím opravdu moc dělat nehodlá/nemůže. Chyba ve Skype je o tom, že updater si pro svou funkci obstará vyšší práva a ochotně pak zavolá .dll. Pokud se tohle sejde - updater zavolá podvrhnutou .dll ve chvíli, kdy má proces práva administrátora, tak pak je problém.
Řešení je stejné: část procesu, co běží v privilegovaném módu, nemá co načítat uživatelské programy nebo dynamické knihovny. Privilegovaný kód musí být vždy ve statické knihovně a mimo dosah uživatele.
V Linuxu taky nedáte setuid bit na něco, co má vlastníka root a v rámci vlastního procesu spustí kód dodaný uživatelem. I když je fakt, že už jsem zažil člověka, co zkoušel dát setuid na bash.
Chyba ve Skypu je opravena - detaily zde: https://www.theregister.co.uk/2018/02/15/microsoft_skype_fixed/