# CVE-2026-109618: RCE λόγω κατάστασης Out-of-Memory

> CVE-2026-109618 εξηγημένο: πώς το Out-of-Memory στην PHP οδηγεί σε εκτέλεση κώδικα, ποιες εκδόσεις έχουν διορθωθεί και τι κάνουν οι διαχειριστές.

Πηγή: https://phpsos.de/el/php2shell/cve-2026-109618/  
Ημερομηνία: 25/10/2026  
Πάροχος: PHP SOS, Επείγουσα βοήθεια PHP και ασφάλεια διακομιστών. Άμεση βοήθεια μέσω WhatsApp: https://wa.me/491736494914?text=%CE%93%CE%B5%CE%B9%CE%B1%20%CF%83%CE%B1%CF%82%2C%20PHP%20SOS%2C%20%CF%87%CF%81%CE%B5%CE%B9%CE%B1%CE%B6%CF%8C%CE%BC%CE%B1%CF%83%CF%84%CE%B5%20%CE%B2%CE%BF%CE%AE%CE%B8%CE%B5%CE%B9%CE%B1%20%CE%BC%CE%B5%20%CF%84%CE%BF%CE%BD%20%CE%B4%CE%B9%CE%B1%CE%BA%CE%BF%CE%BC%CE%B9%CF%83%CF%84%CE%AE%20PHP%20%CE%BC%CE%B1%CF%82.%20%CE%95%CF%84%CE%B1%CE%B9%CF%81%CE%B5%CE%AF%CE%B1%3A%20%E2%80%A6%20%CE%99%CF%83%CF%84%CF%8C%CF%84%CE%BF%CF%80%CE%BF%CF%82%3A%20%E2%80%A6

**Εν συντομία:** Το CVE-2026-109618 είναι μία από τις δύο ευπάθειες πίσω από το PHP2Shell. Μια κατάσταση Out-of-Memory μπορεί να διακόψει την PHP ενώ τα δεδομένα του αιτήματος έχουν αρχικοποιηθεί μόνο εν μέρει· κατά τον καθαρισμό, μη έγκυρα δεδομένα μπορεί τότε να θεωρηθούν έγκυρα. Αυτό επιτρέπει εκτέλεση κώδικα χωρίς σύνδεση. Το σφάλμα έχει διορθωθεί στις PHP 8.5.12, 8.4.27, 8.3.36 και 8.2.35.

## Τι είναι το CVE-2026-109618;

Το CVE-2026-109618 (αναγνωριστικό GitHub GHSA-w8hw-w9fx-j79w) είναι μια ευπάθεια σφάλματος μνήμης στον πυρήνα της PHP. Έχει βαθμολογία CVSS v4.0 9,2. Μαζί με το [CVE-2026-109619](https://phpsos.de/el/php2shell/cve-2026-109619/) αποτελεί αυτό που τα μέσα ενημέρωσης ονομάζουν [PHP2Shell](https://phpsos.de/el/php2shell/was-ist-php2shell/).

Η επίπτωση είναι μια λεγόμενη unauthenticated Remote Code Execution: ένας επιτιθέμενος μπορεί να εκτελέσει εξ αποστάσεως και χωρίς λογαριασμό χρήστη κώδικα στον διακομιστή ιστού. Έτσι η ευπάθεια ανήκει στην πιο επικίνδυνη κατηγορία αδυναμιών που μπορεί να έχει ένας διακομιστής ιστού.

## Πώς προκύπτει βασικά η ευπάθεια

Όταν η PHP επεξεργάζεται ένα αίτημα ιστού, δημιουργεί εσωτερικά δομές δεδομένων για αυτό το αίτημα, για παράδειγμα για δεδομένα φορμών που υποβλήθηκαν. Αν η PHP φτάσει εκεί στο όριο της μνήμης της, διακόπτεται με κατάσταση Out-of-Memory. Σύμφωνα με το php.net αυτό μπορεί να συμβεί ενώ τα δεδομένα του αιτήματος έχουν αρχικοποιηθεί μόνο εν μέρει.

Στο τέλος κάθε αιτήματος η PHP καθαρίζει και αποδεσμεύει τη μνήμη. Ακριβώς εκεί βρίσκεται το σφάλμα: ο καθαρισμός μπορεί να αντιμετωπίσει μη έγκυρα, μόνο μισοδημιουργημένα δεδομένα ως έγκυρα. Από αυτή τη λανθασμένη συμπεριφορά μπορεί υπό ορισμένες προϋποθέσεις να προκύψει εκτέλεση κώδικα.

Γιατί είναι τόσο σοβαρό ένα τέτοιο σφάλμα; Ένα σφάλμα μνήμης στη γλώσσα προγραμματισμού αφορά όλες τις εφαρμογές που εκτελούνται πάνω της, ανεξάρτητα από το πόσο προσεκτικά είναι προγραμματισμένες. Μια συντηρημένη εγκατάσταση WordPress με ενημερωμένα plugins επηρεάζεται εξίσου με μια παλιά ιδιόκτητη εφαρμογή. Γι' αυτό δεν βοηθά εδώ μια ενημέρωση της εφαρμογής, αλλά μόνο μια ενημέρωση της PHP.

Περαιτέρω τεχνικές λεπτομέρειες για την εκμετάλλευση δεν τις δημοσιεύουμε σκόπιμα. Για την άμυνα δεν χρειάζονται: αποφασιστικό είναι αν ο διακομιστής σας χρησιμοποιεί διορθωμένη έκδοση και αν εκτελούνται πράγματι οι νέες διεργασίες.

## Εκδόσεις και τρόποι λειτουργίας που επηρεάζονται

| Κλάδος PHP | Τελευταία κατάσταση πριν τη διόρθωση | Διορθώθηκε από |
|---|---|---|
| 8.5 | 8.5.11 | 8.5.12 |
| 8.4 | 8.4.26 | 8.4.27 |
| 8.3 | 8.3.35 | 8.3.36 |
| 8.2 | 8.2.34 | 8.2.35 |
| 8.1 και παλαιότερες | καμία επίσημη ενημέρωση | μόνο ελάχιστα backports πηγαίου κώδικα για τις 7.4, 8.0, 8.1 |

Επηρεάζονται οι τρόποι λειτουργίας PHP-FPM, Apache με mod_php, php-cgi, FrankenPHP και LiteSpeed. Η ομάδα της PHP κατατάσσει τον κίνδυνο στο mod_php ως τον υψηλότερο. Οι διανομές και οι πάροχοι φιλοξενίας εφαρμόζουν εν μέρει backports, οπότε εμφανίζεται παλαιότερος αριθμός έκδοσης, παρότι το σφάλμα έχει διορθωθεί. Καθοριστικά είναι το επίπεδο των πακέτων και η επιβεβαίωση του παρόχου.

Ως προς το μέγεθος: η Palo Alto Networks (Unit 42) μέτρησε περισσότερες από 22,6 εκατομμύρια εκτεθειμένες, δυνητικά ευάλωτες εγκαταστάσεις. Το BSI κήρυξε επίπεδο προειδοποίησης 3 (πορτοκαλί) και υπολόγισε ταχεία εκμετάλλευση σε μεγάλη κλίμακα.

## Διόρθωση του CVE-2026-109618: ενημέρωση και επανεκκίνηση

Η μόνη πλήρης λύση είναι η ενημέρωση. Ελέγξτε πρώτα την έκδοση και το επίπεδο των πακέτων. Τα ονόματα των πακέτων διαφέρουν ανά διανομή· τα παραδείγματα υποθέτουν PHP 8.3:

```bash
php -v
apt policy php8.3-fpm          # Debian/Ubuntu
dnf info php-fpm               # RHEL, AlmaLinux, Rocky, Fedora
rpm -q --changelog php-fpm | grep -i "CVE-2026-109618"
```

Αν το changelog του πακέτου αναφέρει τον αριθμό CVE, το backport έχει εφαρμοστεί. Αν λείπει, αυτό δεν σημαίνει αυτόματα ότι το πακέτο είναι ευάλωτο· τότε βοηθά η σύγκριση με τον πίνακα εκδόσεων ή η ερώτηση προς τον πάροχο.

Μετά την ενημέρωση πρέπει να επανεκκινηθούν όλες οι διεργασίες PHP, για παράδειγμα με `systemctl restart php8.3-fpm` ή, στο mod_php, με επανεκκίνηση του Apache. Πώς θα βεβαιωθείτε ότι δεν εκτελείται πλέον κανένας παλιός worker, αναφέρεται στο [Επανεκκίνηση του PHP-FPM και όλων των workers](https://phpsos.de/el/php2shell/php-fpm-neustart/).

## Προσωρινά μέτρα όταν η ενημέρωση δεν είναι ακόμη εφικτή

Το php.net δημοσίευσε προσωρινά μέτρα για το PHP2Shell. Ισχύουν από κοινού για τις δύο ευπάθειες και δεν αποτελούν ρητά πλήρη προστασία. Το ότι περισσότερα από αυτά αφορούν όρια μνήμης ταιριάζει με την αιτία Out-of-Memory του CVE-2026-109618· επίσημη αντιστοίχιση επιμέρους μέτρων σε επιμέρους CVE πάντως δεν υπάρχει.

```ini
; Παράδειγμα pool FPM, π.χ. /etc/php/8.3/fpm/pool.d/www.conf (η διαδρομή διαφέρει ανά διανομή)
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 8M          ; 32M, αν χρειάζονται μεταφορτώσεις
php_admin_value[upload_max_filesize] = 6M    ; immer unter post_max_size
php_admin_flag[session.upload_progress.enabled] = off
```

Οι τιμές πρέπει να οριστούν με τρόπο ώστε οι εφαρμογές να μην μπορούν να τις αντικαταστήσουν, γι' αυτό `php_admin_value`. Με `memory_limit=-1` η υπηρεσία χρειάζεται εξωτερικό όριο μνήμης, μέσω container ή cgroup, όχι μέσω `RLIMIT_AS` ή `RLIMIT_DATA`. Στην PHP 8.5 προστίθεται το `fatal_error_backtraces=0`. Όλες οι λεπτομέρειες υπάρχουν στο [Άμεσα μέτρα όταν δεν μπορείτε ακόμη να εφαρμόσετε patch](https://phpsos.de/el/php2shell/sofortmassnahmen-ohne-patch/).

> **Σημαντικό:**
> Αν ούτε η ενημέρωση ούτε τα προσωρινά μέτρα είναι άμεσα εφικτά, το BSI συνιστά την προσωρινή αποσύνδεση των επηρεαζόμενων διακομιστών ιστού από το δίκτυο.

## Πώς βοηθά συγκεκριμένα η PHP SOS;

Μέσω της [υπηρεσίας PHP patch](https://phpsos.de/el/leistungen/php-patch-service/) κλείνουμε το CVE-2026-109618 με δομημένο τρόπο:

- **Καταγραφή της υπάρχουσας κατάστασης:** κλάδος PHP, τρόπος λειτουργίας, πηγή πακέτων και κατάσταση backport ανά διακομιστή.
- **Εφαρμογή της ενημέρωσης** από την κατάλληλη πηγή πακέτων ή, όπου αυτό δεν είναι δυνατό, σωστός ορισμός των προσωρινών μέτρων στη διαμόρφωση του pool ή του διακομιστή.
- **Έλεγχος της επανεκκίνησης:** ελέγχουμε ότι δεν εκτελούνται πλέον παλιές διεργασίες PHP.
- **Απόδειξη:** Λαμβάνετε μια τεκμηρίωση με εκδόσεις και επίπεδα πακέτων πριν και μετά την παρέμβαση, για παράδειγμα για τη διοίκηση, την ασφαλιστική εταιρεία ή την προστασία δεδομένων.


## Συχνές ερωτήσεις

**Πόσο κρίσιμο είναι το CVE-2026-109618;**  
Η ευπάθεια έχει βαθμολογία CVSS v4.0 9,2 και είναι επομένως κρίσιμη. Επιτρέπει την εξ αποστάσεως εκτέλεση κακόβουλου κώδικα χωρίς σύνδεση. Το BSI (η γερμανική Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών) κήρυξε για το PHP2Shell επίπεδο προειδοποίησης 3 (πορτοκαλί).

**Αρκεί να αυξήσω το memory_limit;**  
Όχι. Το php.net αναφέρει το memory_limit=-1, ορισμένο σταθερά στη διαμόρφωση του διακομιστή, ως ένα από περισσότερα προσωρινά μέτρα. Δεν αποτελεί ρητά πλήρη προστασία και απαιτεί όριο μνήμης μέσω container ή cgroup. Η λύση παραμένει η ενημέρωση.

**Ποιο αναγνωριστικό GHSA αντιστοιχεί στο CVE-2026-109618;**  
Στο GitHub Security Advisory η ευπάθεια καταχωρείται με το GHSA-w8hw-w9fx-j79w. Η δεύτερη ευπάθεια του PHP2Shell, το CVE-2026-109619, έχει το αναγνωριστικό GHSA-6wmf-4rv5-p3rp.

## Πηγές

- [php.net: Ανακοινώσεις ασφαλείας](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [BSI: Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών](https://www.bsi.bund.de/)
