Π‘ΡΠΎΡΠΌΠΈΡΠ°Π½ΠΈ ΡΠ° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡ Π΅Π·ΠΈΠΊ Ruby , ΠΈ , Π² ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΡΡΡΡΠ°Π½Π΅Π½ΠΈ ΡΠ΅ΡΠΈΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΉ-ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2019-16255) Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (lib/shell.rb), ΠΊΠΎΡΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄. ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π² ΠΏΡΡΠ²ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Shell#[] ΠΈΠ»ΠΈ Shell#test, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ», Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ruby-ΠΌΠ΅ΡΠΎΠ΄.
ΠΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- β ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ http-ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΊΡΠΌ Π°ΡΠ°ΠΊΠ° Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° HTTP ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ (Π°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π²ΠΌΡΠΊΠ²Π° Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² HTTP Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ°, ΡΠΎ ΡΡΠ΅Π· Π²ΠΌΡΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» Π·Π° Π½ΠΎΠ² ΡΠ΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ);
- ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° Π½ΡΠ»Π΅Π² ΡΠΈΠΌΠ²ΠΎΠ» (\0) Π² ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Π½ΠΈΡΠ΅ ΡΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Β«File.fnmatchΒ» ΠΈ Β«File.fnmatch?Β» ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΡΡΠΈΡΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠ°Π»ΡΠΈΠ²ΠΎ ΡΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ°;
- β ΠΎΡΠΊΠ°Π· Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π² ΠΌΠΎΠ΄ΡΠ»Π° Diges-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π° WEBrick.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
