ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Google ΠΎΡΠΊΡΠΈΡ Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux (CVE-2025-38236), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° sandbox ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ, ΠΏΡΠΈΠ»Π°Π³Π°Π½ Π² Google Chrome, ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π½Π° Chrome (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° Π΄ΡΡΠ³Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² Chrome). ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 6.9 ΠΈ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ Π² Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 6.1.143, 6.6.96, 6.12.36 ΠΈ 6.15.5. ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠ° Π·Π° ΡΠ²Π°Π»ΡΠ½Π΅.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΡ Π³ΡΠ΅ΡΠΊΠ° Π² ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π°Π³Π° MSG_OOB, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ Π·Π° ΡΠΎΠΊΠ΅ΡΠΈ AF_UNIX. Π€Π»Π°Π³ΡΡ MSG_OOB ("out-of-band") ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΡΠ½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ Π±Π°ΠΉΡ ΠΊΡΠΌ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ·ΠΈ ΡΠ»Π°Π³ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 5.15 ΠΏΠΎ ΠΈΡΠΊΠ°Π½Π΅ Π½Π° Oracle ΠΈ ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΡΠ΅ Π΅ Π½Π°Π»ΠΎΠΆΠΈΠ» ΡΠΈΡΠΎΠΊΠΎ.
Π ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎΡΠΎ sandbox-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Chrome ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡ UNIX-ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ send()/recv(), ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΡΠ»Π°Π³ΡΡ MSG_OOB Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΈ Π½Π΅ Π΅ Π±ΠΈΠ» ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΎΡΡΠΈΠ»ΡΡΠΈΡΠ°Π½. ΠΡΠ΅ΡΠΊΠ°ΡΠ° Π² ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° MSG_OOB Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π»Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ»Π΅Π΄ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ (use-after-free) ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, 0); recv(socks[0], &dummy, 1, MSG_OOB);
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
