Ako ste od mene primili e-poruku koja upućuje na ovu stranicu, to je zato što se čini da vaše web-mjesto koristi verziju proširenja powermail (proširenje za obrasce za TYPO3 autora in2code, Composer paket in2code/powermail, koje se u vašim datotekama nalazi u typo3conf/ext/powermail/ ili, kod instalacije putem Composera, u vendor/in2code/powermail/) koja spada u zahvaćeni raspon poznatog sigurnosnog propusta. Ova stranica objašnjava u čemu je propust, kako utvrditi odnosi li se na vaše web-mjesto, na koju verziju nadograditi te kako provjeriti je li ga netko već iskoristio protiv vas.

Prije svega, najvažnija činjenica o ovoj obavijesti: verzija u zahvaćenom rasponu sama po sebi ne znači da je vaše web-mjesto izloženo. Dolje opisani propust dolazi do izražaja samo kod obrazaca koji imaju polje označeno kao ime pošiljatelja, a ja izvana ne mogu vidjeti kako su vaši obrasci konfigurirani:

  • Propust se odnosi samo na powermail obrazac koji ima barem jedno polje s označenim potvrdnim okvirom „Ovo polje sadrži ime pošiljatelja” (na engleskom: “This field contains the Name of the sender”, na kartici Prošireno dotičnog polja u TYPO3 backendu). Ako nijedan vaš obrazac ne koristi tu oznaku, ovo vas se ne tiče, čak ni na zahvaćenoj verziji.
  • No, ta je oznaka česta. Standardno polje Ime iz čarobnjaka za obrasce obično je postavlja, a obavijest proizvođača sama tu konfiguraciju naziva „čestom i bliskom zadanoj”. Stoga, molim, provjerite umjesto da pretpostavljate.

Vašu verziju powermaila mogu očitati iz javno dostupne datoteke, ali ne mogu očitati postavke vaših obrazaca, pa je ova obavijest preventivno upozorenje, a ne potvrđeni nalaz o vašem web-mjestu.

Riječ je o ranjivosti CVE-2026-77136 (TYPO3 obavijest TYPO3-EXT-SA-2026-022), neautentificiranom ubacivanju predložaka na poslužiteljskoj strani u obradi pošte proširenja. Zahvaća sve verzije powermaila starije od 10.9.3, sve verzije 11.x i 12.x starije od 12.6.1 i sve verzije 13.x starije od 13.2.1. Ispravljena je u verzijama 10.9.3, 12.6.1 i 13.2.1, koje su sve objavljene 25. kolovoza 2026., po jedna za svaku liniju TYPO3. Ne postoji verzija dovoljno stara da ne bude zahvaćena: slabost je dio izvornog dizajna proširenja, a ne nešto što je stiglo u kasnijoj verziji.

Riječ-dvije o hitnosti, jer ovo je uvjetna obavijest. Ako nijedan vaš obrazac nema polje označeno kao ime pošiljatelja, ažuriranje je redovito održavanje. Ako neki ima, molim vas da ažuriranje tretirate kao prioritet: obavijest proizvođača navodi da se ovaj propust aktivno iskorištava, a u toj konfiguraciji posjetitelj bez ikakvog računa može navesti vaš poslužitelj da izvrši kod predloška po njegovu izboru, što može otkriti vašu konfiguraciju, varijable okruženja i izvorni kod te, ovisno o postavu, dovesti do udaljenog izvršavanja koda.

Ovo je propust proširenja, a ne jezgre TYPO3. Potpuno ažuran TYPO3 vas ne štiti ako je samo proširenje powermail na zahvaćenoj verziji.

Je li ova poruka vjerodostojna?

Da. Ovo je dobronamjerna obavijest u okviru odgovornog razotkrivanja od neovisnog sigurnosnog istraživača. Ne tražim od vas novac, lozinke ni pristup vašem web-mjestu i nisam pokušao provaliti u njega, poslati ijedan vaš obrazac niti mu bilo što slati.

Sve što sam učinio bilo je pregledati javno vidljive datoteke koje vaše web-mjesto poslužuje svakom posjetitelju (na isti način na koji je vaša početna stranica javna) i zabilježiti verziju koju otkrivaju vlastiti resursi proširenja. Izričito nisam poslao nijedan obrazac, nigdje nisam slao sintaksu predložaka i nisam se približio obradi pošte proširenja. Ništa u ovoj provjeri ne dira vaše podatke, vaš backend ni bilo koji privatni dio web-mjesta (više u odjeljku Što sam učinio, a što nisam u nastavku).

Ako želite provjeriti tko sam, pogledajte kontaktne podatke na dnu ove stranice i stranicu O meni.

Zašto je to važno

Powermail gradi kontaktne i upitne obrasce na velikom broju TYPO3 web-mjesta. Kad posjetitelj pošalje obrazac, proširenje šalje e-poruku konfiguriranom primatelju web-mjesta, a ime pošiljatelja u toj poruci popunjava iz onih polja obrasca koja je urednik označio kao polja koja sadrže ime pošiljatelja.

Powermail urednicima dopušta upisivanje malih dijelova TYPO3-ova jezika predložaka Fluid u određene postavke pošte, primjerice kako bi predmet mogao glasiti “Message from {firstname}”. To je namjerna značajka za vrijednosti koje je upisao urednik. U zahvaćenim verzijama, ime pošiljatelja sastavljeno iz unosa samog posjetitelja predavano je istom pogonu predložaka, kao da ga je napisao urednik. Posjetitelj je dakle mogao upisati Fluid sintaksu u polje imena javnog obrasca, a poslužitelj bi je izvršio pri sastavljanju poruke za primatelja.

Iz toga slijede dvije stvari koje vuku u suprotnim smjerovima. Prva je da je ovo važno samo tamo gdje neko polje obrasca doista nosi oznaku imena pošiljatelja; web-mjesto čiji obrasci ne koriste takvo polje nije dohvatljivo kroz ovaj propust. Druga je da tamo gdje oznaka jest postavljena, nije potreban račun, lozinka ni ičija suradnja: obrazac je po dizajnu otvoren javnosti, a jedino što napadač mora učiniti jest poslati ga. Proizvođač ocjenjuje propust kritičnim (CVSS 4.0 ocjena 9.5), a njegova obavijest navodi da se aktivno iskorištava.

Opisujem ovo na razini koja je vlasniku web-mjesta potrebna za djelovanje, i ne dalje. Ne objavljujem pojedinosti koje bi nekome omogućile da propust reproducira i zamolio bih vas da to ne pokušavate protiv vlastitog web-mjesta ni tuđeg. Provjera polja vaših obrazaca i vaše verzije, kako je opisano u nastavku, govori vam sve što trebate da odlučite što učiniti.

Ako je moja e-poruka navela ovaj propust, to znači da verzija koju otkrivaju resursi vašeg web-mjesta spada u zahvaćeni raspon. Nisam testirao je li baš vaše web-mjesto ranjivo i ne mogu vidjeti kako su vaši obrasci građeni. Sve što sam promatrao jest verzija.

Jesam li zahvaćen?

O tome odlučuju dva pitanja, ovim redom.

Prvo: nosi li ijedno polje obrasca oznaku imena pošiljatelja?

To je ključno pitanje i na njega možete odgovoriti samo vi. Provjera vlastitih obrazaca potpuno je sigurna i upravo je to smisao ove stranice.

  1. Prijavite se u TYPO3 backend i otvorite stranicu (ili mapu) na kojoj se nalaze vaši powermail obrasci. Svaki obrazac je zapis s jednom ili više stranica, a svaka stranica sadrži polja.
  2. Otvorite svaki zapis polja i na njegovoj kartici Prošireno potražite potvrdni okvir „Ovo polje sadrži ime pošiljatelja”. Najčešće je označen na polju u koje posjetitelji upisuju svoje ime.
  3. Ako nijedno polje ni na jednom vašem obrascu nema označen taj okvir, ovaj propust ne doseže vaše web-mjesto, čak ni na zahvaćenoj verziji, premda se ažuriranje i dalje isplati kao redovito održavanje.
  4. Ako ga ijedno polje ima označenog, propust vas se tiče i trebali biste ažurirati što prije (vidi Kako se nadograditi). Ako ne možete ažurirati odmah, odznačite taj okvir na svakom polju koje ga ima: to je mjera ublažavanja koju preporučuje sam proizvođač i ona sama po sebi zatvara propust. Cijena je to što se ime pošiljatelja više neće popunjavati u porukama koje obrazac šalje, dok ne ažurirate i ponovno ga označite.

Molim vas, ne pokušavajte reproducirati problem protiv vlastitog web-mjesta ni tuđeg; za odgovor na gornje pitanje to nije potrebno.

Drugo: koju verziju koristite?

Ne morate mi vjerovati na riječ. Imajte na umu da za TYPO3 proširenje ne postoji javna datoteka s verzijom kakva postoji, recimo, za WordPress dodatak, pa se pouzdana očitanja sva obavljaju iznutra, iz vaše instalacije:

Iz TYPO3 backenda (mjerodavno): idite na Administratorski alati, zatim Proširenja. Popis instaliranih proširenja prikazuje verziju svakoga; pronađite powermail. (Kod instalacije temeljene na Composeru popis je samo za čitanje, ali i dalje prikazuje instaliranu verziju.)

Iz naredbenog retka, kod instalacije putem Composera: u direktoriju projekta pokrenite composer show in2code/powermail. Redak versions je instalirana verzija.

Iz datoteka: otvorite ext_emconf.php u mapi proširenja (typo3conf/ext/powermail/ kod klasične instalacije, vendor/in2code/powermail/ kod instalacije putem Composera) i potražite stavku 'version' blizu početka.

Zatim primijenite ovo pravilo, imajući na umu da se verzije uspoređuju numerički, a ne abecedno (10.9.2 je novija od 10.8.2, a 13.2.1 je novija od 13.2.0):

  • 13.0.0 do 13.2.0: potencijalno zahvaćeno, ovisno o gornjem pitanju o oznaci. Nadogradite na 13.2.1 ili noviju.
  • 11.0.0 do 12.6.0: potencijalno zahvaćeno, ovisno o gornjem pitanju o oznaci. Nadogradite na 12.6.1 ili noviju. To uključuje svaku verziju 11.x: ne postoji zaseban ispravak za 11.x, a 12.6.1 radi na istim verzijama TYPO3 (12.2 do 12.5) kao i 11.x, pa je riječ o običnoj nadogradnji proširenja bez potrebe za nadogradnjom TYPO3.
  • 10.9.2 i sve starije: potencijalno zahvaćeno, ovisno o gornjem pitanju o oznaci. Ako ste na 9.x ili 10.x (TYPO3 11.5), nadogradite na 10.9.3 ili noviju. Ako ste na 7.x ili 8.x (TYPO3 8.7 do 10.4), pogledajte sljedeći odlomak.
  • 13.2.1, 12.6.1 ili 10.9.3 i novije unutar svoje linije: što se ovog propusta tiče, već ispravljeno.

Ako ste na powermailu 7.x ili 8.x, ne postoji ispravljena verzija koja radi na vašoj verziji TYPO3: 10.9.3 zahtijeva TYPO3 11.5. Za ta web-mjesta uputa proizvođača je gornja mjera ublažavanja, dakle odznačiti „Ovo polje sadrži ime pošiljatelja” na svakom polju koje ga ima, i planirati nadogradnju TYPO3 na podržanu liniju, gdje je dostupna ispravljena verzija powermaila. Verzije TYPO3 na kojima te generacije rade i same su odavno bez podrške, što je drugi razlog za planiranje tog koraka.

Jedna provjera koja ne funkcionira, pa se na nju nemojte oslanjati. Pogledate li izvorni kod svoje stranice, vidjet ćete resurse proširenja s dugim pridodanim brojem, primjerice .../JavaScript/Powermail/Form.min.js?1785752971 (ili ugrađenim u naziv datoteke kao Form.min.1785752971.js). Taj broj je vremenski žig datoteke koji TYPO3 dodaje radi poništavanja predmemorije, a ne verzija, i iz njega verziju ne možete iščitati okom. Slučajno je upravo to ono što je moja provjera koristila, na način koji objašnjavam niže, ali očitanja gore su ona kojima treba vjerovati.

