Përditësimi nginx 1.31.0 me rregullimin e dobësisë RCE, e cila shfrytëzohet përmes kërkesës HTTP

Është formuar shpërndarja e degës kryesore nginx 1.31.0, në kuadër të së cilës vazhdon zhvillimi i mundësive të reja, si dhe lëshimi i degës stabile të mbështetur paralelisht, nginx 1.30.1, në të cilën bëhen vetëm ndryshime që lidhen me rregullimin e gabimeve serioze dhe dobësive. Në përditësime janë eliminuar 6 dobësi, më e rrezikshmja e të cilave lejon ekzekutimin e kodit në mënyrë të largët përmes dërgimit të një kërkese HTTP të projektuar në mënyrë të veçantë. Për angie dhe freenginx, në momentin e shkrimit të lajmit, rregullimet nuk janë publikuar.

Dobësia (CVE-2026-42945), e cila ka nivelin kritik të rrezikshmërisë, shkaktohet nga mbushja e tamponit në modul nga ngx_http_rewrite_module, e cila mund të shfrytëzohet për të ekzekutuar kodin me të drejtat e procesit të punës nginx përmes dërgimit të një kërkese HTTP me URI të projektuar në mënyrë të veçantë. Problemi shfaqet në konfigurime me direktivën "rewrite", ku në shprehjet e rregullta përdoren vendosje maskash duke përdorur variabla të paemëruar (p.sh., $1 dhe $2), me kushtin që në stringun e zëvendësimit të ketë simbole "?". Shembulli i konstruktit të ndjeshëm: rewrite ^\/users\/([0-9]+)\/profile\/(.*)$ \/profile.php?id=$1&tab=$2 last;

Shprehjet me vendosje të emëruara nuk janë të ndjeshme ndaj dobësisë. Për shembull, dobësia nuk prek konstrukte: rewrite ^\/users\/(?<user_id>[0-9]+)\/profile\/(?<section>.*)$ \/profile.php?id=$user_id&tab=$section last;

Dobësia është e pranishme që nga versioni 0.6.27, i lëshuar në mars 2008. Arsyeja e shfaqjes së dobësisë është se tamponi është ndarë me parashikimin se në të do të shkruhen të dhëna të paekranuara, por në të vërtetë janë kopjuar të dhëna pas ekranuar simbolesh të veçanta, të cilat ishin më të mëdha, pasi çdo simbol " + ", " % " dhe " & " kodoheshin me tre byte dhe jo me një. Këtë çrregullim e shkaktonte fakti se nëse në rregullin rewrite kishte simbolin "?", vendosej flamuri "e->is_args", sipas të cilit ekranuar dhe ndarja e tamponit bëhej me flamurin e çaktivizuar, ku ekranuar nuk aplikohej.

Dobësi të tjera:

  • CVE-2026-42926 — mundësia e vendosjes së të dhënave të sulmuesit në kërkesën e dërguar përmes përdorimit të direktivës "proxy_set_body" dhe ndërlidhjes me backend përmes HTTP/2 (proxy_http_version=2).
  • CVE-2026-40701 — një qasje në memorien pas lirimit të saj (use-after-free) në modul ngx_http_ssl_module, që ndodh gjatë përpunimit të përgjigjeve nga serveri DNS në konfigurimet me direktivën «ssl_ocsp».
  • CVE-2026-42946 — leximi nga një zonë jashtë tamponit në modulet ngx_http_uwsgi_module dhe ngx_http_scgi_module, që ndodh gjatë përpunimit të një përgjigjeje të formatuar posaçërisht. Problemi mund të çojë në rrjedhje të përmbajtjes së memories së procesit punues ose në mbylljen e tij të menjëhershme.
  • CVE-2026-42934 — leximi nga një zonë jashtë tamponit në procesin punues, që ndodh gjatë përpunimit të përgjigjeve me dekodimin nga kodimi UTF-8 duke përdorur direktivën «charset_map». Problemi mund të çojë në rrjedhje të përmbajtjes së memories së procesit punues ose në mbylljen e tij të menjëhershme.
  • CVE-2026-40460 — një vulnerabilitet në implementimin e protokollit HTTP/3, që lejon spufimin IP-адреса për të anashkaluar autorizimin ose kufizimet.

Përmirësimet e shtuara në versionin e nginx 1.31.0:

  • Në përbërje është shtuar moduli ngx_http_tunnel_module, që realizon mundësinë e funksionimit si një proxy («forward proxy»), duke drejtuar kërkesat në një server tjetër kur klienti i drejtohet me metodën HTTP/1.1 CONNECT. Është e mundur të konfiguroni autentikimin për qasjen në proxy, duke përdorur direktivat «auth_basic», «satisfy» dhe «auth_delay».
  • Në blokun «upstream» është shtuar direktiva «least_time», e cila përfshin metodën e balancimit të ngarkesës duke kaluar kërkesën серверу me kohën mesatare më të ulët të përgjigjes dhe numrin më të vogël të lidhjeve aktive.
  • Në modul «stream_proxy» është shtuar direktiva «proxy_ssl_alpn» për të caktuar listën e protokolleve të lejuara në zgjerimin ALPN gjatë lidhjes me serverin e proxy-zuar. Për shembull: «proxy_ssl_alpn h2 http/1.1».
  • Është siguruar refuzimi i kërkesave sipas protokolleve HTTP/2 dhe HTTP/3, që përfshijnë kokat «Connection», «Proxy-Connection», «Keep-Alive», «Transfer-Encoding», «Upgrade».
  • Në modul ngx_http_dav_module është siguruar refuzimi i kërkesave COPY dhe MOVE me burime të përsëritura burimore dhe qëllimore ose koleksione të ngulitura.
  • Niveli i regjistrimit të gabimeve SSL «invalid alert», «record layer failure» dhe «SSL alert number N» është ulur nga «crit» në «info».
  • Në skriptin configure është shtuar parametrin «—without-http_upstream_sticky_module» për të çaktivizuar ndërtimin e modulit http_upstream_sticky_module (parametri «—without-http_upstream_sticky» është shpallur i vjetruar).

Shtesë: Eksploiti për vulnerabilitetin RCE në ngx_http_rewrite_module është në dispozicion.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster