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