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