Bezpečnostní hrozby · 4. listopadu 2026

Kritická chyba v Active Storage (Ruby on Rails): nahraný soubor může číst a zapisovat soubory serveru

Tým Ruby on Rails 4. listopadu 2026 opravil kritickou chybu CVE-2026-122006 v Active Storage. Pokud aplikace zpracovává nahrané obrázky přes ImageMagick, útočník bez přihlášení může zapisovat soubory na server a při ukládání na lokální disk i číst soubory s tajnými klíči. Aktualizujte na 8.1.4.1 nebo 8.0.5.2.

Co se stalo

Ruby on Rails je oblíbený framework pro tvorbu webových aplikací v jazyce Ruby. Jeho součástí je Active Storage, modul, který se stará o nahrávání souborů, třeba profilových fotek, dokumentů nebo příloh. U obrázků často využívá známý program ImageMagick, který z obrázku zjišťuje rozměry a další údaje.

Tým Rails 4. listopadu 2026 zveřejnil bezpečnostní upozornění GHSA-f3w6-w445-fwh9 a opravené verze 8.1.4.1 a 8.0.5.2. Chyba má označení CVE-2026-122006 a v evropské databázi zranitelností EUVD je vedena pod číslem EUVD-2026-116914. Rails ji hodnotí jako kritickou: aplikace může útočníkovi bez přihlášení umožnit zapisovat libovolné soubory na server a za určitých podmínek i číst soubory, ke kterým má aplikace přístup.

Chybu zodpovědně nahlásil výzkumník ryotak přes platformu HackerOne. Chyba zatím není v katalogu CISA KEV a EUVD neuvádí, že by byla zneužívána. Rails píše, že mu byl nahlášen jeden konkrétní způsob útoku, ale nepředpokládá, že je jediný. Stejná vydání opravují i několik dalších chyb v jiných částech Rails.

Proč je to nebezpečné

Jde o chybu typu „nebezpečné výchozí nastavení“ (CWE-1188). Active Storage neomezovalo žádné moduly ImageMagick. ImageMagick si podle obsahu souboru sám vybere, jak ho zpracuje, a některé jeho moduly nepracují jen se samotným obrázkem, ale i se soubory, na které se obrázek odkazuje.

Představte si podatelnu, kde úředník otevře každou doručenou obálku. Když v ní najde lístek „vyndej ze skříně šanon X a udělej s ním tohle“, poslušně to udělá, protože mu nikdo neřekl, že nesmí. Podobně se ImageMagick může nechat nahraným souborem navést k práci se soubory serveru.

Podstatné je, že stačí soubor jen připojit. Analýza obrázku se podle Rails spouští automaticky při nahrání, aplikace ho nemusí nijak dál upravovat. Útok vede přes internet, přes běžný formulář pro nahrání souboru. Pokud aplikace umožňuje nahrávat i bez přihlášení, útočník nepotřebuje žádný účet.

Rails uvádí, že útočník může zapisovat soubory na server. Pokud aplikace ukládá přílohy na lokální disk (služba Disk), může i číst soubory, ke kterým má aplikace přístup. Mezi nimi bývá secret_key_base a přístupové údaje k databázi či externím službám. To podle Rails může vést ke spuštění cizího kódu na serveru nebo k proniknutí do dalších systémů.

CVSS je stupnice závažnosti od 0 do 10. Skóre 9,8 (kritické) uvádí u tohoto CVE organizace MITRE a stejnou hodnotu má i upozornění Rails. Znamená útok přes síť, nízkou náročnost, žádné přihlášení a žádnou akci uživatele. Katalog CISA KEV je seznam chyb, jejichž zneužívání potvrdila americká agentura CISA. Tato chyba v něm zatím není, to ale neznamená, že se zneužívat nezačne.

Koho se to týká

Dotčen je balíček (gem) activestorage, součást Ruby on Rails:

  • všechny verze nižší než 8.0.5.2
  • verze od 8.1 nižší než 8.1.4.1

Podle Rails je aplikace zranitelná, jen pokud platí všechny tři podmínky současně:

  • pro zpracování obrázků v Active Storage používá ImageMagick, tedy config.active_storage.variant_processor = :mini_magick. Je to výchozí hodnota pro aplikace s load_defaults 6.1 nebo starším.
  • ImageMagick běží s bezpečnostní politikou, která dotčené moduly ještě neblokuje. Politiky, které dodávají Debian a Ubuntu, je neblokují.
  • aplikace umožňuje nahrávat soubory nedůvěryhodným uživatelům.

Typicky jde o e-shopy, zákaznické portály, interní systémy a SaaS služby postavené na Rails, které běží na linuxových serverech nebo v kontejnerech. Pokud vám aplikaci dodává externí firma, zeptejte se jí přímo. Netýká se to aplikací bez Active Storage, aplikací s jiným procesorem obrázků než :mini_magick ani těch, kde soubory nahrávají jen důvěryhodní lidé.

Jak zjistit, zda jste zasaženi

Následující příkazy pouze čtou informace a nic nemění. Spouštějte je v adresáři aplikace na serveru. Verze activestorage a mini_magick:

grep -E "activestorage|mini_magick" Gemfile.lock

Jaký procesor obrázků aplikace skutečně používá a jaké 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 se ukládají přílohy (hledejte service: Disk) a jakou politiku ImageMagick uplatňuje:

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

Pokud je activestorage v dotčené verzi, procesor je :mini_magick a aplikace přijímá soubory od veřejnosti, považujte ji za zranitelnou. Pokud produkce používá službu Disk, týká se vás i výměna tajemství popsaná níže.

Jak to opravit

Opravené verze jsou activestorage 8.1.4.1 a 8.0.5.2. Přinášejí bezpečnostní politiku pro ImageMagick, která blokuje nebezpečné moduly a platí pro každý příkaz ImageMagick spuštěný přes MiniMagick. Politika se přidává k politice serveru, nenahrazuje ji.

Doporučený postup:

  • Ověřte, zda jste zasaženi, a aktualizaci naplánujte co nejdříve.
  • Aktualizujte Rails na 8.1.4.1 (větev 8.1) nebo 8.0.5.2 (větev 8.0), nejprve v testovacím prostředí.
  • Při procesoru :mini_magick potřebujete i mini_magick 5.1 nebo novější. Se starším aplikace při startu skončí chybou.
  • Pokud aplikace přes ImageMagick vykresluje PostScript nebo PDF, musíte v systémovém policy.xml znovu povolit delegát gs a moduly, které používáte.
  • Pokud aplikace po startu přepisuje MiniMagick.cli_env, čistí prostředí přes MiniMagick.cli_prefix nebo má vlastní MiniMagick::Shell, dodanou politiku nedostane a pravidla je nutné dát do systémové politiky ImageMagick. GraphicsMagick politiky ImageMagick nečte.
  • Otestujte nahrávání obrázků a nasaďte do produkce.
  • Pokud ukládáte přílohy přes službu Disk, vyměňte tajemství podle sekce níže.

Pokud nemůžete aktualizovat hned, Rails doporučuje zkopírovat pravidla z activestorage/lib/active_storage/image_magick/policy.xml do systémové politiky ImageMagick, například /etc/ImageMagick-7/policy.xml. Minimálně 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 zveřejnil i samostatné záplaty pro ty, kdo nemohou přejít na novou verzi: commit 468aa9a pro 8.1 a ea8c401 pro 8.0. Úprava systémové politiky je jen dočasná pojistka a aktualizaci nenahrazuje.

Co když už jste mohli být napadeni

Rails nezveřejnil konkrétní indikátory napadení. Pokud byla vaše aplikace zranitelná a přijímala soubory od veřejnosti, počítejte s tím, že útočník mohl na server zapisovat soubory. Při ukládání příloh přes službu Disk mohla uniknout i tajemství.

Pokud ukládáte přílohy přes službu Disk, Rails doporučuje vyměnit secret_key_base a všechna tajemství, která aplikace vidí: master key, vše v config/credentials.yml.enc, přístupy k úložišti a databázi i tokeny třetích stran. Starý klíč si nenechávejte jako záložní.

Na co se podívat:

  • logy aplikace a webového serveru: neobvykle mnoho nahrávání, nahrávání z neznámých adres nebo nahrávání končící chybou ImageMagick
  • nové nebo změněné soubory v adresáři aplikace, v dočasných adresářích a v úložišti Active Storage
  • neznámé účty v aplikaci, nové SSH klíče nebo úlohy v cron
  • neobvyklá přihlášení do databáze, úložiště a externích služeb, ke kterým má aplikace přístup

Pokud najdete něco podezřelého nebo aplikace zpracovává citlivé údaje zákazníků, přizvěte odborníka na řešení incidentů. Před zásahem si zálohujte logy, aby se zachovaly stopy. Při úniku osobních údajů myslete i na ohlašovací povinnost podle GDPR.

Zdroje

Články sestavuje AI agent z veřejných zdrojů (výrobci, CISA, ENISA, NVD, NÚKIB, SK-CERT) a čísla verzí i CVE proti nim automaticky ověřuje. Před zásahem do produkce si postup vždy ověřte v bulletinu výrobce.

← Všechny hrozby · RSS

Potřebujete pomoct s opravou nebo kontrolou?

Pomohu vám zjistit, které systémy jsou zasažené, bezpečně je aktualizovat a zkontrolovat, zda útočník už nebyl uvnitř. Začněme úvodní konzultací, při spolupráci se odečte z ceny projektu.