A Ruby 4.0.9, 3.4.12 és 3.3.13 kiadásokban három hibát javítottak az Onigmo reguláris kifejezés motorban. Ezek a hibák négy kritikus biztonsági sebezhetőség mögött álltak, amelyeket a GitLab az elmúlt hónapban javított. A GitLab azt találta, hogy egy speciálisan összeállított minta memóriakorrupciót okozhat, miközben a Ruby lefordítja, és ez akár kódfuttatáshoz is vezethet a saját szerverein. A Ruby szerint minden olyan alkalmazás érintett, amely támadó által vezérelt szövegből épít reguláris kifejezést, nem csak a GitLab.
Mely alkalmazások érintettek
A biztonsági közlemény szerint egy alkalmazás csak akkor érintett, ha olyan sztringből fordít reguláris kifejezést, amelyet a támadó irányít. Ez akkor történik, ha a program ilyen sztringet ad át a Regexp.new, Regexp.union vagy Regexp.compile metódusnak, vagy interpolációval helyezi be a mintába, például így: /#{input}/.
Azok az alkalmazások, amelyek csak a saját fejlesztőik által írt reguláris kifejezéseket használják, nem érintettek.
A Ruby a hibákat a 4.0.9, 3.4.12 és 3.3.13 verziókban javította. A 3.4.12 és 3.3.13 az első olyan kiadások a saját sorozatukban, amelyek tartalmazzák bármelyik javítást.
Az ugyanabban a héten megjelent korábbi 4.0.8 kiadás nem tartalmazza az egyik hiba, a CVE-2026-110264 javítását, ezért a 4.0-s felhasználóknak 4.0.9-re kell frissíteniük.
A Ruby 3.2 és a korábbi verziók már nem kapnak javítást. A Ruby 3.2 elérte az életciklusa végét 2026. április 1-jén, a 3.2.11 volt az utolsó kiadása. A Ruby azt javasolja, hogy térjünk át 3.4-re vagy 4.0-ra.
Ha egyelőre nem tudsz verziófrissítést végezni, a közlemény szerint le kell állni a reguláris kifejezések fordításával nem megbízható bemenetből.
Két olyan védekezés, amely elsőre hatékonynak tűnhet, valójában nem segít. A Regexp.timeout beállítása nem akadályozza meg ezeket a hibákat. A minta hosszának korlátozása sem megbízható, mert rövid minták is kiválthatják a hibákat.
Hogyan jutottak el a hibák a GitLabig
A GitLab a felhasználói által megadott reguláris kifejezéseket fordítja, például a CI/CD konfigurációban szereplő mintákat. A cég azt találta, hogy speciálisan összeállított minták memóriakorrupciót okozhatnak a Ruby fordítási fázisában, ezért szeptember 23. és október 21. között négy CVE-t adott ki, mindegyiket egy javított Ruby verzió kiadásával orvosolva.
Az első kettőt szeptember 23-án hozták nyilvánosságra, mindkettő bejelentkezett fiókot igényel, és 9,9-es értékelést kapott a 10-es skálán. Az októberi kettő, köztük a CVE-2026-97229 12-én és a CVE-2026-110264 21-én, nem igényel fiókot, és 10,0-s, maximális értékelést kaptak. A CVE-2026-110264 a GitLab minden 7.0-s és újabb verzióját érinti.
A joaxcar néven ismert kutató mind a négy hibát a GitLab bug bounty programján keresztül jelentette. Október 23-ig egyik sebezhetőség sem szerepelt a CISA ismert, aktívan kihasznált sebezhetőségeket listázó katalógusában.
Egyelőre nincs Ruby CVE
A Ruby egyelőre nem kért saját CVE-azonosítókat ezekhez a javításokhoz, és azt javasolta a felhasználóknak, hogy inkább a GitLab négy CVE-számán keresztül kövessék a problémákat.
Ez rést hagy azoknak, akik CVE alapján szkennelnek. A GitLab CVE-rekordjai csak a GitLabot nevezik meg érintett termékként, így egy olyan szkenner, amely ezeket a rekordokat hasonlítja össze a telepített Ruby verziókkal, nem talál egyezést.
A Ruby korábban már kezelt ilyen hibát sebezhetőségként, és CVE-számokat rendelt a 2022-es és a 2024-es javításokhoz, noha régóta köztudott, hogy nem biztonságos megbízhatatlan bemenetből reguláris kifejezést építeni.
A dokumentáció továbbra is csak szolgáltatásmegtagadási kockázatként írja le a nem megbízható mintákat. A Ruby azt ígérte, frissíti a biztonsági közleményét, és mégis kér CVE-azonosítókat.
Teendők GitLab adminisztrátoroknak
A saját üzemeltetésű GitLab példányoknak telepíteniük kell azt a kiadást, amely javítja a CVE-2026-110264 sebezhetőséget. A GitLab ezt a verziót október 21-én adta ki, és egészen a 18.11.13-as verzióig visszaportolta.
- 19.5.1
- 19.4.3
- 19.3.6
- 19.2.9
- 19.1.9
- 19.0.10
- 18.11.13
A GitLab.com már a javított verziót futtatja, és a friss belső release-eket használó GitLab Dedicated bérlőknek sincs teendőjük – közölte a cég. Mivel a GitLab saját, beágyazott Ruby példányt használ, és abban is elvégezte a javítást, a fenti verziók valamelyikének telepítése automatikusan alkalmazza a javítást.
A GitLab felderítési szabályokat is közzétett, amelyeket a saját üzemeltetésű rendszerek adminisztrátorai használhatnak a kihasználási kísérletek jeleinek keresésére.

