Tinklaraštis

CVE-2026-28318: SolarWinds Serv-U griūva nuo vieno POST užklausos

CVE-2026-28318_SolarWinds_Serv-U
CVE / Linux / nftables / Saugumas

CVE-2026-28318: SolarWinds Serv-U griūva nuo vieno POST užklausos

Įsivaizduokite: jūsų failų perdavimo serveris aptarnauja šimtus korporacinių klientų — perduoda finansines ataskaitas, atsargines kopijas, dokumentus. Nakties trečią valandą kažkas išsiunčia vieną HTTP užklausą. Serv-U griūva. Visi failų perdavimai sustoja. Ryte pradeda skambėti telefonai.

Būtent taip veikia CVE-2026-28318 — Denial of Service tipo pažeidžiamumas SolarWinds Serv-U, įvertintas CVSS 7.5 (High). Klasifikacija pagal CWE-400: Uncontrolled Resource Consumption. Pataisymas išleistas 2026 m. birželio 4 d. — Serv-U 15.5.4 Hotfix 1. Jau birželio 5 d. CISA įtraukė CVE-2026-28318 į Known Exploited Vulnerabilities (KEV) katalogą: pažeidžiamumas aktyviai išnaudojamas realiose atakose.

Pažeidžiamumas suaktyvinamas specialiai suformuota POST užklausa su antrašte Content-Encoding: deflate. Jokio autentifikavimo. Jokios vartotojo sąveikos. Jokių privilegijų. Paslauga griūva.

KAS YRA SERV-U

Jei dirbate enterprise infrastruktūroje, tikriausiai žinote šią užduotį: kaip saugiai, patikimai, su žurnalavimu ir prieigos kontrole perduoti didelį failą tarp dviejų įmonių — ir kad tai veiktų tiek per buhalterio 2006 metų FTP klientą, tiek per šiuolaikinę HTTPS naršyklę. Būtent šią nišą užpildo SolarWinds Serv-U. Tai Managed File Transfer (MFT) serveris, veikiantis Windows ir Linux sistemose, palaikantis FTP, FTPS, SFTP, HTTP ir HTTPS vienu metu. Bankai per jį siunčia išrašus į mokėjimo apdorojimo centrus. Ligoninės — DICOM vaizdus tarp klinikų. Gamybos įmonės — EDI dokumentus tiekimo grandinės partneriams. Serv-U yra ta infrastruktūra, apie kurią niekas negalvoja — kol ji nesugriūva.

Serv-U tradiciškai žiūri į internetą — kitaip neveiktų. Shodan duomenimis, šiuo metu tinkle pasiekiama daugiau nei 12 000 Serv-U serverių. Shadowserver fiksuoja apie 3 100. Skirtumas paaiškinamas skirtinga skenavimo metodologija, tačiau esmė ta pati: tūkstančiai Serv-U diegimų pasiekiami iš bet kurios interneto vietos, ir daugelis jų dar negavo pataisymo.

Užpuolikams Serv-U — pageidautinas taikinys su istorija. 2021 m. Kinijos valstybės remiama grupuotė DEV-0322 pirmoji išnaudojo CVE-2021-35211 — RCE Serv-U — kaip zero-day dar prieš išleidžiant pataisymą. Vėliau tą patį pažeidžiamumą paėmė TA505 (Clop/FIN11 ransomware operatoriai) — korporatyvinėms tinklams prasiskverbti ir ransomware diegti. 2024 m. aktyviai pradėtas išnaudoti kitas Serv-U pažeidžiamumas, leidęs apeiti failų sistemos kelius. Šiandienos rezultatas: CISA įtraukė į KEV katalogą 11 SolarWinds produktų pažeidžiamumų. CVE-2026-28318 taps dvyliktuoju. Saugumo tyrėjai jau seniai pastebi, kad Serv-U tikrinamas kiekvieną patogią progą — ir, sprendžiant pagal statistiką, ne be rezultato.

KAIP VEIKIA PAŽEIDŽIAMUMAS

HTTP antraštė Content-Encoding — tai instrukcija serveriui: „užklausos kūnas suglaudintas šiuo algoritmu, išglauk prieš apdorodamas”. Viena iš galimų reikšmių — deflate, duomenų glaudinimo algoritmas pagrįstas LZ77 ir Huffman kodavimu. Logika aiški: klientas suglaudino duomenis, kad sumažintų srautą, serveris gavo ir išglaudė. Problema ta, kad Serv-U šio išglaudinimo metu nenustato jokių ribų — nei pagal skiriamos atminties kiekį, nei pagal procesoriaus laiką. Įsivaizduokite siurblį be slėgio avarinio vožtuvo: jis pumpuos tol, kol sprogsta.

CWE-400 (Uncontrolled Resource Consumption) klasifikacija aprašo būtent šį šabloną: programa skiria išteklius reaguodama į gaunamus duomenis, bet neriboja, kiek tiksliai. Užpuolikas pateikia specialiai suformuotą suglaudintą payload — ir Serv-U pradeda be sustojimo vartoti atmintį arba CPU. Jokios ribos, jokio stabdymo, kol paslauga neišeikvoja prieinamų išteklių ir nesugriauna avarijoje. Svarbu: visa tai vyksta prieš autentifikavimą. Serv-U priima ir pradeda apdoroti užklausą dar prieš patikrinant, kas ją išsiuntė. Vadinasi, užpuolikui prisijungimo duomenys visai nereikalingi.

Techninis atakos paprastumas — viena iš priežasčių, kodėl pažeidžiamumas iškart pateko į aktyvų išnaudojimą. Čia nereikia pažeidžiamumų grandinės, nereikia specializuoto įrankio, nereikia gilintis į sistemos vidurius. Reikia HTTP kliento ir vienos antraštės eilutės. Atakuojančiojo įėjimo slenkstis — minimalus; nukentėjusiojo pasekmių slenkstis — aukštas.

REALI ATAKOS GRANDINĖ

Viskas prasideda nuo Shodan. Paieška pagal Serv-U banerį grąžina tūkstančius rezultatų su IP adresais, prievadais ir versijomis. Užpuolikas pasirenka taikinį — arba ima visą sąrašą iš karto. Toliau — viena HTTP užklausa: POST į bet kurį Serv-U endpoint su antrašte Content-Encoding: deflate ir specialiai paruoštu kūnu. Jokio prisijungimo, jokio sesijos žetono. Serv-U priima užklausą, pradeda išglaudinimą, pereina į nevaldomą išteklių vartojimą. Po kelių sekundžių ar minučių — priklausomai nuo RAM kiekio ir procesoriaus galios — paslauga griūva.

Ką tuo metu mato administratorius? Jei pasisekė — monitoringo įspėjimas, kad paslauga nepasiekiama. Jei ne — ryto skambučiai iš vartotojų, negalinčių prisijungti prie FTP. Serv-U žurnaluose — nutrūkimas be aiškios klaidos žinutės, būdingas avarinio proceso baigimo atvejui. Autentifikavimo žurnaluose nieko nėra, nes iki autentifikavimo niekada nebuvo prieita. Incidento metu nustatyti priežastį pagal žurnalus — tikrai nelengva užduotis.

Jei Serv-U sukonfigūruotas kaip sisteminė paslauga su automatiniu paleidimu iš naujo, užpuolikas tiesiog pakartoja užklausą. Paslauga pakyla — ir vėl griūva. Šį ciklą galima palaikyti neribotą laiką. Botnet operatoriui ši ataka ypač patraukli: skirtingai nei volumetric DDoS, reikalaujantis pralaidumui prisotinti gigabitais srauto ir lengvai filtruojamas tiekėjo lygmeniu, čia pakanka minimalaus skaičiaus tinkamai suformuotų užklausų. Botnet iš kelių šimtų mazgų, kiekvienas siunčiantis po vieną užklausą per minutę — ir Serv-U nuolat nokdauno būsenoje. Jokio srauto tūrio, kuris sudomintų upstream tiekėją. Tyliai ir efektyviai.

CHRONOLOGIJA

2026 m. vasario 26 d. SolarWinds rezervavo CVE identifikatorių — vadinasi, pažeidžiamumas buvo aptiktas ir jiems praneštas dar vasarį, daug prieš viešą atskleidimą. Birželio 3 d. bendrovė paskelbė oficialų advisory Trust Center puslapyje. Birželio 4 d. išleido pataisymą — Serv-U 15.5.4 Hotfix 1. Tarpas tarp CVE rezervavimo ir pataisymo išleidimo sudarė daugiau nei tris mėnesius: tai standartinis coordinated disclosure terminas, kai tyrėjas suteikia tiekėjui laiko ištaisyti, prieš skelbiant viešai.

Birželio 5 d. — praėjus vienai dienai po pataisymo — CISA įtraukė CVE-2026-28318 į Known Exploited Vulnerabilities katalogą. Tai reiškia, kad pataisymui pasirodžius pažeidžiamumas jau buvo išnaudojamas realiose atakose. Kiek laiko anksčiau — nežinoma. Visiškai tikėtina, kad atakos prasidėjo dar prieš birželio 4 d.: MFT pažeidžiamumų istorijoje tai ne retenybė. Terminas JAV Federal Civilian Executive Branch agentūroms — 2026 m. birželio 19 d. pagal direktyvą BOD 22-01.

KODĖL TAI SVARBU

DoS pažeidžiamumų įprasta nelaikyti tokiais pavojingais kaip RCE ar LPE: „serveris nukrito, perkrovėme, dirbame toliau”. Tai klaidinga logika MFT serverio kontekste. Serv-U — ne svetainė su gražiu vaizdeliu. Tai transportas, kuriuo juda verslo procesai. Bankas negali nusiųsti dienos pabaigos failo į mokėjimo procesorių. Ligoninė negauna vaizdinių iš kito padalinio. Gamykla neiššiūna pristatymo dokumentų klientui. SLA pažeistas. Bauda. Valandų rankinis atkūrimas. Reputacinė žala. Ir visa tai — nuo vienos HTTP užklausos, kuri užpuolikui nekainavo nieko.

Yra ir nerimą keliantis aspektas. Serv-U atakuojamas ne iš smalsumo — atakuojamas tikslingai, dėl duomenų. DEV-0322 naudojo Serv-U šnipinėjimui prieš JAV gynybos ir technologijų įmones. TA505/Clop — kaip pradinį prieigos tašką ransomware diegimui ir korporatyvinių failų vagystei. DoS pats savaime gali būti žvalgyba: užpuolikas patikrina, kurie serveriai naudoja Serv-U, kaip greitai reaguoja saugumo komanda, ar yra automatinis paleidimas iš naujo. Gavęs atsakymus į šiuos klausimus, jis grįžta — jau su kitu įrankiu. CISA neįtraukia į KEV pažeidžiamumų dėl biurokratijos. Tai signalas: kažkas jau laužiasi, ir ne vienas.

Atskira rizika — automatizuotos grandinės. Jei Serv-U yra grandis naktiniame atsarginių kopijų procese ar EDI integracijoje, jo nepasiekiamumas gali būti pastebėtas ne iš karto. Atsarginė kopija tyliai nebuvo sukurta. EDI dokumentai nepasiekė partnerio. Tai paaiškėja po kelių valandų arba kitą rytą — kai pasekmės jau susikaupė.

KĄ DARYTI

Vienintelis visiškas pataisymas — atnaujinimas iki Serv-U 15.5.4 Hotfix 1, prieinamo per SolarWinds Customer Portal. Svarbi detalė: pažeidžiamos visos versijos iki 15.5.4 imtinai, jei hotfix nebuvo pritaikytas. Jei atnaujinote iki 15.5.4, bet praleidote hotfix — vis dar esate pažeidžiami. Paketų inventorizacijos įrankis gali matyti „15.5.4″ ir laikyti versiją aktualia — tai spąstai. Tikrinkite tikslų versijos numerį pačioje programoje.

Jei šiuo metu atnaujinti neįmanoma — derinimas, technologinis langas, baimė sugadinti production — SolarWinds oficialiai rekomenduoja dvi laikinas kompensacines priemones. Pirma: apriboti prieigą prie Serv-U tik žinomais, patikimais IP adresais. Jei turite partnerių ir klientų, kurie realiai jungiasi prie serverio, sąrašą — užblokuokite viską kitą ugniasienės lygmeniu. Antra: blokuoti visas POST užklausas, turinčias antraštę Content-Encoding. SolarWinds tiesiogiai teigia, kad Serv-U šios funkcionalumo nenaudoja — blokavimas nepaveiks teisėto srauto.

Atskiras dalykas — versijos patikrinimas: iš komandinės eilutės to padaryti nepavyks. Serv-U neregistruojamas sisteminiame paketų tvarkytuve — nei dpkg -l, nei rpm -qa jo nematys. Versija matoma tik Serv-U žiniatinklio administratoriaus sąsajoje: Setup → Information. Atnaujinimas diegiamas per SolarWinds nuosavą diegiklį, kuris atsiunčiamas rankiniu būdu iš Customer Portal. Būtent todėl automatizuotos inventorizacijos sistemos gali rodyti pasenusią versiją arba Serv-U visai nematyti — tikrinkite per sąsają, rankiniu būdu.

Oficialiame advisory SolarWinds paskelbė pavyzdinių taisyklių pagrindinėms WAF ir proxy sprendimams. Nginx atveju advisory siūlo įdėtinius if blokus — tačiau nginx įdėtinių if direktyvų nepalaiko, tai žinomas konfigūracijos variklio apribojimas. Veikianti versija naudoja kintamąjį: nustatome jį atitikus kiekvieną sąlygą, tada tikriname bendrą rezultatą viename if:

set $block_deflate_post 0;
if ($request_method = POST) {
    set $block_deflate_post 1;
}
if ($http_content_encoding ~* deflate) {
    set $block_deflate_post "${block_deflate_post}1";
}
if ($block_deflate_post = "11") {
    return 403;
}

ModSecurity su CRS atveju taisyklė veikia 1 fazėje (prieš skaitant užklausos kūną) ir naudoja grandinę: pirmoji taisyklė atitinka metodą, chain žymė reikalauja, kad atitiktų ir kita taisyklė. Svarbu: taisyklę reikia įtraukti į konfigūraciją prieš CRS įjungimą, kitaip gali kilti identifikatorių konfliktas — id:100100 turi būti laisvas:

SecRule REQUEST_METHOD "@streq POST" "id:100100,phase:1,deny,status:403,chain"
    SecRule REQUEST_HEADERS:Content-Encoding "@contains deflate"

Jei prieš Serv-U stovi Cloudflare WAF, taisyklė kuriama kaip Custom Rule skyriuje Security → WAF. Išraiška atitinka tiek antraštę, tiek metodą, veiksmas — Block:

(http.request.headers["content-encoding"][*] contains "deflate" and http.request.method eq "POST")

Pastaba apie nftables: jis veikia L3/L4 lygmeniu ir neturi prieigos prie HTTP antraščių turinio. Filtruoti pagal Content-Encoding nftables lygmeniu neįmanoma — tai WAF arba nginx kaip reverse proxy prieš Serv-U užduotis. Jei nginx jau stovi prieš Serv-U — aukščiau pateikta taisyklė visiškai užsklendžia atakos vektorių.

Pritaikius kompensacines priemones arba įdiegus pataisymą, verta peržiūrėti Serv-U žurnalus per pastarąsias kelias savaites ir ieškoti POST užklausų su antrašte Content-Encoding: deflate. Jei tokių yra — bandymai jau buvo, ir klausimas, ar kuris nors iš jų pavyko.

IŠVADOS

CVE-2026-28318 — techniškai paprastas pažeidžiamumas su didelėmis pasekmėmis korporatyviniame kontekste. Viena užklausa, jokio autentifikavimo, paslauga griūva. Pataisymas yra — Serv-U 15.5.4 Hotfix 1, išleistas birželio 4 d. CISA patvirtino aktyvų išnaudojimą. JAV federalinių agentūrų terminas — birželio 19 d.

Jei Serv-U yra jūsų infrastruktūroje — atnaujinkite nedelsiant. Jei atnaujinimas reikalauja derinimo — jau šiandien blokuokite POST užklausas su Content-Encoding: deflate, tai nepažeis jokio teisėto srauto. Tada atnaujinkite.

Leave your thought here

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Kaina
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare