<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
  
  <title>Bestemmie Binarie</title>
  <subtitle>Divulgazione informatica con il fegato in mano.</subtitle>
  <link href="https://bestemmiebinarie.it/feed.xml" rel="self" />
  <link href="https://bestemmiebinarie.it/" />
  <updated>2026-11-10T00:00:00Z</updated>
  <id>https://bestemmiebinarie.it/</id>
  <author>
    <name>Bestemmie Binarie</name>
  </author>
  <entry>
    <title>PHP2Shell, ovvero come abbiamo affidato Internet a un linguaggio nato per fare un contatore di visite</title>
    <link href="https://bestemmiebinarie.it/post/php2shell/" />
    <updated>2026-11-10T00:00:00Z</updated>
    <id>https://bestemmiebinarie.it/post/php2shell/</id>
    <content type="html">&lt;p&gt;Due vulnerabilità di memory safety nel core di PHP, &lt;strong&gt;CVE-2026-109618&lt;/strong&gt; e &lt;strong&gt;CVE-2026-109619&lt;/strong&gt;, collettivamente note come &lt;em&gt;PHP2Shell&lt;/em&gt;. Permettono l&#39;&lt;strong&gt;esecuzione di codice da remoto&lt;/strong&gt;. Punteggio CVSS: &lt;strong&gt;9.2 su 10&lt;/strong&gt;. Il punto e otto mancanti è puramente cerimoniale, perché nessuno ha il coraggio di dare 10 a qualcosa.&lt;/p&gt;
