Уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… X.Org, Π΄Π²Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ с 1988 Π³ΠΎΠ΄Π°

ΠžΠ±Π½Π°Ρ€ΠΎΠ΄ΠΎΠ²Π°Π½Π° информация ΠΎ пяти уязвимостях Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… libX11 ΠΈ libXpm, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ X.Org. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ устранСны Π² выпусках libXpm 3.5.17 ΠΈ libX11 1.8.7. Π’Ρ€ΠΈ уязвимости выявлСны Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libx11, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с клиСнтской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° X11:

  • CVE-2023-43785 — Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π° Π² ΠΊΠΎΠ΄Π΅ libX11, ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ X-сСрвСра с числом символов, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΌΡƒ запросу XkbGetMap. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° ошибкой Π² X11R6.1, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ с 1996 Π³ΠΎΠ΄Π°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эксплуатирована ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ libx11, ΠΊ врСдоносному X-сСрвСру ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ прокси, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ.
  • CVE-2023-43786 — исчСрпаниС стСка Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ бСсконСчной рСкурсии Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PutSubImage() Π² libX11, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XPM. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ сущСствуСт с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° X11R2 Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 1988 Π³ΠΎΠ΄Π°.
  • CVE-2023-43787 — цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ XCreateImage() Π² libX11, приводящСС ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΡƒΡ‡ΠΈ ΠΈΠ·-Π·Π° ошибки Π² вычислСнии Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ фактичСскому Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Π°Ρ функция XCreateImage() вызываСтся ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ XpmReadFileToPixmap(), Ρ‡Ρ‚ΠΎ позволяСт ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XPM. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ сущСствуСт со Π²Ρ€Π΅ΠΌΡ‘Π½ X11R2 (1988 Π³ΠΎΠ΄).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, раскрыты Π΄Π²Π΅ уязвимости Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libXpm (CVE-2023-43788 ΠΈ CVE-2023-43789), Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ чтСния ΠΈΠ· областСй Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ коммСнтария ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° Π² памяти ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ XPM-Ρ„Π°ΠΉΠ»Π° с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ². ОбС уязвимости Π΄Π°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ 1998 Π³ΠΎΠ΄ΠΎΠΌ ΠΈ Π±Ρ‹Π»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ инструмСнтов для выявлСния ошибок Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ fuzzing-тСстирования AddressSanitizer ΠΈ libFuzzer.

X.org ΠΈΠΌΠ΅Π΅Ρ‚ историчСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π½Π° 30-ΠΉ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Chaos Communication Congress (CCC) Π² Π΄ΠΎΠΊΠ»Π°Π΄Π΅ исслСдоватСля бСзопасности Ильи Π²Π°Π½ ШпрундСля (Ilja van Sprundel) ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»Π° посвящСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π² сСрвСрС X.Org, Π° другая ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° бСзопасности клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ X11. Π’ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ Ильи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² 2013 Π³ΠΎΠ΄Ρƒ выявил 30 уязвимостСй, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ X11, Π° Ρ‚Π°ΠΊΠΆΠ΅ DRI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Mesa, присутствовали Ρ‚Π°ΠΊΠΈΠ΅ ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ высказывания, ΠΊΠ°ΠΊ «GLX — это уТасный Π΄Π΅ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ‚ΠΎΡ€! 80 000 строк сплошного уТаса!» ΠΈ «Π—Π° послСдниС ΠΏΠ°Ρ€Ρƒ мСсяцСв я Π½Π°ΡˆΡ‘Π» Π² Π½Π΅ΠΌ 120 ошибок, ΠΈ я Π΅Ρ‰Ρ‘ Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru