A fost lansată versiunea principală a nginx 1.25.4, în cadrul căreia continuă dezvoltarea unor noi funcționalități. În ramura stabilă 1.24.x, care este menținută în paralel, se fac doar modificări legate de corectarea erorilor grave și a vulnerabilităților. În continuare, pe baza ramurii principale 1.25.x va fi formată o ramură stabilă 1.26. Codul proiectului este scris în limbajul C și este distribuit sub licența BSD.
În această nouă versiune au fost remediate două vulnerabilități în modulul experimental http_v3_module (dezactivat implicit), care asigură suport pentru protocolul HTTP/3, utilizând protocolul QUIC ca transport pentru HTTP/2. Prima vulnerabilitate (CVE-2024-24989) este cauzată de dereferința unui pointer nul, iar a doua (CVE-2024-24990) de accesarea memoriei după eliberare (CVE-2024-24990). În lista de modificări se afirmă că ambele vulnerabilități ar putea fi susceptibile doar la o terminare neașteptată a procesului de lucru în timpul procesării sesiunilor QUIC configurate special, dar în cazul celei de-a doua vulnerabilități, analiza unor consecințe mai grave pare să nu fi fost efectuată.
Pe lângă remedierea vulnerabilităților, noua versiune conține, de asemenea, îmbunătățiri generale și corecții în implementarea HTTP/3, precum și corectarea erorilor legate de scurgerile de socket-uri, erorile de socket-uri sau terminarea neașteptată în utilizarea AIO. A fost rezolvată problema închiderii premature a conexiunilor cu operații AIO nefinalizate în timpul închiderii moi a vechilor procese de lucru. S-a eliminat terminarea neașteptată la redirecționarea erorilor cu codul 415 prin directiva error_page, în cazul utilizării SSL-proxy-ului și a directivei image_filter.
În plus, cu câteva zile în urmă, a avut loc lansarea njs 0.8.4, interpretorul pentru limbajul JavaScript pentru server web nginx. Interpretorul njs implementează standardele ECMAScript și permite extinderea capacităților nginx în gestionarea cererilor prin scripturi în configurație. Scripturile pot fi folosite în fișierul de configurație pentru a defini logica extinsă de gestionare a cererilor, formarea configurației, generarea dinamică a răspunsului, modificarea cererii/răspunsului sau crearea rapidă a unei simulări pentru a rezolva problemele din aplicațiile web. În noua versiune au fost notate doar corecții de erori.
Sursa: opennet.ro
