Detaljer om kritiska PHP-sÄrbarheter har avslöjats och patchar har publicerats.

Korrigerande utgÄvor av PHP 8.5.12, 8.4.27, 8.3.36 och 8.2.35 har publicerats, tillsammans med patchar för de inte lÀngre stödda PHP 7.4-, PHP 8.0- och PHP 8.1-grenarna (sÄrbara versioner 5.4 till 7.3 förblir opatchade), vilka ÄtgÀrdar tvÄ kritiska sÄrbarheter:

  • CVE-2026-109618 — FjĂ€rrkodkörning Ă€r en sĂ„rbarhet som orsakas av att hanteraren för out-of-memory kör funktionen longjmp() nĂ€r processen fĂ„r slut pĂ„ minne. Denna sĂ„rbarhet kan fĂ„ PHP-tolken att avslutas nĂ€r bara nĂ„gra av de interna strukturerna som Ă€r associerade med förfrĂ„gningsbehandling har initierats. Funktionen för förfrĂ„gningsslutförande anvĂ€nder sedan dessa strukturer som om de redan vore initierade, trots att inget minne har allokerats för dem.

    Den primÀra attackvektorn manipulerar flerpartsförfrÄgningar för att uttömma processens tillgÀngliga minne. För att kringgÄ post_max_size-grÀnsen kan Content-Length-headern utelÀmnas och ett stort antal HTTP-headers kan överföras. Riktade attacker mot specifika operationer i PHP-applikationer som förbrukar för mycket minne Àr ocksÄ möjliga. Utnyttjandet har bekrÀftats för mod_php, eftersom det anropar funktionen shutdown() Àven vid fel. PHP-FPM avslutar underprocessen vid fel, vilket gör attacken svÄrare men inte teoretiskt omöjlig.

  • CVE-2026-109619 – FjĂ€rrkörning av kod pĂ„ grund av en sĂ„rbarhet av typen "use-after-free" (anvĂ€nd efter att ha frigjorts) pĂ„ grund av felaktig rensning av det globala tillstĂ„ndet som Ă€r kopplat till en specifik begĂ€ran. Om en begĂ€ran avbryts pĂ„ grund av ett allvarligt fel, timeout eller slut pĂ„ minne, kan det globala tillstĂ„ndet inte Ă„terstĂ€llas, och pekare kan förbli aktiva trots att minnet de refererar till frigörs. Vid bearbetning av en efterföljande begĂ€ran i samma process kan den Ă„terstĂ„ende pekaren nĂ„s till det gamla globala tillstĂ„ndet.

    Utnyttjande kan uppnÄs genom att skapa minnesutmattningsvillkor under flerpartsbearbetning av förfrÄgningar i koden för uppladdningsindikatorn (session.upload_progress). Den primÀra och bekrÀftade attackvektorn Àr hanteraren fatal_error_backtraces i PHP 8.5, som inte ÄterstÀller spÄrningstillstÄndet nÀr det Àr klart. I det förra fallet Àr attacken möjlig pÄ mod_php och PHP-FPM, medan den i det senare fallet endast Àr möjlig pÄ mod_php. En obekrÀftad attack nÀmns ocksÄ i konfigurationer som innehÄller direktiv som utlöser varningar tidigt i förfrÄgningsbearbetningen (till exempel varningar om anvÀndning av förÄldrade parametrar).

Det har sagts att det endast Àr möjligt att helt blockera sÄrbarheterna genom att installera en uppdatering. Följande ÄtgÀrder minskar sannolikheten för lyckade attacker, men gör inte systemet helt sÀkert:

  • Att stĂ€lla in parametern "memory_limit=-1" i php.ini gör det svĂ„rt för en angripare att kontrollera uttömningen av minnesgrĂ€nserna.
  • StĂ€ll in parametern "post_max_size = 8M" om du inte behöver ladda upp stora filer. Parametern "upload_max_filesize" ska vara mindre Ă€n parametern "post_max_size".
  • Att sĂ€tta en grĂ€ns för acceptabel minnesförbrukning pĂ„ systemnivĂ„, via parametrarna cgroup memory.max eller containerminnesförbrukning, men inte via systemgrĂ€nserna RLIMIT_AS och RLIMIT_DATA, vilka bara framkallar ett problematiskt longjmp()-anrop.
  • Om prestanda inte Ă€r viktigt kan du begrĂ€nsa antalet förfrĂ„gningar som bearbetas av en arbetsprocess med hjĂ€lp av pm.max_requests=1 i PHP-FPM och MaxRequestsPerChild i Apache httpd.
  • InstĂ€llning pĂ„ php.ini- eller konfigurationsnivĂ„ server (inte via ini_set() eller FPM .user.ini, eftersom parametern mĂ„ste vara aktiv innan begĂ€ran behandlas) parametern "session.upload_progress.enabled=0."
  • NĂ€r PHP 8.5-versionen anvĂ€nds bör parametern "fatal_error_backtraces=0" anges.
  • Tog bort förĂ„ldrade eller felaktiga instĂ€llningar per begĂ€ran (som assert.* och felaktiga sökvĂ€gar i open_basedir) som orsakade att diagnostikmeddelanden matades ut före initialisering.
  • ÅtgĂ€rdar PHP-kodproblem som kan leda till timeouts och allvarliga fel, till exempel de som Ă€r relaterade till callback-hanterare och fel vid nedladdningsbearbetning.
  • För att blockera den första sĂ„rbarheten i koden för Ă€ldre versioner av PHP kan du ersĂ€tta longjmp()-anropet i memory-hanteraren med _exit().
  • Dessutom kan du minska vĂ€rdet pĂ„ parametern max_input_nesting_level i php.ini och blockera flerpartsförfrĂ„gningar, som visas i det preliminĂ€ra tillkĂ€nnagivandet.

Statusen för sÄrbarhetsÄtgÀrder i distributioner kan bedömas pÄ dessa sidor: Debian, Ubuntu, SUSE, RHEL, Gentoo, Arch,
Fedora, FreeBSD.

TillÀgg 1: SÄrbarheterna identifierades med hjÀlp av AI-modellerna GPT-5.6 och Gemini 4 Argon. OpenAI har publicerat verktyget php2shell-checker för att testa webbplatser och lokala körbara filer för sÄrbarheter, men detta verktyg kontrollerar endast PHP-versionsnumret som returneras av HTTP-servern eller kommandot "php -v", utan att tillhandahÄlla detaljerad analys.

Uppdatering 2: Författaren till en prototyp av sÄrbarheten som utnyttjar en double-free-sÄrbarhet rapporterade att problemet fortfarande Àr ouppdaterat i PHP 8.5.12 och att sÄrbarheten fortsÀtter att fungera. PHP-representanter uppgav tidigare att denna sÄrbarhet inte var relaterad till kommande patchar och inte var ett verkligt problem. Författaren till sÄrbarheten hÀvdade dock att det var en helt annan sÄrbarhet.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster