Bezpečnostné hrozby · 4. novembra 2026

Kritická chyba v Active Storage (Ruby on Rails): nahraný súbor môže čítať a zapisovať súbory servera

Tím Ruby on Rails 4. novembra 2026 opravil kritickú chybu CVE-2026-122006 v Active Storage. Ak aplikácia spracúva nahrané obrázky cez ImageMagick, útočník bez prihlásenia môže zapisovať súbory na server a pri ukladaní na lokálny disk aj čítať súbory s tajnými kľúčmi. Aktualizujte na 8.1.4.1 alebo 8.0.5.2.

Čo sa stalo

Ruby on Rails je populárny framework na tvorbu webových aplikácií v jazyku Ruby. Jeho súčasťou je Active Storage, modul, ktorý sa stará o nahrávanie súborov, napríklad profilových fotiek, dokumentov či príloh. Pri obrázkoch často využíva známy program ImageMagick, ktorý z obrázka zisťuje rozmery a ďalšie údaje.

Tím Rails 4. novembra 2026 zverejnil bezpečnostné upozornenie GHSA-f3w6-w445-fwh9 a opravené verzie 8.1.4.1 a 8.0.5.2. Chyba má označenie CVE-2026-122006 a v európskej databáze zraniteľností EUVD vedie pod číslom EUVD-2026-116914. Rails ju hodnotí ako kritickú: aplikácia môže útočníkovi bez prihlásenia dovoliť zapisovať ľubovoľné súbory na server a za istých podmienok aj čítať súbory, ku ktorým má aplikácia prístup.

Chybu zodpovedne nahlásil výskumník ryotak cez platformu HackerOne. Chyba zatiaľ nie je v katalógu CISA KEV a EUVD neuvádza, že by sa zneužívala. Rails píše, že mu nahlásili jeden konkrétny spôsob útoku, no nepredpokladá, že je jediný. Rovnaké vydania opravujú aj viacero ďalších chýb v iných častiach Rails.

Prečo je to nebezpečné

Ide o chybu typu „nebezpečné predvolené nastavenie“ (CWE-1188). Active Storage neobmedzovalo žiadne moduly ImageMagick. ImageMagick si podľa obsahu súboru sám vyberie, ako ho spracuje, a niektoré jeho moduly nepracujú len so samotným obrázkom, ale aj so súbormi, na ktoré sa obrázok odvoláva.

Predstavte si podateľňu, kde úradník otvorí každú doručenú obálku. Ak v nej nájde lístok „vyber zo skrine šanón X a urob s ním toto“, poslušne to urobí, lebo mu nikto nepovedal, že nesmie. Podobne sa ImageMagick môže nechať nahraným súborom naviesť na prácu so súbormi servera.

Podstatné je, že stačí súbor len pripojiť. Analýza obrázka sa podľa Rails spúšťa automaticky pri nahraní, aplikácia ho nemusí nijako ďalej upravovať. Útok ide cez internet, cez bežný formulár na nahranie súboru. Ak aplikácia dovoľuje nahrávať aj bez prihlásenia, útočník nepotrebuje žiadne konto.

Rails uvádza, že útočník môže zapisovať súbory na server. Ak aplikácia ukladá prílohy na lokálny disk (služba Disk), môže aj čítať súbory, ku ktorým má aplikácia prístup. Medzi nimi býva secret_key_base a prístupové údaje k databáze či externým službám. To podľa Rails môže viesť k spusteniu cudzieho kódu na serveri alebo k preniknutiu do ďalších systémov.

CVSS je stupnica závažnosti od 0 do 10. Skóre 9,8 (kritické) uvádza pri tomto CVE organizácia MITRE a rovnakú hodnotu má aj upozornenie Rails. Znamená útok cez sieť, nízku náročnosť, žiadne prihlásenie a žiadnu akciu používateľa. Katalóg CISA KEV je zoznam chýb, ktorých zneužívanie potvrdila americká agentúra CISA. Táto chyba v ňom zatiaľ nie je, to však neznamená, že sa zneužívať nezačne.

Koho sa to týka

Dotknutý je balíček (gem) activestorage, súčasť Ruby on Rails:

  • všetky verzie nižšie ako 8.0.5.2
  • verzie od 8.1 nižšie ako 8.1.4.1

Podľa Rails je aplikácia zraniteľná, len ak platia všetky tri podmienky naraz:

  • na spracovanie obrázkov v Active Storage používa ImageMagick, teda config.active_storage.variant_processor = :mini_magick. Je to predvolená hodnota pre aplikácie s load_defaults 6.1 alebo starším.
  • ImageMagick beží s bezpečnostnou politikou, ktorá dotknuté moduly ešte neblokuje. Politiky, ktoré dodávajú Debian a Ubuntu, ich neblokujú.
  • aplikácia dovoľuje nahrávať súbory nedôveryhodným používateľom.

Typicky ide o e-shopy, zákaznícke portály, interné systémy a SaaS služby postavené na Rails, ktoré bežia na linuxových serveroch alebo v kontajneroch. Ak vám aplikáciu dodáva externá firma, opýtajte sa jej priamo. Netýka sa to aplikácií bez Active Storage, aplikácií s iným procesorom obrázkov ako :mini_magick ani tých, kde súbory nahrávajú len dôveryhodní ľudia.

Ako zistiť, či ste zasiahnutí

Nasledujúce príkazy len čítajú informácie a nič nemenia. Spúšťajte ich v adresári aplikácie na serveri. Verzie activestorage a mini_magick:

grep -E "activestorage|mini_magick" Gemfile.lock

Aký procesor obrázkov aplikácia skutočne používa a aké má load_defaults:

bundle exec rails runner -e production "p Rails.application.config.active_storage.variant_processor"
grep -n "load_defaults" config/application.rb

Kam sa ukladajú prílohy (hľadajte service: Disk) a akú politiku ImageMagick uplatňuje:

grep -rn "active_storage.service" config/environments/
cat config/storage.yml
identify -version
identify -list policy

Ak je activestorage v dotknutej verzii, procesor je :mini_magick a aplikácia prijíma súbory od verejnosti, považujte ju za zraniteľnú. Ak produkcia používa službu Disk, týka sa vás aj výmena tajomstiev opísaná nižšie.

Ako to opraviť

Opravené verzie sú activestorage 8.1.4.1 a 8.0.5.2. Prinášajú bezpečnostnú politiku pre ImageMagick, ktorá blokuje nebezpečné moduly a platí pre každý príkaz ImageMagick spustený cez MiniMagick. Politika sa pridáva k politike servera, nenahrádza ju.

Odporúčaný postup:

  • Overte, či ste zasiahnutí, a aktualizáciu naplánujte čo najskôr.
  • Aktualizujte Rails na 8.1.4.1 (vetva 8.1) alebo 8.0.5.2 (vetva 8.0), najprv v testovacom prostredí.
  • Pri procesore :mini_magick potrebujete aj mini_magick 5.1 alebo novší. So starším aplikácia pri štarte skončí chybou.
  • Ak aplikácia cez ImageMagick vykresľuje PostScript alebo PDF, musíte v systémovom policy.xml znova povoliť delegát gs a moduly, ktoré používate.
  • Ak aplikácia po štarte prepisuje MiniMagick.cli_env, čistí prostredie cez MiniMagick.cli_prefix alebo má vlastný MiniMagick::Shell, dodanú politiku nedostane a pravidlá treba dať do systémovej politiky ImageMagick. GraphicsMagick politiky ImageMagick nečíta.
  • Otestujte nahrávanie obrázkov a nasaďte do produkcie.
  • Ak ukladáte prílohy cez službu Disk, vymeňte tajomstvá podľa sekcie nižšie.

Ak nemôžete aktualizovať hneď, Rails odporúča skopírovať pravidlá z activestorage/lib/active_storage/image_magick/policy.xml do systémovej politiky ImageMagick, napríklad /etc/ImageMagick-7/policy.xml. Minimálne zablokujte modul MSL, moduly Ghostscript a delegát gs:

<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="delegate" rights="none" pattern="gs" />
<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,EPS2,EPS3,EPI,EPSF,EPSI,EPT,EPT2,EPT3,PDF,AI,EPDF,PDFA,POCKETMOD,XPS,PCL}" />

Rails zverejnil aj samostatné záplaty pre tých, čo nemôžu prejsť na novú verziu: commit 468aa9a pre 8.1 a ea8c401 pre 8.0. Úprava systémovej politiky je len dočasná poistka a aktualizáciu nenahrádza.

Čo ak už ste mohli byť napadnutí

Rails nezverejnil konkrétne indikátory napadnutia. Ak bola vaša aplikácia zraniteľná a prijímala súbory od verejnosti, rátajte s možnosťou, že útočník mohol na server zapisovať súbory. Pri ukladaní príloh cez službu Disk mohli uniknúť aj tajomstvá.

Ak ukladáte prílohy cez službu Disk, Rails odporúča vymeniť secret_key_base a všetky tajomstvá, ktoré aplikácia vidí: master key, všetko v config/credentials.yml.enc, prístupy k úložisku a databáze aj tokeny tretích strán. Starý kľúč si nenechávajte ako záložný.

Na čo sa pozrieť:

  • logy aplikácie a webového servera: nezvyčajne veľa nahrávaní, nahrávania z neznámych adries alebo nahrávania končiace chybou ImageMagick
  • nové alebo zmenené súbory v adresári aplikácie, v dočasných adresároch a v úložisku Active Storage
  • neznáme kontá v aplikácii, nové SSH kľúče alebo úlohy v cron
  • nezvyčajné prihlásenia do databázy, úložiska a externých služieb, ku ktorým má aplikácia prístup

Ak nájdete niečo podozrivé alebo aplikácia spracúva citlivé údaje zákazníkov, prizvite odborníka na riešenie incidentov. Pred zásahom si zálohujte logy, aby sa zachovali stopy. Pri úniku osobných údajov myslite aj na ohlasovaciu povinnosť podľa GDPR.

Zdroje

Články zostavuje AI agent z verejných zdrojov (výrobcovia, CISA, ENISA, NVD, SK-CERT, NÚKIB) a čísla verzií aj CVE voči nim automaticky overuje. Pred zásahom do produkcie si postup vždy overte v bulletine výrobcu.

← Všetky hrozby · RSS

Potrebujete pomôcť s opravou alebo kontrolou?

Pomôžem vám zistiť, ktoré systémy sú zasiahnuté, bezpečne ich aktualizovať a skontrolovať, či útočník už nebol dnu. Začnime úvodnou konzultáciou, pri spolupráci sa odpočíta z ceny projektu.