&lt;p&gt;Conclusione anticipata, perché tanto fin qui arriva solo chi ha fretta: &lt;strong&gt;aggiornate PHP&lt;/strong&gt;. Gli altri restino, che c&#39;è da ridere. Poco, ma c&#39;è.&lt;/p&gt;
&lt;h2&gt;La sedia dell&#39;IKEA&lt;/h2&gt;
&lt;p&gt;PHP nasce a metà degli anni Novanta come un pugno di script per gestire una home page personale. Una cosa piccola, innocente, artigianale.&lt;/p&gt;
&lt;p&gt;Trent&#39;anni dopo, quella cosa piccola e innocente regge una porzione &lt;strong&gt;imbarazzante&lt;/strong&gt; di Internet: blog, e-commerce, gestionali pubblici, il sito della pizzeria sotto casa e, con ogni probabilità, il portale da cui vostra madre prenota le analisi del sangue.&lt;/p&gt;
&lt;p&gt;È come se il ponte sullo Stretto lo reggesse una sedia dell&#39;IKEA montata nel 1995 senza istruzioni. Regge, eh. &lt;strong&gt;Regge.&lt;/strong&gt; Finché qualcuno non ci si siede sopra nel modo sbagliato.&lt;/p&gt;
&lt;p&gt;E qualcuno, puntualmente, ci si è seduto.&lt;/p&gt;
&lt;h2&gt;La memory safety spiegata a mio zio&lt;/h2&gt;
&lt;p&gt;PHP è scritto in C. Il C è un linguaggio meraviglioso, potente ed elegante, che ti dà accesso diretto alla memoria del computer, &lt;strong&gt;e poi si gira dall&#39;altra parte&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Il C non controlla niente. Il C si fida di te. Il C è quell&#39;amico che ti presta la macchina senza chiederti se hai la patente, se hai bevuto, o se sai cos&#39;è un freno.&lt;/p&gt;
&lt;aside class=&quot;nota&quot;&gt;Il C è come il bisturi. Nelle mani giuste salva vite. Nelle mani di uno sviluppatore alle tre di notte con una Red Bull in corpo, fa una tracheotomia al server.&lt;/aside&gt;
&lt;p&gt;Se scrivi un dato nel posto sbagliato della memoria, il C non dice niente. Non un warning, non un &amp;quot;sei sicuro?&amp;quot;. Silenzio. E quel silenzio, in informatica, si chiama &lt;strong&gt;comportamento indefinito&lt;/strong&gt;. Tradotto dal tecnichese: può succedere qualunque cosa, compreso che uno sconosciuto in un altro continente prenda il controllo del tuo server e ci installi un miner di criptovalute che si chiama tipo &lt;em&gt;SuperMegaCoin&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Cosa succede, in pratica&lt;/h2&gt;
&lt;p&gt;Un attaccante manda dati costruiti ad arte, PHP li gestisce male a livello di memoria, e alla fine l&#39;attaccante riesce a far girare &lt;strong&gt;codice suo&lt;/strong&gt; sul vostro server. Come si fa nel dettaglio non ve lo spiego: questo è un blog di divulgazione, non un corso serale per ragazzini con la felpa e troppo tempo libero.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Attaccante:  *manda una richiesta strana*
PHP:         &amp;quot;mh, strano, vabbè&amp;quot;
PHP:         *gestisce la memoria come un ubriaco gestisce le chiavi di casa*
Attaccante:  *è dentro*
Voi:         *dormite*
Il server:   *mina SuperMegaCoin*
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Quanto è grave&lt;/h2&gt;
&lt;div class=&quot;tabella&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Indicatore&lt;/th&gt;
&lt;th&gt;Valore&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;9.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Versioni colpite&lt;/td&gt;
&lt;td&gt;dalla 5.4 alla 8.5, quindi sì, anche la vostra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nel catalogo KEV della CISA&lt;/td&gt;
&lt;td&gt;sì, dal 26 ottobre&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L&#39;FBI ci ha fatto un post&lt;/td&gt;
&lt;td&gt;sì&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preoccupazione consigliata&lt;/td&gt;
&lt;td&gt;alta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preoccupazione reale dei sistemisti&lt;/td&gt;
&lt;td&gt;&amp;quot;lo guardo lunedì&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Il &lt;strong&gt;KEV&lt;/strong&gt; (Known Exploited Vulnerabilities) è la lista delle falle che vengono &lt;strong&gt;usate davvero&lt;/strong&gt;, adesso, da gente vera. Non sono vulnerabilità da conferenza, di quelle che servono a pubblicare un paper e appuntarsi la medaglia. Quando una CVE finisce lì dentro non è più &amp;quot;potrebbe succedere&amp;quot;: è &amp;quot;&lt;strong&gt;sta succedendo&lt;/strong&gt;, e forse proprio a te&amp;quot;.&lt;/p&gt;
&lt;p&gt;Quando poi pure l&#39;FBI scrive pubblicamente &amp;quot;aggiornate e controllate se vi hanno già bucato&amp;quot;, siamo al medico che guarda la lastra, si toglie gli occhiali e dice: &amp;quot;si sieda&amp;quot;.&lt;/p&gt;
&lt;h2&gt;Il colpo di scena&lt;/h2&gt;
&lt;p&gt;La correzione è uscita il 21 ottobre &lt;strong&gt;senza cambiare il numero di versione di PHP&lt;/strong&gt;. Avete capito bene: hanno sistemato il codice vulnerabile e lasciato il numerino identico.&lt;/p&gt;
&lt;p&gt;Quindi se lanciate &lt;code&gt;php -v&lt;/code&gt; e vedete la versione giusta, &lt;strong&gt;non vuol dire niente&lt;/strong&gt;. Potreste avere quella corretta, oppure quella bucata con lo stesso identico numero. Sono due bottiglie con la stessa etichetta e la stessa data, e in una c&#39;è la candeggina.&lt;/p&gt;
&lt;aside class=&quot;nota&quot;&gt;Il numerino mente. Il numerino ha sempre mentito. Chiedetelo al vostro distributore, non al numerino.&lt;/aside&gt;
&lt;p&gt;Per sapere se siete al sicuro dovete controllare con chi vi fornisce PHP (la distribuzione Linux, Plesk, l&#39;hosting) che il &lt;strong&gt;pacchetto&lt;/strong&gt; installato contenga la correzione.&lt;/p&gt;
&lt;h2&gt;Le cinque fasi del sistemista&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Negazione:&lt;/strong&gt; &amp;quot;Noi non usiamo PHP.&amp;quot; Usano WordPress.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rabbia:&lt;/strong&gt; &amp;quot;Ma chi c***o scrive ancora in C nel 2026?!&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contrattazione:&lt;/strong&gt; &amp;quot;Se mettiamo il WAF davanti forse possiamo aspettare la finestra di manutenzione di dicembre...&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Depressione:&lt;/strong&gt; apre i log.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accettazione:&lt;/strong&gt; aggiorna alle 23:47 di venerdì.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Cosa fare, in ordine&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Aggiornate.&lt;/strong&gt; Adesso. Non dopo il caffè, non dopo la call, non &amp;quot;appena ho un attimo&amp;quot;. &lt;strong&gt;Adesso.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verificate&lt;/strong&gt; che il pacchetto installato includa davvero la correzione. Vedi la candeggina.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Andate a caccia.&lt;/strong&gt; Log, processi in esecuzione, file modificati di recente nella cartella del sito. Se trovate un &lt;code&gt;x.php&lt;/code&gt;, uno &lt;code&gt;shell.php&lt;/code&gt; o un &lt;code&gt;wp-config-backup-old-new-FINAL2.php&lt;/code&gt; che non avete creato voi, &lt;strong&gt;non è un vostro vecchio backup&lt;/strong&gt;. Non vi illudete.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mettete un WAF davanti.&lt;/strong&gt; Non vi rende invulnerabili, ma è il cancello del giardino: il ladro deciso entra lo stesso, quello di passaggio no.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non esponete roba inutile.&lt;/strong&gt; Il pannello di amministrazione aperto a tutto Internet con utente &lt;code&gt;admin&lt;/code&gt; e password &lt;code&gt;admin123&lt;/code&gt; non è un &amp;quot;piccolo rischio accettabile&amp;quot;. È un invito a cena scritto a mano.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;In conclusione&lt;/h2&gt;
&lt;p&gt;PHP non morirà mai. Sopravviverà a noi, ai nostri figli e probabilmente alla morte termica dell&#39;universo. Fra dieci miliardi di anni, nel freddo vuoto cosmico, ci sarà ancora un server con dentro un WordPress 4.2 non aggiornato.&lt;/p&gt;
&lt;p&gt;Ma non è un buon motivo per lasciarlo bucato.&lt;/p&gt;
&lt;p class=&quot;verdetto&quot;&gt;&lt;mark&gt;Aggiornate. Fatelo per gli utenti, e per il vostro fegato, che non merita un altro venerdì sera in ufficio.&lt;/mark&gt;&lt;/p&gt;
</content>
  </entry>
</feed>