Π JavaScript-Π΄Π²ΠΈΠΆΠΊΠ΅ LibJS, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π² web-Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Ladybird, Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2025-47154), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ JavaScript-ΠΊΠΎΠ΄Π°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Π²Π΅ΠΊΡΠΎΡ m_argument_values_buffer, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΡΡΡΡΠΊΡΡΡΠ΅ arguments_list, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΡΠΏΠ΅Π½ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΡΠΈΠΏ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ°.
ΠΡΡΠ²ΠΈΠ²ΡΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²ΡΠ» fuzzing-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ LibJS, Π² Ρ ΠΎΠ΄Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ 10 Π°Π²Π°ΡΠΈΠΉΠ½ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΉ. Π Π°Π·Π±ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ±ΠΎΠ΅Π² ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ JavaScript-ΠΊΠΎΠ΄Π°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π±ΡΠ»ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΌΠ΅Π½Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ROP β Return-Oriented Programming, ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΊΡΡΠΊΠΎΠ² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΡ ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ) Π±ΡΠ»Π° ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π° ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° execve Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ°ΡΠ·Π΅Ρ Ladybird ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΠ½Π΄ΡΠ΅Π°ΡΠΎΠΌ ΠΠ»ΠΈΠ½Π³ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nokia ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ KHTML, Π° Π·Π°ΡΠ΅ΠΌ Π² Apple Π±ΡΠ» ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Safari. ΠΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Ladybird Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΡΠ΅-Π°Π»ΡΡΠ° Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ SerenityOS, Π½ΠΎ Π»Π΅ΡΠΎΠΌ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π±ΡΠ» Π²ΡΠ΄Π΅Π»Π΅Π½ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 1 ΠΌΠ»Π½. Π΄ΠΎΠ»Π»Π°ΡΠΎΠ². ΠΡΠ°ΡΠ·Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++ (ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ·ΡΠΊ Swift) ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ LibWeb, JavaScript-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ LibJS ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