Kako se nadograditi

Ispravljene verzije objavljene su u TYPO3 Extension Repositoryju (TER), na Packagistu i na GitHubu, pa je riječ o uobičajenoj nadogradnji proširenja. Najprije napravite sigurnosnu kopiju, a zatim nadogradite mehanizmom koji odgovara načinu instalacije vašeg web-mjesta:

  1. Napravite sigurnosnu kopiju web-mjesta (datoteke i bazu podataka) prije izmjena. Većina pružatelja hostinga nudi sigurnosne kopije jednim klikom.
  2. Instalacija putem Composera (većina web-mjesta na TYPO3 12 i 13 te mnoga na 11): u direktoriju projekta pokrenite ažuriranje zahtjeva za svoju liniju, primjerice composer require "in2code/powermail:^13.2.1" na TYPO3 13, "in2code/powermail:^12.6.1" na TYPO3 12, ili "in2code/powermail:^10.9.3" na TYPO3 11.5. Zatim izvedite svoje uobičajene korake nakon nadogradnje (vendor/bin/typo3 extension:setup na TYPO3 12 i 13, ili ekvivalent koji koristi vaše postavljanje) i ispraznite predmemorije.
  3. Klasična instalacija (bez Composera): u TYPO3 backendu idite na Administratorski alati, zatim Proširenja, prebacite padajući izbornik na Dohvati proširenja, potražite powermail i nadogradite ga na ispravljenu verziju za svoju liniju. Ako vaše web-mjesto ne može doseći TER, obavijest proizvođača izravno povezuje arhive izdanja (vidi Izvori); prenesite arhivu putem Proširenja i gumba za prijenos. Nakon toga ispraznite predmemorije.
  4. Nakon nadogradnje potvrdite novu verziju (13.2.1, 12.6.1 ili 10.9.3, ovisno o vašoj liniji) gornjim koracima i probno pošaljite jedan od vlastitih obrazaca kako biste provjerili da poruke i dalje stižu normalno.

Dok ste već tu, vrijedi provjeriti da su i sam TYPO3 i vaša ostala proširenja ažurni, jer isto načelo vrijedi za sve njih.

Nakon ažuriranja: je li ovo već iskorišteno protiv vas?

Ažuriranje zatvara propust i za mnoga web-mjesta to je cijeli zadatak. Ova stranica je preventivna obavijest, a ne izvještaj o incidentu: nemam uvid u to je li se na vašem web-mjestu nešto dogodilo i nisam provjeravao.

No budući da proizvođač izvještava da je ovaj propust iskorištavan u praksi, isplati se jedan naknadni korak, uvjetovan istim pitanjem o oznaci. Ako je vaše web-mjesto imalo obrazac s poljem imena pošiljatelja dok je radila zahvaćena verzija, tada je bilo moguće da je netko kroz taj obrazac izvršio kod predloška na vašem poslužitelju, a ažuriranje ne poništava ništa što je već moglo biti pročitano. Obavijest proizvođača daje jednostavnu samoprovjeru, a njezino izvođenje ne košta ništa:

  • Pregledajte imena pošiljatelja koja su vaši obrasci primili. Provjerite poruke koje su vam obrasci slali, kao i pohranjene unose u TYPO3 backendu (powermailov vlastiti modul Mails) ili u tablici baze podataka tx_powermail_domain_model_mail, tražeći imena pošiljatelja koja sadrže Fluid sintaksu poput f:, v: ili {namespace. Ime stvarnog posjetitelja nikad ne izgleda tako.
  • Ako ih pronađete, uputa proizvođača je da sustav smatrate potencijalno kompromitiranim. Budući da ovaj propust može otkriti konfiguraciju i varijable okruženja, razumna reakcija u tom slučaju je zamijeniti tajne koje vaše web-mjesto drži: lozinku baze podataka, TYPO3-ov encryptionKey, lozinku Install Toola te sve API ključeve ili vjerodajnice pohranjene u vašoj konfiguraciji ili okruženju. Pregledajte backend korisnike tražeći račune koje ne prepoznajete, potražite neočekivane datoteke na poslužitelju, a ako vaša organizacija ima tim za IT sigurnost ili nacionalni CERT, uključite ih.
  • Ako ne pronađete ništa, a osobito ako nijedno polje od početka nije nosilo oznaku, samo ažuriranje je dovoljno.

Da okvir bude jasan: ovo je samoprovjera, a ne izjava da je vaše web-mjesto napadnuto. Ova se obavijest temelji na otisku verzije, a ne na bilo kakvom dokazu incidenta.

Što sam učinio, a što nisam

Da budem potpuno transparentan o provjeri iza moje e-poruke: čitao sam samo datoteke koje vaše web-mjesto ionako poslužuje svakom posjetitelju, konkretno vašu početnu stranicu i adrese powermail resursa upisane u nju. Nisam pristupao vašem TYPO3 backendu, bazi podataka, konfiguraciji obrazaca ni bilo kojem privatnom dijelu web-mjesta.

Osobito, nikad nisam poslao nijedan vaš obrazac i nikad nisam slao sintaksu predložaka na vaše web-mjesto ni na tuđe. Ništa nije poslano, testirano ni iskorišteno. To ovdje znači više nego na većini ovih stranica, jer je slanje obrasca upravo radnja na koju se ovaj propust odnosi; „nisam to dirao” stoga je cijela razlika između razotkrivanja i provale.

Kako je verzija identificirana, budući da TYPO3 proširenje ne objavljuje datoteku s verzijom: TYPO3 URL-u svakog resursa pridodaje vrijeme njegove posljednje izmjene, kao u Form.min.js?1785752971. Na web-mjestu instaliranom Composerom to je vrijeme trenutak objavljivanja izdanja, jer ga Composer čuva pri raspakiravanju paketa, pa broj točno identificira izdanje: svako izdanje powermaila ima svoj. Usporedio sam broj koji vaše web-mjesto poslužuje s objavljenim vremenima izdanja i pisao vam samo pri točnom podudaranju. Sve ostalo, a to je ono što tipično poslužuje web-mjesto instalirano kroz Extension Manager ili postavljeno kopiranjem datoteka, čita se kao „nepoznato” i takvim web-mjestima uopće nisam pisao.

Ta metoda ima jednu poznatu slijepu točku i griješi na strani opreza. Ispravci mijenjaju samo PHP kod proširenja, a ne njegove javne resurse. Dakle, ako je vaše web-mjesto zakrpano zamjenom samo koda (ručna zakrpa umjesto potpune nadogradnje), njegovi resursi i dalje nose vremenski žig stare verzije i čita se kao zahvaćena verzija iako je zaštićeno. Ako ste to već sanirali drugim sredstvima, nikakva radnja nije potrebna, i ispričavam se na smetnji.

Također namjerno ne objavljujem pojedinosti koje bi nekome pomogle da iskoristi ovaj propust. Gornji opis staje na razini koja je vlasniku web-mjesta potrebna i ne povezujem nikakav proof-of-concept kod.

Ovo je opažanje temeljeno na verziji: resursi vašeg web-mjesta otkrivaju verziju u zahvaćenom rasponu. To nije tvrdnja da je vaše web-mjesto bilo ranjivo u trenutku moje provjere. Budući da propust ovisi o postavci polja obrasca koju ne mogu vidjeti, web-mjesto u tom rasponu možda uopće nije izloženo, a web-mjesto u tom rasponu može biti zasebno zaštićeno drugim sredstvima, poput vatrozida za web-aplikacije.

Nemam webmastera / zapeo sam

Ako niste osoba koja održava web-mjesto, proslijedite ovu stranicu onome tko to radi (vašem web-developeru, agenciji ili pružatelju hostinga). Brzo će prepoznati gornje korake.

Ako web-mjesto održavate sami i zapnete, rado ću vas besplatno uputiti u pravom smjeru. Javite se putem kontaktnih podataka u nastavku.

Kontakt

Evan Harris, sigurnosni istraživač

Javljam se povodom ovakvih pitanja isključivo kako bih pomogao operaterima da osiguraju svoja web-mjesta. Ako ne želite da vas ponovno kontaktiram, samo mi recite i poštovat ću to.

Izvori

Službene objave i praćenje

Proizvođač / proširenje