Уязвимост Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ruby-saml, Π²ΠΎΠ΄Π΅Ρ‰Π° Π΄ΠΎ заобикалянС Π½Π° автСнтикацията Π² GitLab

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ са ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‰ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° GitLab – 17.9.2, 17.8.5 ΠΈ 17.7.7, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π΅ отстранСна уязвимост (CVE-2025-25291, CVE-2025-25292), която позволява заобикалянС Π½Π° SAML (Security Assertion Markup Language) Π±Π°Π·ΠΈΡ€Π°Π½Π°Ρ‚Π° аутСнтификация. Уязвимостта ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² Ruby Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ruby-saml, която Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° SAML аутСнтификация. ОсвСн GitLab, уязвимостта засяга ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Ρ€Π΅ΡˆΠ΅Π½ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° ruby-saml 1.18.0 ΠΈ 1.12.4.

Уязвимостта Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π±ΠΎΡ€ Π½Π° XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ парсСритС ReXML ΠΈ Nokogiri, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° структура. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ REXML ΠΈ Nokogiri ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈΡ‚Π΅ подписи Π² XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° създаванС Π½Π° условия, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄Π½Π° подпис, Π° ΠΏΡ€ΠΈ атСстация Π½Π° потрСбитСля Π΄Ρ€ΡƒΠ³Π°. Π’Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ позволява Π½Π° атакуващия Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° XSW (XML Signature Wrapping) ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° Π°Ρ‚Π°ΠΊΠ° Π·Π° Ρ„Π°Π»ΡˆΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° SAML ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, ΠΈΠΌΠ°ΠΉΠΊΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всСки подписан SAML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ установСн Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π° ΠΎΡ‚ компанията GitHub, която Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° GitHub към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΈ с Ρ†Π΅Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° сигурността ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° конкурс (Bug bounty) Π·Π° Ρ…Π°ΠΊΠ²Π°Π½Π΅ Π½Π° тСстова срСда, Π² която Π·Π° SAML аутСнтификация Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ruby-saml. Π•Π΄ΠΈΠ½ ΠΎΡ‚ изслСдоватСлитС ΠΏΠΎ сигурността Π΅ ΠΎΠ±ΡŠΡ€Π½Π°Π» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° уязвимост. Π’ процСса Π½Π° разслСдванСто слуТитСл Π½Π° GitHub Π΅ установил ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° Π°Ρ‚Π°ΠΊΠ°, основан Π½Π° ΡΡŠΡ‰ΠΈΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ.

Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ° Π±Π΅ ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½Π° Π·Π° GitLab. Π’ контСкста Π½Π° GitLab уязвимостта позволява Π½Π° атакуващия, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ подписан SAML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ аутСнтификация ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», Ρ‚.Π΅. Π·Π° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ аутСнтификацията ΠΈ Π΄Π° Π²Π»Π΅Π·Π΅ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», атакуващият Π²Π΅Ρ‡Π΅ трябва Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΈ записи.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster