ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ GitLab — 17.3.3, 17.2.6 ΠΈ 17.1.8, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½Π° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π±Π°Π·Π΅ SAML (Security Assertion Markup Language). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ (CVE-2024-45409) Π² Ruby-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ruby-saml ΠΈ omniauth-saml, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ SAML-Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ 10 ΠΈΠ· 10. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ruby-saml (1.17.0 ΠΈ 1.12.3) ΠΈ omniauth-saml (2.2.0).
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° XPath, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XML ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ SAML-ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΅Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ SAML-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅Π»Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΡΠ²Π΅Ρ SAML Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ XSW (XML Signature Wrapping).
Π‘ΡΡΡ Π°ΡΠ°ΠΊΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²Π·ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ XML-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² Π½ΡΠΌ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΡΠΎ ΠΈ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (Π΄Π°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΡΡ ΠΊΠ°ΠΊ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ). Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
SAML Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄ Π»ΡΠ±ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru