Π ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Red Hat ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ tuned, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΄ΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2024-52336), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DBus-ΠΌΠ΅ΡΠΎΠ΄Π° «com.redhat.tuned.instance_create», ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ «script_pre» ΠΈ «script_post» Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Polkit ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»ΡΠ±ΠΎΠΌΡ Π²ΠΎΡΠ΅Π΄ΡΠ΅ΠΌΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ DBus-Π·Π°ΠΏΡΠΎΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ tuned Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ «script_pre» ΠΈ «script_post» ΡΠΊΡΠΈΠΏΡΡ ΡΠΎΠΆΠ΅ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° /path/to/myscript.sh Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: gdbus call -y -d com.redhat.tuned -o /Tuned \ -m com.redhat.tuned.control.instance_create cpu myinstance \ ‘{«script_pre»: «/path/to/myscript.sh», «devices»: «*»}’
Π DBus-ΠΌΠ΅ΡΠΎΠ΄Π΅ «com.redhat.tuned.instance_create» ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2024-52337), Π²ΡΠ·Π²Π°Π½Π½Π°Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠΈΡΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΡΠΈ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄Π΅ Π² Π»ΠΎΠ³. ΠΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ ΠΈ escape-ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π»ΠΎΠ³Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ «tuned-adm get_instances» Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. EVIL=`echo -e «this is\nevil\033[?1047h»` gdbus call -y -d com.redhat.tuned -o /Tuned -m com.redhat.tuned.control.instance_create cpu «$EVIL» ‘{«devices»: «*»}’
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ tuned 2.23, ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΡΠ½Ρ 2024 Π³ΠΎΠ΄Π°, ΠΈ ΡΡΡΡΠ°Π½Π΅Π½Ρ Π² Π²ΡΠΏΡΡΠΊΠ΅ tuned 2.24.1. ΠΠ· ΠΊΡΡΠΏΠ½ΡΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² RHEL 9, Fedora 40, Arch Linux ΠΈ Gentoo. Π ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
Π²Π΅ΡΠΊΠ°Ρ
Ubuntu, Debian ΠΈ SUSE/openSUSE ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π΅ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ
ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ tuned (<2.23), Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru