Qualys ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2021-4034) Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Polkit (Π±ΠΈΠ²Ρ PolicyKit), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΏΡΠ°Π²Π° Π·Π° Π΄ΠΎΡΡΡΠΏ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΄Π° Π΅ΡΠΊΠ°Π»ΠΈΡΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄ΠΎ root ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π±Π΅ΡΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ PwnKit ΠΈ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΡΠ°Π±ΠΎΡΠ΅Ρ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΏΡΠΈΡΡΡΡΠ²Π° Π² ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° pkexec Π½Π° PolKit, ΠΊΠΎΡΡΠΎ ΠΈΠ΄Π²Π° Ρ SUID root ΡΠ»Π°Π³ ΠΈ Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΠΏΠΎΡΠ΅Π΄ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π° PolKit. ΠΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° pkexec, Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΡΠ²ΠΎΡ ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ root, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π΄ΠΎΡΡΡΠΏ. ΠΠ° Π°ΡΠ°ΠΊΠ° Π½ΡΠΌΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² PolKit, Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΅ Π°ΡΡΠΈΠ±ΡΡΡΡ SUID root Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° pkexec.
Pkexec Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡΠ° Π½Π° Π±ΡΠΎΡ Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ (argc), ΠΏΠΎΠ΄Π°Π΄Π΅Π½ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅Ρ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° pkexec ΠΏΡΠΈΠ΅ΠΌΠ°Ρ, ΡΠ΅ ΠΏΡΡΠ²ΠΈΡΡ Π·Π°ΠΏΠΈΡ Π² ΠΌΠ°ΡΠΈΠ²Π° argv Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° (pkexec), Π° Π²ΡΠΎΡΠΈΡΡ ΠΈΠ»ΠΈ NULL ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π° ΡΡΠ΅Π· pkexec. Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π±ΡΠΎΡΡ Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π΅ Π±Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ ΡΠΏΡΡΠΌΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ²Π° ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΠ΅, ΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΠΎΡ 1, Π°ΠΊΠΎ Π½Π° ΠΏΡΠΎΡΠ΅Ρ Π΅ ΠΏΠΎΠ΄Π°Π΄Π΅Π½ ΠΏΡΠ°Π·Π΅Π½ argv ΠΌΠ°ΡΠΈΠ², ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° execve Π½Π° Linux, pkexec ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ° NULL ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ( ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°) ΠΈ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΊΠ°ΡΠΎ ΠΈΠ·Π²ΡΠ½ Π±ΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ²Π°. |βββ+βββ+ββ+ββββ|βββ+βββ+ββ+ββββ| | argv[0] | argv[1] | ... | argv[argc] | envp[0] | envp[1] | ... | envp[envc] | |β-|β-+β-|β-+ββ+ββ|ββ|β-|β-+β-|β-+ββ+ββ|ββ| VVVVVV "ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°" "-ΠΎΠΏΡΠΈΡ" NULL "ΡΡΠΎΠΉΠ½ΠΎΡΡ" "PATH=ΠΈΠΌΠ΅" NULL
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΠ»Π΅Π΄ ΠΌΠ°ΡΠΈΠ²Π° argv ΠΈΠΌΠ° envp ΠΌΠ°ΡΠΈΠ² Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π°ΠΊΠΎ ΠΌΠ°ΡΠΈΠ²ΡΡ argv Π΅ ΠΏΡΠ°Π·Π΅Π½, pkexec ΠΈΠ·Π²Π»ΠΈΡΠ° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Ρ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΠΌΠ°ΡΠΈΠ²Π° Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° (argv[1] ΡΡΠ°Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Ρ envp[0]), ΡΠΈΠ΅ΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΠΎΡ Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»Ρ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° argv[1], pkexec ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°, ΠΊΠ°ΡΠΎ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΡΠΈΡΠ° Π² PATH, Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΡ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π» ΠΊΡΠΌ Π½ΠΈΠ·Π° Ρ ΠΏΡΠ»Π½ΠΈΡ ΠΏΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ argv[1], ΠΊΠΎΠΉΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ argv[ 1] Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Π½Π° envp [0]. Π§ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΏΡΡΠ²Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π² pkexec, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° βLD_PRELOADβ, ΠΊΠΎΡΡΠΎ Π½Π΅ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π° Π² suid ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅, ΠΈ Π΄Π° ΡΡΠ΅Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½Π° Π² ΠΏΡΠΎΡΠ΅Ρ.
Π Π°Π±ΠΎΡΠ½ΠΈΡΡ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ Π²ΠΊΠ»ΡΡΠ²Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° GCONV_PATH, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΡΡ Π΄ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅Π΄Π΅Π½Π° ΠΏΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° g_printerr(), ΡΠΈΠΉΡΠΎ ΠΊΠΎΠ΄ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° iconv_open(). Π§ΡΠ΅Π· ΠΏΡΠ΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΡΡ Π² GCONV_PATH, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π½Π΅ Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° iconv, Π° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠ° Π½Π° Π΅ΡΠ°ΠΏΠ°, ΠΊΠΎΠ³Π°ΡΠΎ pkexec Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° root ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ.
ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½ ΠΎΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈΡΡ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½ Π½Π° Ubuntu, Debian, Fedora ΠΈ CentOS, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ. ΠΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΡ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½ ΠΈ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Polkit ΡΡΡΠΎ Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π° BSD ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Solaris, Π½ΠΎ Π½Π΅ Π΅ ΠΏΡΠΎΡΡΠ²Π°Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π²ΡΡΡ Ρ ΡΡΡ . Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π·Π½Π°Π΅, Π΅, ΡΠ΅ Π°ΡΠ°ΠΊΠ°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Π²ΡΡΡ Ρ OpenBSD, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΄ΡΠΎΡΠΎ Π½Π° OpenBSD Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠ»Π΅Π²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° argc, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° execve().
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΡ ΠΌΠ°ΠΉ 2009 Π³., ΡΠ»Π΅Π΄ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° pkexec. ΠΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π½Π° PolKit Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΊΠ°ΡΠΎ ΠΊΡΡΠΏΠΊΠ° (Π½Π΅ Π΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ), Π½ΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π±ΡΡ Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ΅Π½ΠΈ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ Π² RHEL 6/7/8, Debian, Ubuntu, openSUSE, SUSE, Fedora, ALT Linux, ROSA, Gentoo, Void Linux, Arch Linux ΠΈ Manjaro. ΠΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΌΡΡΠΊΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΡΠ΅ SUID root ΡΠ»Π°Π³Π° ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° /usr/bin/pkexec (βchmod 0755 /usr/bin/pkexecβ).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru