• Nginx 1.31 släpps med forward proxy-stöd och flera säkerhetsfixar

    Nginx är en av internets viktigaste byggstenar. Den används för att leverera webbsidor, fördela trafik mellan servrar och fungera som mellanhand mellan användare och webbapplikationer. Med Nginx 1.31 tar projektet ett nytt steg: webbservern får stöd för HTTP forward proxy, samtidigt som flera säkerhetshål i moderna webbprotokoll som HTTP/2 och HTTP/3 täpps till.

    För de flesta internetanvändare är Nginx osynligt. Ändå är det ofta just Nginx som står mellan webbläsaren och den webbplats man besöker. Programmet fungerar som en effektiv trafikdirigent: det tar emot förfrågningar, skickar dem vidare till rätt server och ser till att svaren kommer tillbaka snabbt.

    Nginx har länge varit känt som webbserver och reverse proxy. En reverse proxy står framför en eller flera servrar och tar emot trafik från internet. Den kan till exempel skicka besökare vidare till rätt webbserver, avlasta systemet eller hantera krypterade HTTPS-anslutningar.

    Med Nginx 1.31 introduceras en funktion som gör att programmet även kan användas på ett annat sätt: som HTTP forward proxy.

    Vad är en forward proxy?

    En forward proxy fungerar från andra hållet jämfört med en reverse proxy. I stället för att skydda och styra trafiken in till en webbplats används den av klienter som vill nå ut till internet.

    Man kan likna det vid en reception. I stället för att varje dator kontaktar webben direkt skickar den sin begäran till proxyn. Proxyn gör sedan själva kontakten med omvärlden och skickar tillbaka svaret.

    Detta kan användas för att:

    samla internettrafik via en central punkt
    kräva inloggning innan trafik släpps vidare
    logga eller styra åtkomst
    skapa kontrollerade miljöer för företag, skolor eller labb

    Den nya modulen ngx_http_tunnel_module gör det möjligt för Nginx att hantera sådan trafik via CONNECT-metoden. CONNECT används ofta när HTTPS-trafik ska tunnlas genom en proxy.

    Det betyder att Nginx nu får en mer flexibel roll. Från att främst ha varit en servernära komponent kan den även användas som kontrollerad mellanhand för klienttrafik.

    Inloggning till proxyn

    En viktig del av den nya funktionen är stöd för proxyautentisering. Det innebär att användaren kan behöva logga in innan proxyn tillåter trafik.

    I Nginx 1.31 kan detta göras med direktiv som:

    auth_basic
    satisfy
    auth_delay

    För en administratör betyder det att forward proxy-funktionen inte behöver vara helt öppen. Det är viktigt, eftersom en öppen proxy snabbt kan missbrukas för anonym trafik, spam, attacker eller kringgående av nätverksregler.

    Med autentisering kan proxyn i stället användas i mer kontrollerade miljöer där bara godkända användare får tillgång.

    Smartare lastbalansering med least_time

    En annan nyhet i Nginx 1.31 är direktivet least_time i upstream-blocket. Det låter Nginx välja backend-server baserat på svarstid.

    Traditionell lastbalansering kan exempelvis bygga på att skicka varannan förfrågan till server A och varannan till server B. Det fungerar i enkla miljöer, men tar inte alltid hänsyn till hur servrarna faktiskt mår.

    Om en server är långsam, hårt belastad eller har problem kan svarstiden bli högre. Med least_time kan Nginx i stället väga in hur snabbt servrarna svarar och styra trafiken mot den som för tillfället verkar mest effektiv.

    Det är lite som att välja kö i mataffären. Man går inte nödvändigtvis till den kö som ser kortast ut, utan till den som faktiskt rör sig snabbast.

    Funktionen kan användas både för vanlig HTTP-trafik och för stream-trafik.

    ALPN för säkra upstream-anslutningar

    För stream-modulerna introduceras även direktivet proxy_ssl_alpn.

    ALPN står för Application-Layer Protocol Negotiation. Det är en teknik som används under TLS-anslutningar för att komma överens om vilket protokoll som ska användas.

    Det kan exempelvis vara relevant när en server kan tala flera olika protokoll över samma krypterade anslutning. Med proxy_ssl_alpn får administratören bättre kontroll över vilket protokoll Nginx ska välja när den ansluter till SSL-baserade upstream-servrar.

    Säkerhetsfixar i flera moduler

    Nginx 1.31 är inte bara en funktionsrelease. Den innehåller också flera säkerhetsfixar.

    En av de åtgärdade bristerna är CVE-2026-42926, en sårbarhet i HTTP/2-hanteringen i ngx_http_proxy_module. Problemet är kopplat till direktivet proxy_set_body och kan beskrivas som en request injection-sårbarhet.

    En sådan sårbarhet innebär att en angripare i vissa situationer kan påverka hur en förfrågan tolkas eller vidarebefordras. I proxyprogramvara är detta särskilt känsligt, eftersom proxyn står mitt i trafikflödet.

    En annan viktig fix gäller CVE-2026-42945, en heap buffer overflow i ngx_http_rewrite_module. Minnesfel av detta slag kan i värsta fall leda till att angripare får möjlighet att köra kod.

    Även följande sårbarheter har åtgärdats:

    CVE-2026-42946 – heap buffer overread i ngx_http_scgi_module och ngx_http_uwsgi_module
    CVE-2026-42934 – buffer overread kopplad till UTF-8-avkodning i charset_map i ngx_http_charset_module
    CVE-2026-40460 – adressförfalskning i HTTP/3 och QUIC connection migration
    CVE-2026-40701 – use-after-free vid DNS-svarshantering när ssl_ocsp används

    Det tekniska språket kan låta avskräckande, men i praktiken handlar det om samma grundproblem som ofta förekommer i systemprogramvara: data måste tolkas exakt rätt, minne måste hanteras korrekt och nätverkstrafik får inte kunna lura servern att göra något oväntat.

    HTTP/2 och HTTP/3 blir striktare

    HTTP/2 och HTTP/3 är modernare versioner av webbens grundprotokoll. De är byggda för högre prestanda och bättre hantering av många samtidiga anslutningar.

    Men när gamla och nya protokoll möts uppstår ibland risker. Vissa headers som används i HTTP/1.1 hör inte hemma i HTTP/2 och HTTP/3. Om de ändå släpps igenom kan det skapa oväntade beteenden i kedjan mellan klient, proxy och backend-server.

    Därför avvisar Nginx 1.31 nu HTTP/2- och HTTP/3-förfrågningar som innehåller anslutningsspecifika headers som:

    Connection
    Proxy-Connection
    Keep-Alive
    Transfer-Encoding
    Upgrade

    Headern TE tillåts bara när den är satt till trailers.

    Detta gör hanteringen mer strikt och minskar risken för felaktig tolkning av trafik.

    WebDAV får hårdare kontroller

    Även WebDAV-modulen har förstärkts. WebDAV gör det möjligt att hantera filer på en server via HTTP, till exempel kopiera, flytta eller ändra resurser.

    I Nginx 1.31 avvisas nu COPY– och MOVE-förfrågningar om källan och destinationen är samma plats, eller om de har ett förälder–barn-förhållande.

    Det kan låta som en liten detalj, men den typen av kontroller är viktiga. Utan dem kan filoperationer skapa logiska konflikter, oändliga kopieringsproblem eller andra oönskade effekter.

    Mindre brus i loggarna

    Versionen innehåller också mindre förändringar som påverkar drift och felsökning. Bland annat har loggnivån sänkts för vissa SSL-relaterade fel.

    För systemadministratörer kan detta vara välkommet. Alla fel är inte lika allvarliga, och för höga loggnivåer kan göra det svårare att hitta verkligt viktiga problem i stora loggfiler.

    Det finns även ett nytt configure-alternativ för att kunna inaktivera upstream sticky-modulen, samt fixar för HTTP/2 backend keepalive när proxy_set_body eller proxy_pass_request_body används.

    Varför är Nginx 1.31 viktig?

    Nginx 1.31 är intressant därför att den både breddar vad Nginx kan göra och stärker säkerheten i befintliga funktioner.

    Forward proxy-stödet gör att Nginx kan användas i fler nätverksroller än tidigare. Samtidigt visar säkerhetsfixarna hur komplex modern webbtrafik har blivit. HTTP/2, HTTP/3, TLS, OCSP, QUIC, WebDAV och olika proxyfunktioner skapar tillsammans ett kraftfullt men avancerat ekosystem.

    Ju fler lager som finns i trafikkedjan, desto viktigare blir det att varje del tolkar data på rätt sätt.

    Sammanfattning

    Nginx 1.31 är en viktig mainline-version för administratörer och tekniskt intresserade. Den stora nyheten är stödet för HTTP forward proxy via ngx_http_tunnel_module, men minst lika viktigt är de många säkerhetsfixarna i HTTP/2, HTTP/3, OCSP och flera centrala moduler.

    För den som driver Nginx i produktion är detta en version att granska noggrant. Särskilt gäller det installationer som använder avancerad proxyhantering, HTTP/2, HTTP/3, WebDAV, SCGI, uWSGI eller OCSP.

    Nginx fortsätter därmed att utvecklas från en snabb webbserver till ett allt mer mångsidigt verktyg för modern internettrafik.

    https://github.com/nginx/nginx/releases/tag/release-1.31.0

    Teknisk faktaruta: Nginx 1.31

    Version: Nginx 1.31

    Utgåva: Mainline-release

    Största nyheten: HTTP forward proxy-stöd via ngx_http_tunnel_module och CONNECT-metoden.

    Proxyautentisering: Stöd via auth_basic, satisfy och auth_delay.

    Lastbalansering: Nytt least_time-direktiv för att balansera trafik baserat på svarstid.

    Stream-moduler: Nytt proxy_ssl_alpn-direktiv för ALPN-val mot SSL-upstreams.

    Säkerhetsfixar: Åtgärdar sårbarheter i HTTP/2, HTTP/3, OCSP, WebDAV, rewrite-, proxy-, charset-, SCGI- och uWSGI-moduler.

    Berörda CVE:er: CVE-2026-42926, CVE-2026-42945, CVE-2026-42946, CVE-2026-42934, CVE-2026-40460 och CVE-2026-40701.

    Rekommendation: Administratörer som använder Nginx med HTTP/2, HTTP/3, OCSP, WebDAV eller avancerade proxyfunktioner bör granska uppdateringen noggrant.

Etikett: least_time

  • Nginx 1.31 släpps med forward proxy-stöd och flera säkerhetsfixar

    Nginx är en av internets viktigaste byggstenar. Den används för att leverera webbsidor, fördela trafik mellan servrar och fungera som mellanhand mellan användare och webbapplikationer. Med Nginx 1.31 tar projektet ett nytt steg: webbservern får stöd för HTTP forward proxy, samtidigt som flera säkerhetshål i moderna webbprotokoll som HTTP/2 och HTTP/3 täpps till. För de…