KindaRails2Shell: új kritikus Rails hiba

A Ruby on Rails egy kritikus sebezhetőség miatt sürgősségi frissítéseket adott ki július 29-én, mert a hiba lehetővé teheti, hogy egy nem hitelesített támadó fájlokat olvasson ki a szerverről. A sérülékenységet CVE-2026-66066 azonosítón tartják nyilván, és a KindaRails2Shell becenevet kapta. A hibát egymástól függetlenül jelentette az Ethiack két kutatócsapata, illetve a GMO Flatt Security egyik kutatója.

A hiba az Active Storage komponensben van, amely a Rails beépített fájlkezelő és csatolmánykezelő rétege. A támadási lánc akkor indulhat el, amikor egy rosszul kezelt vagy speciálisan előkészített fájl feldolgozásra kerül, majd a rendszer képvariánst generál belőle. Ebben a folyamatban a libvips képkezelő könyvtár egyes nem megfelelően védett formakezelői érhetők el, ami végül fájlrendszer olvasáshoz vezethet. Ez azért különösen kellemetlen, mert a támadó nem feltétlenül az alkalmazás üzleti logikáját támadja, hanem a fájlfeldolgozást használja belépési pontként. Ilyenkor a veszély nemcsak egyetlen fájlra korlátozódik, hanem a szerver által elérhető környezeti információkra is kiterjedhet.

A Rails biztonsági csapata szerint mindent kompromittáltnak kell tekinteni, amelyet az alkalmazás folyamata képes volt olvasni. Ide tartozik a secret_key_base, a master key, valamint a config/credentials.yml.enc tartalma. Emellett veszélybe kerülhetnek az S3 vagy GCS hozzáférési kulcsok, az adatbázis-hitelesítési adatok és a külső API tokenek is.

Érintett verziók

A hiba a stock konfigurációkban az alábbi Rails verziókat érinti: 7.0.0–7.2.3.1, 8.0.0–8.0.5, valamint 8.1.0–8.1.3. A Rails 6.x csak akkor érintett, ha az Active Storage egy testreszabott beállítással működik. Az ImageMagick-alapú feldolgozást használó alkalmazások nem érintettek.

A javított kiadások a 7.2.3.2, 8.0.5.1 és 8.1.3.1 verziók. A javítás feltétele a libvips 8.13 vagy újabb verziója, mert a régebbi kiadások nem tudják kikapcsolni a veszélyes műveleteket. Ha a környezet túl régi, az Active Storage nem is indul el, ami szándékos biztonsági viselkedés.

Az első és legfontosabb lépés a frissítés a javított Rails verziókra. Ha ez azonnal nem megoldható, ideiglenes védelemként beállítható a VIPS_BLOCK_UNTRUSTED környezeti változó, vagy a Vips.block_untrusted(true) hívás egy inicializálóban, ruby-vips 2.2.1+ esetén.

A második lépés a kulcsok és hitelesítési adatok rotálása. Ez nem csak a Rails kulcsokra vonatkozik, hanem minden olyan hitelesítő adatra is, amelyhez az alkalmazás hozzáférhetett. Ilyenkor érdemes az összes érintett integrációt végignézni, különösen a felhős tárolókat, adatbázisokat és külső szolgáltatói tokeneket.

A hiba azért veszélyes, mert nem igényel hitelesítést, és egy látszólag ártalmatlan fájlfeltöltési útvonalon keresztül is támadható. Ha egy támadó hozzáfér a konfigurációs adatokhoz, abból később akár további kompromittálás, jogosulatlan adatkinyerés vagy más rendszerekre történő átlépések is következhetnek. A forrás szerint a teljes támadási lánc részleteit a Rails augusztus 28-án teszi közzé, ami azt jelenti, hogy a publikálás után a támadók is gyorsabban dolgozhatnak.

(cyberkendra.com)