Përditësimi i sigurisë për Ruby rregullon dobësitë që shkaktojnë RCE në GitLab
Përditësimi i sigurisë për Ruby, që mbulon versionet 4.0.9, 3.4.12 dhe 3.3.13, rregullon tre gabime që qëndrojnë pas katër dobësive kritike të GitLab për remote code execution (RCE). RCE do të thotë se një sulmues mund të jetë në gjendje të ekzekutojë komanda ose software në një server të prekur. Problemet bazë ndodhen në Onigmo, engine e regular expression të integruar në Ruby, dhe mund të prekin aplikacione të tjera përveç GitLab kur ato krijojnë modele kërkimi nga tekst i kontrolluar nga sulmuesi.
Një regular expression është një model që software përdor për të gjetur ose përputhur tekst. Sipas njoftimit të Ruby, një aplikacion ekspozohet vetëm kur kompilion një model të tillë nga një varg teksti i kontrolluar nga një sulmues. Kjo mund të ndodhë kur software ia kalon vargun Regexp.new, Regexp.union ose Regexp.compile. Mund të ndodhë edhe përmes interpolation, që fut drejtpërdrejt në një model një vlerë të dhënë, si te /#{input}/. Modelet regular expression të shkruara tërësisht nga vetë zhvilluesit e një aplikacioni nuk preken.
GitLab identifikoi se një model i përgatitur posaçërisht mund të shkaktonte memory corruption ndërsa Ruby e kompilonte atë. memory corruption ndodh kur software ndryshon ose përdor në mënyrë të pasaktë zonën ku programet në ekzekutim ruajnë të dhënat. Në këto raste, dëmtimi mund të çonte potencialisht në ekzekutim kodi në serverët e GitLab. Çështja është e rëndësishme për ofruesit e hosting dhe operatorët e faqeve të internetit, sepse çdo aplikacion Ruby që pranon modele regular expression të kontrolluara nga përdoruesit mund të ekspozojë të njëjtat gabime bazë të engine.
Përdoruesit e Ruby 4.0 duhet të përmirësojnë në 4.0.9, përdoruesit e Ruby 3.4 në 3.4.12 dhe përdoruesit e Ruby 3.3 në 3.3.13. Versionet 3.4.12 dhe 3.3.13 janë versionet e para në seritë e tyre përkatëse që përmbajnë ndonjërin nga tre rregullimet. Ruby 4.0.8, i publikuar më herët gjatë së njëjtës javë, nuk përmban korrigjimin për CVE-2026-110264, prandaj instalimi i 4.0.8 nuk është i mjaftueshëm.
Ruby 3.2 dhe degët më të vjetra nuk do t’i marrin rregullimet. Ruby 3.2 arriti fundin e ciklit të mbështetjes më 1 prill 2026, që do të thotë se nuk merr më përditësime të mbështetura, ndërsa 3.2.11 ishte versioni i tij përfundimtar. Ruby rekomandon kalimin e instalimeve të prekura në serinë 3.4 ose 4.0. Organizatat që nuk mund ta kryejnë menjëherë përmirësimin duhet të ndalojnë kompilimin e modeleve regular expression nga input i pabesuar derisa të mund të instalojnë një version të korrigjuar.
Dy masa të mundshme mbrojtëse nuk i zgjidhin këto dobësi. Ruby thotë se Regexp.timeout, një cilësim që synon të kufizojë kohën gjatë së cilës mund të vazhdojë përputhja e modeleve, nuk e parandalon memory corruption. Kufizimi i numrit të karaktereve në një model është gjithashtu i pasigurt, sepse edhe modelet e shkurtra mund t’i aktivizojnë gabimet. Ky dallim është i rëndësishëm për pronarët e aplikacioneve, të cilët më parë mund t’i kenë trajtuar modelet regular expression të pabesuara vetëm si shqetësim për performancën ose denial of service. denial of service do të thotë ta bësh një aplikacion të padisponueshëm ose tepër të ngadaltë për t’u përdorur.
GitLab pranon modele regular expression të ofruara nga përdoruesit në vende që përfshijnë konfigurimet e integrimit të vazhdueshëm dhe shpërndarjes së vazhdueshme (CI/CD), të cilat automatizojnë ndërtimin, testimin dhe publikimin e software. Kompania publikoi katër identifikues Common Vulnerabilities and Exposures (CVE) nga 23 shtatori deri më 21 tetor, duke nxjerrë për secilën çështje një build të Ruby me patch-et përkatëse. Dy dobësitë e para, të zbuluara më 23 shtator, kërkojnë një llogari të autentikuar dhe secila mori një vlerësim rëndësie prej 9.9 nga 10.
Dy dobësitë e tjera nuk kërkojnë llogari. CVE-2026-97229 u zbulua më 12 tetor, ndërsa CVE-2026-110264 pasoi më 21 tetor. Të dyjave iu caktua vlerësimi maksimal i rëndësisë prej 10.0. GitLab thotë se CVE-2026-110264 prek çdo version të produktit të tij duke filluar nga 7.0. Një studiues i pavarur i raportoi të katër dobësitë përmes programit bug bounty të GitLab.
Deri më 23 tetor, asnjëra nga katër dobësitë nuk shfaqej në katalogun Known Exploited Vulnerabilities të Agjencisë së SHBA-së për Sigurinë Kibernetike dhe Sigurinë e Infrastrukturës. Ruby nuk ka kërkuar identifikues të veçantë CVE për tre gabimet e Onigmo, të paktën deri tani, dhe i ka këshilluar përdoruesit të ndjekin në vend të tyre katër identifikuesit e GitLab. Ruby tha se do ta rishikonte njoftimin e vet nëse ky qëndrim ndryshon.
Mungesa e regjistrimeve CVE specifike për Ruby krijon një problem dukshmërie për skanimin e automatizuar. Regjistrimet e GitLab e identifikojnë GitLab si produktin e prekur, duke bërë që një scanner që i krahason këto regjistrime me versionet e instaluara të Ruby të mos gjejë një përputhje të drejtpërdrejtë. Ruby u caktoi identifikues CVE rregullimeve të ngjashme në vitet 2022 dhe 2024, megjithëse kompilimi i modeleve regular expression nga tekst i pabesuar është konsideruar prej kohësh i pasigurt. Dokumentacioni i tij aktualisht i përshkruan modelet e pabesuara vetëm si rrezik denial of service.
Administratorët e instalimeve të vetëmenaxhuara të GitLab duhet të aplikojnë një version që përmban rregullimin për CVE-2026-110264. GitLab e publikoi korrigjimin më 21 tetor në versionet 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 dhe 18.11.13. Meqë GitLab përfshin kopjen e vet të Ruby, përmirësimi i GitLab në njërin prej këtyre versioneve instalon gjithashtu runtime me patch. GitLab.com tashmë përdor versionin e korrigjuar dhe GitLab tha se tenant-ët Dedicated që përdorin versione të brendshme të fundit nuk kanë nevojë të ndërmarrin veprime.
GitLab ka publikuar gjithashtu rregulla zbulimi që administratorët e instalimeve të vetëmenaxhuara mund t’i përdorin për të kërkuar prova të përpjekjeve për shfrytëzim. Për organizatat që kërkojnë mbështetje të jashtme për mirëmbajtjen e software dhe sigurinë e infrastrukturës, AEU-I ofron shërbime IT, infrastrukture dhe konsulence me sigurinë si përparësi. Përparësia e menjëhershme mbetet kontrolli i versionit real të Ruby ose GitLab të vetëmenaxhuar që është në përdorim, në vend që të mbështeteni te timeout-et e modeleve, kufijtë e gjatësisë ose skanimet e dobësive që mund të mos i lidhin identifikuesit e GitLab me Ruby.