ΠΡΡΠ½Π°ΡΠΈ ΡΠ° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΎΠ½Π½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° 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
