Notificare de securitate powermail
Dacă ați primit un e-mail de la mine care vă trimite la această pagină, este pentru că site-ul
dumneavoastră pare să ruleze o versiune a powermail (extensia de formulare pentru TYPO3 de
in2code, pachetul Composer in2code/powermail, care se află în fișierele dumneavoastră în
typo3conf/ext/powermail/ sau, pe o instalare Composer, în vendor/in2code/powermail/) care se
încadrează în intervalul afectat de o problemă de securitate cunoscută. Această pagină explică
care este problema, cum să stabiliți dacă se aplică site-ului dumneavoastră, la ce versiune să
actualizați și cum să verificați dacă cineva a folosit-o deja împotriva dumneavoastră.
Înainte de orice altceva, cel mai important aspect al acestei notificări: o versiune din intervalul afectat nu înseamnă prin ea însăși că site-ul dumneavoastră este expus. Problema descrisă mai jos intervine doar la formularele care au un câmp marcat ca numele expeditorului, iar eu nu pot vedea din exterior cum sunt configurate formularele dumneavoastră:
- Problema atinge doar un formular powermail care are cel puțin un câmp cu caseta „Acest câmp conține numele expeditorului” (în engleză: “This field contains the Name of the sender”, în fila Extins a câmpului, în backend-ul TYPO3) bifată. Dacă niciunul dintre formularele dumneavoastră nu folosește acest marcaj, aceasta nu vă privește, chiar și pe o versiune afectată.
- Acestea fiind spuse, marcajul este frecvent. Câmpul standard Nume al asistentului de formulare îl setează de obicei, iar notificarea producătorului califică ea însăși configurația drept „frecventă și apropiată de cea implicită”. Așadar, vă rog să verificați, nu să presupuneți.
Pot citi versiunea dumneavoastră de powermail dintr-un fișier public, dar nu pot citi setările formularelor dumneavoastră, așa că această notificare este un avertisment preventiv, nu o constatare confirmată despre site-ul dumneavoastră.
Problema este CVE-2026-77136 (notificarea TYPO3 TYPO3-EXT-SA-2026-022), o injecție de șabloane pe partea de server, fără autentificare, în gestionarea e-mailurilor extensiei. Afectează toate versiunile powermail anterioare 10.9.3, toate versiunile 11.x și 12.x anterioare 12.6.1 și toate versiunile 13.x anterioare 13.2.1. Este corectată în 10.9.3, 12.6.1 și 13.2.1, toate publicate pe 25 august 2026, câte una pentru fiecare linie TYPO3. Nu există nicio versiune suficient de veche încât să nu fie afectată: slăbiciunea face parte din proiectarea originală a extensiei, nu este ceva apărut într-o versiune ulterioară.
Un cuvânt despre urgență, pentru că aceasta este o notificare condiționată. Dacă niciunul dintre formularele dumneavoastră nu are un câmp marcat ca numele expeditorului, actualizarea este întreținere obișnuită. Dacă unul dintre ele are, vă rog să tratați actualizarea ca pe o prioritate: notificarea producătorului raportează că această problemă este exploatată activ, iar în acea configurație un vizitator fără niciun cont poate determina serverul dumneavoastră să evalueze cod de șablon la alegerea sa, ceea ce poate dezvălui configurația, variabilele de mediu și codul sursă și, în funcție de instalare, poate duce la execuție de cod de la distanță.
Aceasta este o defecțiune a unei extensii, nu a nucleului TYPO3. Un TYPO3 complet actualizat nu vă protejează dacă extensia powermail însăși este pe o versiune afectată.
Este legitim acest mesaj?
Da. Aceasta este o notificare de bună-credință, în cadrul divulgării responsabile, din partea unui cercetător independent în securitate. Nu vă cer bani, parole sau acces la site-ul dumneavoastră și nu am încercat să pătrund în el, să trimit vreunul dintre formularele dumneavoastră sau să îi trimit ceva.
Tot ce am făcut a fost să mă uit la fișiere vizibile public pe care site-ul dumneavoastră le servește fiecărui vizitator (la fel cum pagina dumneavoastră principală este publică) și să notez versiunea pe care o identifică resursele proprii ale extensiei. În mod specific, nu am trimis niciun formular, nu am trimis sintaxă de șablon nicăieri și nu m-am apropiat de gestionarea e-mailurilor extensiei. Nimic din această verificare nu atinge datele dumneavoastră, backend-ul sau vreo parte privată a site-ului (mai multe detalii la Ce am făcut și ce nu am făcut mai jos).
Dacă doriți să verificați cine sunt, consultați datele de contact din partea de jos a acestei pagini și pagina Despre.
De ce contează
Powermail construiește formularele de contact și de solicitări de pe foarte multe site-uri TYPO3. Când un vizitator trimite un formular, extensia trimite un e-mail destinatarului configurat al site-ului și completează numele expeditorului din acel e-mail pe baza câmpurilor de formular pe care redactorul le-a marcat ca fiind cele care conțin numele expeditorului.
Powermail le permite redactorilor să scrie mici fragmente din limbajul de șabloane Fluid al TYPO3 în anumite setări ale e-mailurilor, de exemplu pentru ca un subiect să poată afișa “Message from {firstname}”. Aceasta este o funcționalitate intenționată pentru valori introduse de un redactor. În versiunile afectate, numele expeditorului asamblat din datele introduse chiar de vizitator era predat aceluiași motor de șabloane, ca și cum l-ar fi scris un redactor. Astfel, un vizitator putea tasta sintaxă Fluid în câmpul de nume al unui formular public, iar serverul o evalua în timp ce construia e-mailul pentru destinatar.
De aici decurg două lucruri, care trag în direcții opuse. Primul: acest lucru contează doar acolo unde un câmp de formular poartă într-adevăr marcajul numelui expeditorului; un site ale cărui formulare nu folosesc un astfel de câmp nu poate fi atins prin această problemă. Al doilea: acolo unde marcajul este setat, nu este nevoie de cont, de parolă sau de cooperarea nimănui: formularul este deschis publicului prin concepție, iar singurul lucru pe care atacatorul trebuie să îl facă este să îl trimită. Producătorul evaluează problema drept critică (un scor CVSS 4.0 de 9.5), iar notificarea sa spune că este exploatată activ.
Descriu acest lucru la nivelul de care are nevoie un proprietar de site pentru a acționa, și nu mai departe. Nu public detaliile care i-ar permite cuiva să o reproducă și v-aș ruga să nu încercați împotriva propriului site sau al altcuiva. Verificarea câmpurilor formularelor și a versiunii dumneavoastră, așa cum este descrisă mai jos, vă spune tot ce aveți nevoie pentru a decide ce să faceți.
Dacă e-mailul meu a citat această problemă, înseamnă că versiunea pe care o identifică resursele site-ului dumneavoastră se încadrează în intervalul afectat. Nu am testat dacă site-ul dumneavoastră în particular este exploatabil și nu pot vedea cum sunt construite formularele dumneavoastră. Tot ce am observat este versiunea.
Sunt afectat?
Două întrebări decid, în această ordine.
Prima: poartă vreun câmp de formular marcajul numelui expeditorului?
Aceasta este întrebarea decisivă și doar dumneavoastră puteți răspunde la ea. Verificarea propriilor formulare este complet sigură și reprezintă chiar scopul acestei pagini.
- Autentificați-vă în backend-ul TYPO3 și deschideți pagina (sau folderul) care conține formularele dumneavoastră powermail. Fiecare formular este o înregistrare cu una sau mai multe pagini, iar fiecare pagină conține câmpurile.
- Deschideți fiecare înregistrare de câmp și căutați în fila sa Extins caseta „Acest câmp conține numele expeditorului”. Cel mai adesea este bifată la câmpul în care vizitatorii își introduc numele.
- Dacă niciun câmp de pe niciunul dintre formularele dumneavoastră nu are această casetă bifată, problema nu atinge site-ul dumneavoastră, chiar și pe o versiune afectată, deși actualizarea merită în continuare făcută ca întreținere obișnuită.
- Dacă oricare câmp o are bifată, problema vă privește și ar trebui să actualizați cât mai curând (vedeți Cum se actualizează). Dacă nu puteți actualiza imediat, debifați acea casetă la fiecare câmp care o are: aceasta este măsura de atenuare recomandată chiar de producător și închide problema de una singură. Costul este că numele expeditorului nu va mai fi completat în e-mailurile trimise de formular, până când actualizați și o bifați din nou.
Vă rog să nu încercați să reproduceți problema împotriva propriului site sau al altcuiva; nu este nevoie pentru a răspunde la întrebarea de mai sus.
A doua: ce versiune rulați?
Nu trebuie să mă credeți pe cuvânt. Rețineți că nu există un fișier public de versiune pentru o extensie TYPO3, așa cum există, de pildă, pentru un plugin WordPress, deci citirile de încredere se fac toate din interiorul instalării dumneavoastră:
Din backend-ul TYPO3 (sursa de referință): mergeți la Instrumente de administrare, apoi Extensii. Lista extensiilor instalate arată versiunea fiecăreia; găsiți powermail. (Pe o instalare bazată pe Composer lista este doar în citire, dar tot arată versiunea instalată.)
Din linia de comandă, pe o instalare Composer: rulați composer show in2code/powermail în
directorul proiectului dumneavoastră. Linia versions este versiunea instalată.
Din fișiere: deschideți ext_emconf.php din folderul extensiei (typo3conf/ext/powermail/
pe o instalare clasică, vendor/in2code/powermail/ pe una Composer) și căutați intrarea
'version' aproape de început.
Apoi aplicați această regulă, reținând că versiunile se compară numeric, nu alfabetic (10.9.2 este mai nouă decât 10.8.2, iar 13.2.1 este mai nouă decât 13.2.0):
- 13.0.0 până la 13.2.0: potențial afectată, sub rezerva întrebării despre marcaj de mai sus. Actualizați la 13.2.1 sau mai nouă.
- 11.0.0 până la 12.6.0: potențial afectată, sub rezerva întrebării despre marcaj de mai sus. Actualizați la 12.6.1 sau mai nouă. Aceasta include fiecare versiune 11.x: nu există o corecție separată pentru 11.x, iar 12.6.1 rulează pe aceleași versiuni TYPO3 (12.2 până la 12.5) ca și 11.x, deci este o simplă actualizare de extensie, fără a fi nevoie de o actualizare a TYPO3.
- 10.9.2 și tot ce este mai vechi: potențial afectată, sub rezerva întrebării despre marcaj de mai sus. Dacă sunteți pe 9.x sau 10.x (TYPO3 11.5), actualizați la 10.9.3 sau mai nouă. Dacă sunteți pe 7.x sau 8.x (TYPO3 8.7 până la 10.4), vedeți paragraful următor.
- 13.2.1, 12.6.1 sau 10.9.3 și mai noi în cadrul liniei lor: deja corectat în ceea ce privește această problemă.
Dacă sunteți pe powermail 7.x sau 8.x, nu există o versiune corectată care să ruleze pe versiunea dumneavoastră de TYPO3: 10.9.3 necesită TYPO3 11.5. Pentru aceste site-uri, instrucțiunea producătorului este măsura de atenuare de mai sus, debifați „Acest câmp conține numele expeditorului” la fiecare câmp care o are, și planificarea unei actualizări TYPO3 la o linie suportată, unde este disponibilă o versiune corectată de powermail. Versiunile TYPO3 pe care rulează acele generații sunt ele însele de mult în afara suportului, ceea ce este un al doilea motiv pentru a planifica această trecere.
O verificare care nu funcționează, deci vă rog să nu vă bazați pe ea. Dacă vă uitați la codul
sursă al paginii, veți vedea resursele extensiei cu un număr lung atașat, de exemplu
.../JavaScript/Powermail/Form.min.js?1785752971 (sau încorporat în numele fișierului ca
Form.min.1785752971.js). Acel număr este un marcaj temporal de fișier pe care TYPO3 îl atașează
pentru invalidarea cache-ului, nu o versiune, și nu puteți citi o versiune din el cu ochiul liber.
Se întâmplă să fie exact ceea ce a folosit verificarea mea, într-un mod pe care îl explic mai jos,
dar citirile de mai sus sunt cele în care să aveți încredere.
Cum se actualizează
Versiunile corectate sunt publicate în TYPO3 Extension Repository (TER), pe Packagist și pe GitHub, deci este o actualizare de extensie obișnuită. Faceți mai întâi o copie de siguranță, apoi actualizați prin mecanismul care corespunde modului în care a fost instalat site-ul dumneavoastră:
- Faceți o copie de siguranță a site-ului (fișiere și baza de date) înainte de a face modificări. Majoritatea furnizorilor de găzduire oferă copii de siguranță cu un singur clic.
- Instalare Composer (majoritatea site-urilor pe TYPO3 12 și 13 și multe pe 11): în
directorul proiectului, rulați actualizarea cerinței pentru linia dumneavoastră, de exemplu
composer require "in2code/powermail:^13.2.1"pe TYPO3 13,"in2code/powermail:^12.6.1"pe TYPO3 12 sau"in2code/powermail:^10.9.3"pe TYPO3 11.5. Apoi rulați pașii dumneavoastră obișnuiți de după actualizare (vendor/bin/typo3 extension:setuppe TYPO3 12 și 13, sau echivalentul folosit de instalarea dumneavoastră) și goliți cache-urile. - Instalare clasică (fără Composer): în backend-ul TYPO3 mergeți la Instrumente de administrare, apoi Extensii, comutați lista derulantă pe Obținere extensii, căutați powermail și actualizați-l la versiunea corectată pentru linia dumneavoastră. Dacă site-ul dumneavoastră nu poate accesa TER, notificarea producătorului oferă legături directe către arhivele versiunilor (vedeți Referințe); încărcați arhiva prin Extensii și butonul de încărcare. Goliți apoi cache-urile.
- După actualizare, confirmați noua versiune (13.2.1, 12.6.1 sau 10.9.3, oricare corespunde liniei dumneavoastră) folosind pașii de mai sus și trimiteți unul dintre propriile formulare ca test, pentru a verifica dacă e-mailurile sosesc în continuare normal.
Cât timp sunteți acolo, merită să confirmați că TYPO3 însuși și celelalte extensii ale dumneavoastră sunt la zi, deoarece același principiu li se aplică tuturor.
După actualizare: a fost aceasta deja folosită împotriva dumneavoastră?
Actualizarea închide problema și, pentru multe site-uri, aceasta este întreaga sarcină. Această pagină este o notificare preventivă, nu un raport de incident: nu am nicio vizibilitate asupra a ceea ce s-a întâmplat pe site-ul dumneavoastră și nu m-am uitat.
Dar pentru că producătorul raportează că această problemă a fost exploatată în practică, un pas de urmărire merită făcut, iar el este condiționat de aceeași întrebare despre marcaj. Dacă site-ul dumneavoastră a avut un formular cu un câmp de nume al expeditorului în timp ce rula o versiune afectată, atunci a fost posibil ca cineva să fi rulat cod de șablon pe serverul dumneavoastră prin acel formular, iar actualizarea nu anulează nimic din ce ar fi putut fi deja citit. Notificarea producătorului oferă o autoverificare simplă, iar rularea ei nu costă nimic:
- Uitați-vă la numele de expeditor pe care le-au primit formularele dumneavoastră. Verificați
e-mailurile pe care formularele vi le-au trimis și trimiterile stocate în backend-ul TYPO3
(modulul propriu Mails al powermail) sau în tabelul bazei de date
tx_powermail_domain_model_mail, căutând nume de expeditor care conțin sintaxă Fluid precumf:,v:sau{namespace. Numele unui vizitator real nu arată niciodată așa. - Dacă găsiți vreunul, îndrumarea producătorului este să tratați sistemul ca potențial
compromis. Deoarece această problemă poate expune configurația și variabilele de mediu,
răspunsul rezonabil în acest caz este să rotiți secretele pe care le deține site-ul
dumneavoastră: parola bazei de date,
encryptionKeyal TYPO3, parola Install Tool și orice chei API sau acreditări stocate în configurație sau în mediu. Treceți în revistă utilizatorii backend-ului pentru conturi pe care nu le recunoașteți, căutați fișiere neașteptate pe server și, dacă organizația dumneavoastră are o echipă de securitate IT sau un CERT național, implicați-i. - Dacă nu găsiți niciunul, și mai ales dacă niciun câmp nu purta marcajul de la bun început, actualizarea singură este suficientă.
Pentru a fi clar în privința încadrării: aceasta este o autoverificare, nu o declarație că site-ul dumneavoastră a fost atacat. Această notificare se bazează pe o amprentă de versiune, nu pe vreo dovadă a unui incident.
Ce am făcut și ce nu am făcut
Pentru a fi pe deplin transparent în privința verificării din spatele e-mailului meu: am citit doar fișiere pe care site-ul dumneavoastră le servește deja fiecărui vizitator, mai exact pagina dumneavoastră principală și adresele resurselor powermail înscrise în ea. Nu am accesat backend-ul dumneavoastră TYPO3, baza de date, configurația formularelor sau vreo parte privată a site-ului.
În particular, nu am trimis niciodată vreunul dintre formularele dumneavoastră și nu am trimis niciodată sintaxă de șablon către site-ul dumneavoastră sau al altcuiva. Nimic nu a fost trimis, testat sau exploatat. Acest lucru contează aici mai mult decât pe majoritatea acestor pagini, pentru că trimiterea unui formular este exact acțiunea pe care o privește această problemă, așa că „nu m-am atins de el” este toată diferența dintre o divulgare și o intruziune.
Cum a fost identificată versiunea, dat fiind că o extensie TYPO3 nu publică niciun fișier de
versiune: TYPO3 atașează la URL-ul fiecărei resurse ora ultimei sale modificări, ca în
Form.min.js?1785752971. Pe un site instalat cu Composer, acea oră este momentul publicării
versiunii, pentru că Composer o păstrează când despachetează pachetul, deci numărul identifică
versiunea exact: fiecare versiune powermail îl are pe al său. Am comparat numărul pe care îl
servește site-ul dumneavoastră cu orele de publicare cunoscute și v-am scris doar la o potrivire
exactă. Orice altceva, adică ceea ce servește de obicei un site instalat prin Extension
Manager sau desfășurat prin copierea fișierelor, se citește ca „necunoscut”, iar acelor site-uri
nu le-am scris deloc.
Metoda are un punct orb cunoscut și greșește în direcția precauției. Corecțiile schimbă doar codul PHP al extensiei, nu resursele sale publice. Deci, dacă site-ul dumneavoastră a fost reparat prin înlocuirea doar a codului (un petic manual în loc de o actualizare completă), resursele sale poartă încă marcajul temporal al versiunii vechi și se citește ca o versiune afectată, deși este protejat. Dacă ați remediat deja problema prin alte mijloace, nu este necesară nicio acțiune și îmi cer scuze pentru deranj.
De asemenea, în mod deliberat nu public detaliile care ar ajuta pe cineva să exploateze această problemă. Descrierea de mai sus se oprește la nivelul de care are nevoie un proprietar de site și nu pun legătură către niciun cod demonstrativ.
Aceasta este o observație bazată pe versiune: resursele site-ului dumneavoastră identifică o versiune din intervalul afectat. Nu este o afirmație că site-ul dumneavoastră era exploatabil în momentul verificării mele. Deoarece problema depinde de o setare a unui câmp de formular pe care nu o pot vedea, un site din acel interval poate foarte bine să nu fie deloc expus, iar un site din acel interval poate fi protejat separat prin alte mijloace, cum ar fi un firewall pentru aplicații web.
Nu am webmaster / m-am blocat
Dacă nu sunteți persoana care întreține site-ul, vă rog să transmiteți această pagină celui care o face (dezvoltatorul dumneavoastră web, agenția sau furnizorul de găzduire). Vor recunoaște rapid pașii de mai sus.
Dacă întrețineți site-ul singur și v-ați blocat, vă îndrum cu plăcere în direcția potrivită, fără niciun cost. Contactați-mă folosind datele de contact de mai jos.
Contact
Evan Harris, cercetător în securitate
- Email: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Vă contactez în legătură cu astfel de probleme pur și simplu pentru a ajuta operatorii să își securizeze site-urile. Dacă preferați să nu mai fiți contactat din nou, spuneți-mi și voi respecta această dorință.
Referințe
Anunțuri oficiale și urmărire
- TYPO3-EXT-SA-2026-022, notificarea producătorului (cu legături directe de descărcare pentru 10.9.3, 12.6.1 și 13.2.1)
- Fișa NVD (CVE-2026-77136)
Producător / extensie