Të meta miniOrange SAML SSO lejojnë sulmuesit të anashkalojnë adminin e WordPress

Të meta miniOrange SAML SSO lejojnë sulmuesit të anashkalojnë adminin e WordPress

Dy defekte kritike në miniOrange SAML SSO lejojnë sulmuesit të hyjnë në WordPress si çdo përdorues, por edicionet me pagesë të plugin-it u rregulluan pa asnjë njoftim publik.

Dy defekte kritike të anashkalimit të autentikimit në WordPress në plugin-in miniOrange SAML 2.0 Single Sign On, të ndjekura si CVE-2026-61979 dhe CVE-2026-15981, lejuan një sulmues të paautentikuar të hyjë në një faqe WordPress si çdo përdorues ekzistues, përfshirë një administrator. I paautentikuar do të thotë që sulmuesi nuk kishte nevojë për llogari dhe as fjalëkalim të vetin. Zbulimi dhe analiza e shkakut rrënjësor i përkasin ekipit të sigurisë të DigitalOcean, ndërsa mbulimi dhe ndjekja e shitësit u trajtuan së bashku me Patchstack. Të dy defektet kanë një rezultat CVSS prej 9.8, një vlerësim ashpërsie që shkon nga 0 në 10, dhe të dy u zbuluan publikisht në korrik 2026.

Plugin-i trajton SAML, që do të thotë Security Assertion Markup Language, një standard që lejon një faqe interneti të pranojë një hyrje të konfirmuar nga një shërbim identiteti i jashtëm në vend që të kontrollojë vetë fjalëkalimin. Ky shërbim i jashtëm quhet Identity Provider, ose IdP. Të dy defektet e mposhtin atë besim: ata bindin plugin-in se një mesazh i falsifikuar hyrjeje, i quajtur SAML assertion, është i vërtetë.

Defekti i parë, CVE-2026-61979, është konfuzion i algoritmit të nënshkrimit. Një nënshkrim është vula dixhitale që provon se një mesazh vërtet erdhi nga shërbimi i besuar i identitetit. Plugin-i lejon përgjigjen hyrëse SAML të zgjedhë se cila metodë nënshkrimi u përdor. Një sulmues mund ta vendosë atë metodë në HMAC-SHA1, një mënyrë nënshkrimi me një varg të fshehtë të përbashkët, dhe plugin-i pastaj pranon çelësin publik RSA të ofruesit të identitetit sikur të ishte ai sekret. Një çelës publik është, nga dizajni, publik. Kështu, sulmuesi e merr çelësin nga pika e metadatave të publikuara të ofruesit të identitetit, nënshkruan assertion-in e vet me të, dhe plugin-i e pranon rezultatin si të vërtetë. Analiza e DigitalOcean për edicionin Standard 16.1.9 tregon shtigje specifike kodi: Utilities.php rreshtat 246 deri 250, të cilët lexojnë algoritmin e zgjedhur nga sulmuesi dhe rikrijojnë çelësin RSA; Utilities.php rreshtat 259 deri 281, të cilët nxjerrin dhe ringarkojnë çelësin publik; dhe tre vende në includes/lib/SAML2Core/XMLSecurityKey.php (rreshtat 216 deri 218, 308 deri 314 dhe 546 deri 548) që lejojnë HMAC-SHA1 si opsion, lënë materialin e çelësit publik si bajt të papërpunuar në vend që ta refuzojnë, dhe e kalojnë drejtpërdrejt në funksionin hash_hmac si sekret. miniOrange e rregulloi këtë në versionin 17.0.5 për edicionin Standard.

Defekti i dytë, CVE-2026-15981, është një gabim tjetër me të njëjtin rezultat. Funksioni i bibliotekës OpenSSL openssl_verify kthen tre përgjigje të mundshme: 1 për një nënshkrim të vlefshëm, 0 për një të pavlefshëm, dhe -1 kur vetë OpenSSL has një gabim të brendshëm. Plugin-i e kontrolloi atë rezultat si një e vërtetë ose e gabuar e thjeshtë, dhe në PHP, gjuha e programimit ku funksionon WordPress, numri -1 llogaritet si i vërtetë. Kështu, një nënshkrim i keqformuar që shkakton rrugën e gabimit të OpenSSL trajtohet si nënshkrim i vlefshëm. Shtigjet e kodit në versionin 16.1.9 janë XMLSecurityKey.php rreshtat 486 deri 494, që kthen rezultatin e papërpunuar trepalësh, dhe Utilities.php rreshti 252, që e kthen atë në një boolean. miniOrange e rregulloi këtë në versionin 17.0.6 për edicionin Standard. Një çështje e tretë, e veçantë, u zbulua menjëherë pas këtyre rregullimeve. Kërkon që një administrator të klikojë diçka (përshkruar në terma CVSS si UI:R), kështu që qëndron shumë më poshtë se dy të tjerat në ashpërsi praktike, por Patchstack vëren se ia vlen të rregullohet në të njëjtën kalim.

Arsyeja pse kjo histori është më e madhe se kodi është paketimi. miniOrange i ofron të gjitha këto produkte nën një listim dhe slug të vetëm në WordPress, miniorange-saml-20-single-sign-on, dhe ai listim i vetëm përmban shtatë edicione të versionuara veçmas. Asnjë dy nuk ndajnë një numër versioni. Edicioni falas për një faqe të vetme fillon nga 3.0.0 dhe aktualisht është në 5.4.7, dhe ishte i cenueshëm deri dhe duke përfshirë 5.4.4, i rregulluar në 5.4.5. Premium për një faqe të vetme fillon nga 11.3.0 deri 13.1.0, i cenueshëm deri 13.0.3 dhe i rregulluar në 13.0.4. Standard për një faqe të vetme fillon nga 15.1.0 deri 17.1.0, i cenueshëm deri 17.0.5 dhe i rregulluar në 17.0.6. Plani multisite Premium, Enterprise dhe All-Inclusive fillon nga 20.0.0 deri 20.2.8, i cenueshëm deri 20.2.7 dhe i rregulluar në 20.2.8. Enterprise dhe All-Inclusive për një faqe të vetme fillon nga 25.0.0 deri 26.1.0, i cenueshëm deri 26.0.2 dhe i rregulluar në 26.0.3. VIP për një faqe të vetme fillon nga 32.0.0 deri 32.0.8, i cenueshëm deri 32.0.7 dhe i rregulluar në 32.0.8. VIP multisite fillon nga 35.0.0 deri 35.0.7, i cenueshëm deri 35.0.6 dhe i rregulluar në 35.0.7. Për shkak se çdo edicion përfshin disa numra kryesorë versioni, një numër versioni më vete nuk ju tregon se cilin edicion po përdorni. Shitësi e dha këtë ndarje të plotë për Patchstack, e cila thotë se nuk ishte publikuar askund më parë.

Njoftimet publike për të dy CVE-të mbuluan vetëm edicionin falas, të vetmin që kushdo mund ta shkarkojë nga WordPress.org. Ai regjistër thoshte se plugin-i ishte i prekur deri dhe duke përfshirë 5.4.4 dhe i rregulluar në 5.4.5. Regjistri vetë është i saktë, por është një interval i vetëm i lidhur me një slug të vetëm. Çdo instalim me pagesë mban një numër versioni më të lartë se 5.4.5, kështu që çdo instalim me pagesë lexohej si i rregulluar tashmë. Një faqe në versionin e cenueshëm Standard 16.1.9 raportohej si e paprekur, dhe po ashtu çdo version tjetër i cenueshëm me pagesë në linjat 13.x, 20.x, 26.x, 32.x dhe 35.x. Zgjerimi i intervalit nuk e rregullon as atë: shtrijeni regjistrin në 17.0.5 që një 16.1.9 i cenueshëm të kapet, dhe faqet e edicionit falas të rregulluara tashmë në 5.4.5 ose më vonë fillojnë të raportohen si të cenueshme në vend të kësaj. Tabela e shitësit e përshkruan grupin e prekur saktësisht si shtatë intervale të veçanta në një slug, që është ajo që regjistri i bazës së të dhënave mban tani. Gjashtë edicionet me pagesë u rregulluan pa asnjë hyrje publike në changelog dhe pa asnjë njoftim publik sigurie, që është mënyra se si e gjithë zinxhiri në rrjedhën e poshtme, bazat e të dhënave, skanerët dhe panelet, u verbuan menjëherë.

Rregullimi ishte po aq i vështirë për t'u gjetur. Patchstack thotë se faqet WordPress në një version të cenueshëm Standard 16.x nuk shohin fare ndonjë përditësim të disponueshëm në panelin e administratorit, edhe pse versioni i rregulluar 17.0.6 ekziston në të njëjtën linjë Standard për të cilën klienti tashmë mban një licencë. Mekanizmi tipik i përditësimit të WordPress nuk ofron atë lloj kërcimi midis linjave kryesore të versionit, kështu që rregullimi duhet të ngarkohet me dorë.

Ajo që e bën rastin të shquar është se si u kap në të vërtetë problemi. Nuk kishte njoftim për të lexuar dhe asnjë hyrje në bazën e të dhënave që shënonte edicionet me pagesë, dhe plugin-i raportonte veten si plotësisht të përditësuar. Çdo sinjal që zakonisht paralajmëron për telashe thoshte se gjithçka ishte në rregull. DigitalOcean e vuri re përmes mbrojtjes në thellësi sesa përmes të dhënave të plugin-it: një përpjekje anomale për sesion administratori në WordPress erdhi nga jashtë rrjetit të tij të besuar dhe u bllokua. Sulmuesi tashmë e kishte përdorur anashkalimin për të marrë një cookie sesioni administratori, tokenin që ju mban të identifikuar, por u ndal sepse operacionet e panelit të administratorit në atë infrastrukturë ishin të kufizuara në rrjetin e besuar. Ekipi pastaj e riprodhoi anashkalimin nga fillimi në fund në versionin 16.1.9, gjurmoi të dy defektet në rreshta specifikë, kuptoi cilat versione me pagesë ishin të prekura aty ku shitësi nuk kishte publikuar asgjë, shkroi dhe vërtetoi dy rregullime të shpejta, dhe ndau analizën për publikim. Patchstack raporton aktivitet skanimi kundër pikave fundore të miniOrange SSO nga 207.211.214.41 dhe 79.127.224.14 në Bruksel, Belgjikë (VPN ose qendër të dhënash), 102.91.71.83 në Abuja, Nigeri (operator celular), 162.243.116.148 në Secaucus, Shtetet e Bashkuara (cloud ose VPS), 84.201.6.54 në Frankfurt, Gjermani (hosting ose qendër të dhënash) dhe 64.225.25.188 në Clifton, Shtetet e Bashkuara (cloud ose VPS). Përhapja gjeografike sugjeron skanim oportunist sesa një fushatë të synuar, me sulmuesin që qëllon çdo faqe që ka plugin-in e instaluar pa kontrolluar se cili edicion qëndron pas tij. Një provë publike e konceptit për versionet falas ekziston në GitHub; Patchstack tha se nuk do të riprodhonte hapat e shfrytëzimit sepse ato nuk shtojnë asgjë në mbrojtje.

Për këdo që përdor një version të prekur, këshilla e Patchstack është të përditësojë në versionin e rregulluar për edicionin e tij, duke pritur të ngarkojë skedarin e plugin-it me dorë në vend që të klikojë një buton përditësimi. Nëse një përmirësim i menjëhershëm është i pamundur, DigitalOcean publikoi dy rregullime të shpejta qëllimisht të ngushta: një që ndalon plugin-in të pranojë një metodë nënshkrimi HMAC-SHA1, e shtuar menjëherë pas rreshtit 246 të Utilities.php, dhe një që bën kontrollin e nënshkrimit në XMLSecurityKey.php rreshtin 494 të pranojë vetëm një rezultat saktësisht 1. Të dyja synojnë të fitojnë kohë, jo të zëvendësojnë rregullimin e shitësit. Një rregullim i plotë do të kërkonte një kufizim se cilat algoritme nënshkrimi lejohen, heqjen e shtegut të kodit që rikrijon një çelës publik, një bllokim të fortë për çelësat asimetrikë që hyjnë në degën HMAC, dhe forcimin e përgjithshëm të bibliotekës së sigurisë XML të përfshirë. Patchstack gjithashtu rekomandon kontrollimin e regjistrave për sesione administratori të autentikuara që vijnë nga adresa IP jashtë intervaleve tuaja të zakonshme, pasi ai sinjal nuk varet nga asgjë rreth versionit të plugin-it tuaj. Për ekipet që preferojnë të mos menaxhojnë vetë përditësimet e plugin-eve, AEU Hosting ofron hosting të menaxhuar WordPress me rregullimin e trajtuar si pjesë e shërbimit, që është lloji i marrëveshjes që heq një hap manual ngarkimi nga lista juaj e detyrave.

Mësimi më i gjerë që nxjerr Patchstack është se bazat e të dhënave të cenueshmërive janë vetëm aq të mira sa informacioni i versionit që publikojnë shitësit. Kur një slug fsheh shtatë edicione të numëruara në mënyrë të pavarur dhe gjashtë prej tyre rregullohen pa një njoftim publik, bazat e të dhënave, skanerët dhe panelet në rrjedhën e poshtme dështojnë të gjitha së bashku. Patchstack bën një dallim të saktë këtu: një rregull muri zjarri që bllokon modelin e shfrytëzimit nuk interesohet se cilin edicion përdorni, kështu që rregullimi virtual mund t'i mbrojë të shtatë menjëherë, pavarësisht nëse janë të dokumentuar apo jo, ndërsa alarmimi i saktë nuk mundet, sepse funksionon vetëm nëse e di se çfarë keni instaluar. Në këtë rast mbrojtja u shkallëzua; raportimi është ajo që u prish.

Si të Mbroheni

  1. Zbuloni se cilën version të plugin-it miniOrange SAML Single Sign On përdor faqja juaj dhe përditësojeni në versionin e rregulluar të listuar në tabelën e shitësit.
  2. Mos i besoni një paneli WordPress që thotë se gjithçka është e përditësuar këtu: versionet 16.x të prekura nuk shfaqin asnjë njoftim përditësimi, kështu që rregullimi duhet të ngarkohet me dorë.
  3. Kërkojini ofruesit tuaj të hostingut ose zhvilluesit të web-it të shikojë në regjistrat e hyrjes së faqes tuaj për sesione administratori që vijnë nga adresa interneti që nuk i njihni.
  4. Nëse nuk mund të përditësoni menjëherë, kërkojini një zhvilluesi të zbatojë dy rregullimet e vogla emergjente, ose fikeni plugin-in derisa një përditësim të jetë i mundur.
  5. Bëni një kopje rezervë të plotë të faqes tuaj përpara se të ndryshoni ndonjë plugin, në mënyrë që ta riktheni nëse diçka prishet.

Dobësitë & Zgjidhjet

Termat e Shpjeguar

  • SAML Security Assertion Markup Language, një mënyrë e zakonshme që një faqe interneti të pranojë një hyrje që tashmë është kontrolluar nga një shërbim tjetër hyrjeje.
  • Single Sign On Një sistem ku një hyrje e vetme lejon një person të hyjë në disa faqe interneti ose aplikacione të ndryshme pa shtypur një fjalëkalim çdo herë.
  • Identity Provider Shërbimi i jashtëm që konfirmon se kush është një person dhe i thotë faqes së internetit nëse duhet ta lejojë të hyjë.
  • authentication bypass Një defekt që lejon dikë të hyjë në një llogari ose sistem pa provuar se kush është, zakonisht duke anashkaluar kontrollin e hyrjes.
  • CVE Një numër identifikimi publik që i jepet një defekti të njohur sigurie në mënyrë që të gjithë ata që flasin për të të nënkuptojnë të njëjtin.
  • CVSS score Një numër nga 0 në 10 që vlerëson sa serioz është një defekt sigurie, ku 9 ose më shumë do të thotë jashtëzakonisht serioz.
  • plugin Një pjesë shtesë softueri që shton veçori në një faqe WordPress dhe duhet të përditësohet veçmas nga vetë WordPress.
  • virtual patching Bllokimi i një modeli sulmi në nivel rrjeti ose muri zjarri në mënyrë që një defekt i njohur të mos mund të përdoret, pa ndryshuar softuerin në faqe.

Shërbime AEU të lidhura

  • AEU Panel Paneli i kontrollit për hosting-un e menaxhuar