Programmēšanas pasaulē drošība ir nepārtraukta cīņa, un jaunākais trieciens nāk no populārās Ruby on Rails platformas. Ir atklāta kritiska ievainojamība, kas ļauj uzbrucējiem iegūt piekļuvi sensitīviem servera datiem, izmantojot šķietami nevainīgus attēlu augšupielādes failus. Tas nav stāsts par to, vai jūsu sistēma ir apdraudēta, bet gan par to, cik ātri jūs spējat reaģēt.
Kas ir CVE-2026-66066 un kā tas darbojas?
Šī nopietnā drošības nepilnība, kas pazīstama kā CVE-2026-66066, ir novērtēta ar iespaidīgi augstu CVSS vērtību - 9,5 no 10, kas nozīmē, ka tā ir ārkārtīgi bīstama. Tā skar Ruby on Rails iebūvēto failu augšupielādes komponentu Active Storage. Uzbrucēji var augšupielādēt speciāli sagatavotus attēlus, kas liek serverim palaist “neuzticamas” operācijas libvips bibliotēkā - C valodā rakstītā rīkā attēlu apstrādei, ko Rails izmanto kopš 7.0 versijas.
Izmantojot šo vājumu, hakeri var nolasīt jebkurus failus, kam Rails procesam ir piekļuve. Tas ietver vitāli svarīgas lietas, piemēram, secret_key_base (kas paraksta sesijas sīkfailus), RAILS_MASTER_KEY (kas atšifrē saglabātās piekļuves paroles), kā arī datubāzu un mākoņkrātuves akreditācijas datus. Rezultātā var tikt viltotas lietotāju sesijas, atšifrētas konfidenciālas paroles un pat pārņemti ar lietotni saistītie pakalpojumi, kas var novest pie attālinātas koda izpildes (RCE).
Kuras Rails versijas ir apdraudētas un kā pārbaudīt?
Lielākā problēma ir tā, ka daudzas Rails lietotnes ir pakļautas riskam pēc noklusējuma. Sākot ar Rails 7.0, Active Storage kā attēlu apstrādes rīku izmanto libvips. Turklāt Docker konteineru konfigurācijas, ko ģenerē rails new, bieži vien jau instalē libvips. Ja jūsu lietotne atļauj neuzticamiem lietotājiem augšupielādēt attēlus (pat privātus profilu attēlus vai forumu pielikumus), tā ir apdraudēta.
Svarīgi ir saprast, ka pat attēlu variantu (piemēram, samazinātu sīktēlu) ģenerēšana nav obligāta, lai izraisītu ievainojamību. Active Storage automātiski analizē augšupielādētos failus, lai noteiktu to izmērus un citus parametrus, tādējādi atverot durvis uzbrukumam. Jūs varat pārbaudīt, vai jūsu lietotne izmanto libvips, izpildot šādu komandu:
bin/rails runner 'puts Rails.application.config.active_storage.variant_processor'
Ja izvade ir vips, jūsu lietotne ir potenciāli apdraudēta.
Steidzami atjauninājumi un libvips prasības
Lai labotu šo kļūdu, jums ir nekavējoties jāatjaunina Rails uz versijām 7.2.3.2, 8.0.5.1 vai 8.1.3.1. Visas iepriekšējās sēriju versijas ir apdraudētas. Diemžēl vecākām Rails versijām, piemēram, 7.1, 7.0 vai 6.x, vairs netiek nodrošināti drošības atjauninājumi, tāpēc vienīgais risinājums ir jaunināšana uz atbalstītu versiju.
Turklāt ar pašu Rails atjauninājumu nepietiks. Lai drošības ielāps darbotos, jums ir jāizmanto vismaz libvips 8.13 vai jaunāka versija. Ja mēģināsiet palaist ielāpu ar vecāku libvips versiju, Rails lietotne vienkārši atteiksies startēt, izmetot kļūdu. Tādēļ Docker vidēs noteikti atjauniniet libvips savos bāzes attēlos un pārbūvējiet tos.
Ja nevarat veikt pilnīgu atjaunināšanu nekavējoties, bet izmantojat libvips 8.13 vai jaunāku, ir pagaidu risinājums. Jūs varat bloķēt “neuzticamās” operācijas, iestatot vides mainīgo VIPS_BLOCK_UNTRUSTED=1 pirms libvips inicializēšanas vai izmantojot Vips.block_untrusted(true) inicializētājā, ja jums ir ruby-vips 2.2.1 vai jaunāka versija. Vecākām libvips versijām šāda risinājuma nav.
Ne tikai lāpīšana: atslēgu nomaiņa ir obligāta
Tā kā nav droša veida, kā noteikt, vai jūsu lietotne jau ir apdraudēta, Rails komanda iesaka visus noslēpumus, kam Rails procesam ir piekļuve, uzskatīt par kompromitētiem. Tas nozīmē, ka jums ir jāmaina:
secret_key_base: Pēc maiņas visiem lietotājiem būs jāpiesakās no jauna.RAILS_MASTER_KEY: Svarīgi ir ne tikai nomainīt atslēgu, bet arī pāršifrēt visus datus failācredentials.yml.encar jaunām paroļu vērtībām, jo uzbrucēji jau var būt ieguvuši sākotnējās paroles nešifrētā veidā.- Visas datubāzu un mākoņkrātuves piekļuves paroles, kā arī ārējo pakalpojumu tokeni.
Atcerieties - vispirms pilnībā izvietojiet atjauninātās Rails un libvips versijas, un tikai tad veiciet atslēgu un paroļu maiņu, lai novērstu tūlītēju jauno noslēpumu noplūdi.
Rails komanda plāno publicēt detalizētāku informāciju par uzbrukuma veidu ne vēlāk kā 2026. gada 28. augustā. Tomēr nevajadzētu gaidīt - rīkojieties jau tagad, lai pasargātu savus datus un lietotājus. Vai jūsu Rails projekts ir gatavs šim drošības izaicinājumam?
Iezīmē tekstu un spied ziņot par kļūdu.