PHP Apocalypse abgewendet

So Freund, wir  sind wieder online. Wieso wieder Online fragt Ihr, na wegen PHP2SHELL !

PHP Apocalypse abgewendet

PHP hat zwar früher als erwartet das Embargo für die PHP Patche freigegeben, aber dank eines Geniestreichs, waren unsere Server schneller wieder am Netz als andere, denn die Mirrors der Updatepakete waren nicht aktuell. Hätte man auf die gewartet, hätte es Stunden dauern können.

Was ist überhaupt passiert:

Security advisory: Critical remote code execution vulnerabilities, update now

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical vulnerabilities that can allow unauthenticated remote code execution. All PHP users are strongly encouraged to update immediately.

Who is at risk: all PHP installations serving web requests, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed. We consider the risk highest for mod_php, with a demonstrated exploit where an unauthenticated request can trigger the attack before any application code runs.

The vulnerabilities:

  • RCE via OOM corruption, CVE-2026-109618 (GHSA-w8hw-w9fx-j79w): out-of-memory handling can interrupt PHP while internal request data is only partially initialized. Request cleanup may then treat the invalid data as valid.
  • RCE via stale global state, CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp): request-owned internal state can survive after its backing memory has been freed. A later request handled by the same worker may use that stale state before normal initialization resets it.

How to update:

  • Update to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35. Source downloads are on our downloads page. Windows source and binaries are on the same page.
  • Linux distributions and LTS vendors received the patches in advance, so check your vendor for updated packages.
  • PHP 8.1 and older no longer receive updates from the PHP project. Some distributions and LTS vendors provide backported fixes, so contact your vendor for details, or upgrade to a supported version.
  • If you rely on the volunteer-maintained rpms.remirepo.net, we urge you to switch to distribution packages or build from source, so you can immediately apply updates. The repo will not have updates today.
  • Given the severity of these vulnerabilities, the PHP security team provided minimal source-backports for PHP 7.4, PHP 8.0, and PHP 8.1 to help people building from source or without access to an LTS vendor.

If you cannot update immediately: while only an update is a complete solution, the following measures reduce exposure to specific attack paths but do not make an installation safe.

RCE via OOM corruption (CVE-2026-109618):

  • Set memory_limit=-1, preferably in a way applications can’t override, such as php_admin_value in the FPM pool or Apache configuration, and check that no pool, directory or application setting puts a finite limit back. This removes the controllable PHP memory limit failure, but an underlying allocation failure can still reach the vulnerable path.
  • Set a low post_max_size. For applications that don’t require file uploads, set post_max_size = 8M. If file uploads are necessary, set post_max_size = 32M. Keep upload_max_filesize below post_max_size. Consider enforcing limits at the web server or proxy level for decoded request size, input field count, multipart part count, header count, and nesting depth. These limits must also cover requests without a usable Content-Length.
  • Use a container or cgroup limit as an availability boundary, preferably with a policy that kills only the affected worker. Do not substitute RLIMIT_AS or RLIMIT_DATA, as these can cause the vulnerable allocation failure.

RCE via stale global state (CVE-2026-109619):

  • Set session.upload_progress.enabled=0 and restart every worker. Use php.ini, an FPM pool or server configuration that applies before request parsing. Do not rely on ini_set() or FPM .user.ini. This blocks the confirmed session paths but not other variants.
  • On PHP 8.5, set fatal_error_backtraces=0 and restart every worker. This blocks the confirmed fatal backtrace path only.
  • Remove invalid or deprecated settings applied per request that emit diagnostics before initialization. Hiding diagnostics with error_reporting, display_errors or @ does not help.
  • Fix attacker-reachable fatal errors and execution timeouts, including failures in callbacks, upload or import processing and cleanup.

The advisories linked above have the full technical details.

Quelle: php.net

Da 24h Zeit waren wurden heute Mittag im Geheimen bereits das Update für Fedora kompiliert. Daher konnte man die Pakete bereits früher haben als die Mirrors. Letztendlich wurden die dann über unsere Updateserver verteilt, so daß alle unsere Server das für ein normales Update wie jedes andere behandelt haben.

Linux am Dienstag – Programm für den 28.7.2026

Diesmal bei Linux am Dienstag … wir bauen uns einen eigenen Kernel zusammen. Bringt ein bisschen Zeit mit , das dauert 😀

Linux am Dienstag – Programm für den 28.7.2026

u.a. im Programm am 28.7.2026, ab 19:00 Uhr:

  • Linux – Wir backen uns einen Kernel(Marius)
  • Datenschutz – lokale KI-Agenten von LM Studio
  • Sicherheit – WP2SHELL Lücke in WordPress sorgt für Hackwelle
  • Sicherheit – XFS Filesystem mit Rootbarer Lücke
  • Sicherheit – NPM: mit Package-Signing wird alles besser … hahaha
  • Sicherheit – OpenAI KI hackt sich bei HugginFace rein
  • Sicherheit – OPENSSL DOS Angriff mit 11 Byte – vor Monaten gefixt

und andere IT-Newsbeiträge aus aller Welt. Wie jede Woche per Videokonferenz auf https://meet.cloud-foo.de/linux

Hinweis: Die bisherigen Vorträge findet man unter https://linux-am-dienstag.de/archiv/ .

Laßt uns mal über Systemd’s SSHD VSOCK reden.

Die Metapher „In Teufelsküche kommen“ kennt Ihr vermutlich. Etwas, daß ich nach den Fedora 43 Updates auch noch festgestellt habe war, daß systemd beim Booten folgende Meldung anzeigen lies:

Try contacting this VM's SSH server via 'ssh vsock%1' from host.

Jetzt denkt Ihr Euch natürlich sofort: „Was verflucht meint das?“  Es meint die oben genannte Küche.

Erstmal zur Erklärung: Was sind VSOCKets ?

Wie andere UNIX SOCKETS auch, handelt sich erst einmal um normales Socket, das als Kommunikationskanal zwischen Anwendung A und B dient. Im krassen Unterschied zu einem normalen Socket innerhalb eines PC oder VM, baut sich über ein VSOCK eine direkte, unsichtbare „Standleitung“ zwischen dem Host und einer VM auf. 

Wenn mal also einen Xen, VMWare oder eine Proxmox Server betreibt, kann man vom eigentlichen Serversystem direkt per SSH in die VM einloggen, vorbei an allen Firewalls, Netzwerkeinstellungen und Sicherheitsrichtlinien. Was als feuchter Traum eines VMWare Admins begonnen haben dürfte, weitet sich schnell zu einem gravierenden rechtlichen Problem aus, wenn der Serverbereiber die VM an einen Kunden vermietet, also nicht selbst die VM betreibt.

Die Bedrohungslage ändert sich mit dem Tunnel unter der Firewall

Durch die reine Bereitstellung des VSOCKets in der VM,hat sich die Bedrohungslage komplett geändert. Was vorher getrennt war, ist jetzt verbunden und zwar ohne die Möglichkeit es zu blocken. Fairerweise muß man sagen, daß auch eine VSOCK Verbindung zum SSHD Authorisierung braucht. Einfach so einloggen ist nicht.

Normale SSH Server haben wegen der ganzen Bruteforceattacken entweder Fail2BAN oder NIDS Systeme laufen, die Bruteforce-Angriffe erkennen und im Falle eines Angriffes die Angreifer-IP Blocken. Bei einem VSOCK Connect gib es keine IP die man blocken könnte, man müßte das Socket abschalten.  Einen Brute-Force stoppen kann daher schwer werden und da kommt Malware ins Spiel [1]. Es wäre also möglich, einen Server zu hacken, und sich dann per VSOCK und BruteForce in die VM rein zuhacken., ohne das jemand was merkt.

Selbst wenn wir das mal außer Acht lassen und annehmen, daß der Serverbetreiber in die VM einloggt, könnte es zu einer Straftat werden. Wenn der Serverbetreiber keinen Zugriff mit dem Kunden vereinbar hat, um z.B. Software zu managen, dann stellt der Login in das System einen unbefugten Zugriff dar, der nach §202a StGB strafbar ist. Das wäre er auch, wenn er übers Netzwerk käme. Der Umstand, das der Serverbetreiber einfach die Platte der VM so mounten könnte um an die Daten zu gelangen, ist lediglich eine Variante des Zugriffs.

Könnte ein Systemd Entwickler dafür belangt werden?

Die Frage habe ich Gemini gestellt und der meinte, der Hoster müßten jedes Changelog jeder eingesetzten Software auf Änderungen überwachen, die die Systemintegrität beeinflussen könnten und in den stände das mit dem VSOCK drin, damit wärs nicht mehr heimlich und somit nicht strafbar. Soviel zur künstlichen Intelligenz, denn die natürliche Intelligenz hat das unter „faktische Unmöglichkeit“ ausgeschlossen, da das nicht mal theoretisch leistbar ist, was man an der nicht-leistung der „künstlichen Intelligenz“ gesehen hat, die folglich auch nicht in der Lage wäre diesen Job zu leisten

Wenn der Kunde die VM mit Memoryencryption und Full-Disk-Encryption schützt, wäre ein heimlicher Zugriff per VSOCK eine nette Möglichkeit um doch an die Daten zu gelangen, z.b. weil Strafverfolgungsbehörden das so angeordnet haben ( EU Antiterror Gesetz)[übrigens ein Umstand für den das Systemdteam einen auf Github blockt, wagt man das scherzhaft zu erwähnen 😉 ][2]. Etwas, daß nicht möglich wäre, wenn man das gar nicht erst starten würde und damit kommen wir zum eigentlichen Punkt:

Systemd startet das SSHD Vsocket nach der installation automatisch.

Ein Umstand der Admins natürlich Kopfschmerzen und Herzrasen verursacht, weil sich da ungefragt etwas an Ihren Sicherheitseinstellungen vorbei mogeln will. Ums kurz zu machen, so werdet Ihr das los:

systemctl disable –now sshd-vsock.socket
systemctl mask sshd-vsock.socket

Da stellt sich natürlich die Fragen, wieso das automatisch aktiviert ausgeliefert wird, statt es deaktiviert auszuliefern. Es ist ja eine nicht ganz unerhebliche Änderung am System, wenn ich da ein Loch durch alle Firewalls bohre und es dem Admin dann erst beim Boot mitteile, oder wusste Einer von Euch das schon vor meinem Artikel? Die Anzahl an „Ja“s wird sich wohl in Grenzen halten.

IMHO 

Ist das weder guter Stil noch genial durchdacht worden, zumal sich rausstellte, daß z.b. ProxMox keinen Plan hat, wie es zu dem VSOCK der VM verbinden soll, ergo der Dienst überflüssig war. Ich kann mir vorstellen, daß wenn man selbst Container und VM auf einem Server betreibt, es ok ist, wenn es funktionieren würde, obwohl ich kein Dockerimage mit SSH Zugang gefunden habe. ( nicht, das ich intensiv danach suchen würde 😉 )

Aber mal ehrlich: Spart es wirklich Zeit ein? Eher nicht, weil die VM vorher ja schon erreichbar sein mußte per SSH und das über Jahre und Jahrzehnte. Ergo ist der Workflow alt eingefahren und kommt ohne Vsock aus. Einzig die Verteilung von Datenpaketen über mehrere VM könnte mangels Netzwerklimit etwas schneller gehen, aber auch nicht wirklich, weil man es ja auch erstmal auf den Host holen muß, um es dann weiter zu verteilen. Da braucht es schon GB große Datenmengen, damit sich das lohnt.

Wäre das deaktiviert ausgeliefert worden, wärs mir egal gewesen, aber so, mußte ich was sagen.

[1] https://seclists.org/oss-sec/2025/q4/298

[2] https://github.com/systemd/systemd/issues/39640