ОбновлСниС X.Org Server 21.1.12 с устранСниСм 4 уязвимостСй

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ выпуски 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