ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠΈ X.Org Server 21.1.12 ΠΈ DDX-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Device-Dependent X) xwayland 23.2.5, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊ X.Org Server Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ X11-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ Π½Π° Π±Π°Π·Π΅ Wayland. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ X.Org Server ΡΡΡΡΠ°Π½Π΅Π½Ρ 4 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. ΠΠ΄Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ X-ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π½ΡΠ° X11 ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ SSH.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ°Π½Π½ΡΠ΅ ΡΡΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ², ΡΠ΅ΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΡΠΈΡΡΠ΅ΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ². ΠΠ»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ «AllowByteSwappedClients» ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ «+byteswappedclients».
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ΡΡ Π½Π΅ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ². Π‘ΡΡΡ ΡΠ°ΠΊΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΡ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΏΠ°ΠΌΡΡΡ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠ΅ΠΌ Π²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π±ΡΡΠ΅Ρ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ X-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΡΠ½Π°ΡΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π±Π°ΠΉΡΠΎΠ² little-endian (ΠΎΡ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ ΠΊ ΡΡΠ°ΡΡΠ΅ΠΌΡ Π±Π°ΠΉΡΡ) ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½ΠΈΠΌ X-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ big-endian, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° s390x (IBM zSystems), ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅Π΄ΠΊΠΎΡΡΡΡ.
ΠΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- CVE-2024-31080, CVE-2024-31081, CVE-2024-31082 — ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ Π²Π½Π΅ Π±ΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ProcXIGetSelectedEvents, ProcXIPassiveGrabDevice ΠΈ ProcAppleDRICreatePixmap, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ»Π΅ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±Π΅Π· ΡΡΡΡΠ° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ² Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠ° xorg-server-1.7.0 (2009 Π³ΠΎΠ΄), Π° ΡΡΠ΅ΡΡΡ — Ρ xorg-server-1.15.0 (2012 Π³ΠΎΠ΄).
- CVE-2024-31083 — ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (User-after-free) Π² ΡΡΠ½ΠΊΡΠΈΠΈ ProcRenderAddGlyphs, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ AllocateGlyph() Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π³Π»ΠΈΡΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. Π€ΡΠ½ΠΊΡΠΈΡ AllocateGlyph() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Π³Π»ΠΈΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΡΡΡΡΠΈΠΊΠΎΠΌ ΡΡΡΠ»ΠΎΠΊ (refcount=0), Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π³Π»ΠΈΡΠ° Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΡΡΠΈΠΊΠ° ΡΡΡΠ»ΠΎΠΊ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ² glyph_new ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½ Π³Π»ΠΈΡ Π±Π΅Π· ΡΡΡΡΡΠΈΠΊΠ° ΡΡΡΠ»ΠΎΠΊ. ΠΡΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ProcRenderAddGlyphs() ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Π³Π»ΠΈΡΠ°, Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΎΡΡΠ°ΡΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π³Π»ΠΈΡ, ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½Π°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² X.Org Server ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ xwayland.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru