Ruby on Rails Active Storage: kritická zraniteľnosť umožňuje čítanie obsahu súborov s potenciálom vzdialeného vykonania kódu

V komponente Active Storage nástroja Ruby on Rails bola opravená kritická zraniteľnosť CVE-2026-66066 (CVSS skóre 9,5), ktorá umožňuje neautentifikovanému útočníkovi čítať ľubovoľné súbory zo servera prostredníctvom špeciálne vytvoreného obrázka.

Získané citlivé údaje, napríklad kryptografické kľúče, prihlasovacie údaje k databázam alebo kľúče k aplikačnému programového rozhraniu (API), môžu následne umožniť kompromitáciu aplikácie alebo v určitých prípadoch viesť až k vzdialenému vykonaniu kódu (RCE).

Zraniteľné systémy:

  • Aplikácie Ruby on Rails využívajúce komponent Active Storage
  • Aplikácie používajúce knižnicu libvips na spracovanie obrázkov
  • Aplikácie umožňujúce nahrávanie obrázkov od nedôveryhodných alebo neautentifikovaných používateľov

Zraniteľné verzie komponentu Active Storage:

  • Active Storage verzie staršie ako 7.2.3.2
  • Active Storage 8.0.x staršie ako 8.0.5.1
  • Active Storage 8.1.x staršie ako 8.1.3.1

Opravené verzie komponentu Active Storage:

  • Active Storage 7.2.3.2
  • Active Storage 8.0.5.1
  • Active Storage 8.1.3.1

Opis činnosti:

Zraniteľnosť vzniká pri spracovaní používateľom nahraných obrázkov pomocou knižnice libvips, kde nedostatočné obmedzenie určitých operácií umožňuje útočníkovi manipulovať so spôsobom spracovania súborov.

Útočník môže bez potreby autentifikácie nahrať špeciálne upravený obrázok a následne prinútiť aplikáciu prečítať ľubovoľné súbory dostupné procesu Ruby on Rails. Týmto spôsobom môže dôjsť k úniku citlivých údajov uložených na serveri, vrátane kryptografických kľúčov (secret_key_base), databázových prihlasovacích údajov, kľúčov pre rozhrania API, prihlasovacích údajov k externým službám

Samotná zraniteľnosť umožňuje čítanie ľubovoľných súborov. V prípade získania citlivých tajných údajov však môže útočník následne kompromitovať aplikáciu, vytvárať platné relácie alebo v určitých prípadoch dosiahnuť vzdialené vykonanie kódu (RCE).

Možné škody:

  • Čítanie ľubovoľných súborov zo servera
  • Únik citlivých údajov (API kľúče, databázové heslá, kryptografické kľúče)
  • Potenciálne vzdialené vykonanie kódu (RCE)
  • Kompromitácia aplikácie a ďalších systémov využívajúcich uniknuté prihlasovacie údaje
  • Laterálny pohyb útočníka v infraštruktúre

Odporúčania:

  • Bezodkladne aktualizujte komponent Active Storage na opravenú verziu:
    • 7.2.3.2
    • 8.0.5.1
    • 8.1.3.1
  • Aktualizujte Ruby on Rails podľa odporúčania vývojárov tak, aby obsahoval opravenú verziu komponentu Active Storage.
  • Overte, či aplikácie využívajúce Active Storage umožňujú nahrávanie obrázkov od nedôveryhodných alebo neautentifikovaných používateľov.
  • V prípade podozrenia na zneužitie vykonajte rotáciu všetkých citlivých údajov dostupných procesu aplikácie (angl. secrets, API keys, tokens):
    • secret_key_base
    • API kľúče
    • databázové heslá
    • cloudové prihlasovacie údaje
  • Skontrolujte aplikačné logy so zameraním na:
    • podozrivé nahrávanie obrázkov,
    • neštandardné operácie nad uloženými súbormi,
    • neobvyklú aktivitu používateľov aplikácie.
  • Ak je to možné, obmedzte možnosť nahrávania súborov iba na dôveryhodných používateľov.

Odkazy: