++ php.ini: sessioni native chiuse, mitigazione di CVE-2026-109618/109619
session.upload_progress.enabled = 0 e session.use_strict_mode = 1, come indicato da Sansec in attesa della patch; restano anche dopo, perche' all'applicazione non servono (Laravel ha le sue sessioni, in Redis). Test di guardia in VersionePhpTest. HANDOFF: stato della mitigazione e scelta ancora aperta sul rilascio in produzione. README: sicurezza. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -812,6 +812,13 @@ una revoca ha effetto immediato senza bisogno di ricaricare la pagina.
|
||||
- **Sessioni**: in Redis, cookie httpOnly e `Secure` in produzione
|
||||
- **Esecuzione PHP**: solo `index.php` è un entrypoint valido; ogni altro `.php`
|
||||
restituisce 404
|
||||
- **Versione di PHP fissata alla patch** (`ARG PHP_VERSION` nel Dockerfile,
|
||||
oggi 8.3.36 per CVE-2026-109618/109619): una build o prende quella versione
|
||||
o fallisce, mai una base vecchia rimasta in cache. Va alzata a ogni rilascio
|
||||
di sicurezza del ramo 8.3
|
||||
- **Sessioni native di PHP chiuse**: `session.upload_progress.enabled = 0` e
|
||||
`session.use_strict_mode = 1` in `php.ini` (l'applicazione usa le sessioni
|
||||
di Laravel; è la mitigazione indicata per le stesse CVE)
|
||||
|
||||
### GDPR
|
||||
- **Informativa** (menu *Privacy*, solo amministratore): i valori che possono
|
||||
@@ -906,7 +913,7 @@ ancora rientrati compaiono nel dettaglio come "in corso".
|
||||
| Componente | Tecnologia |
|
||||
|-------------------|--------------------------------------------|
|
||||
| Framework | Laravel 11 |
|
||||
| PHP | 8.3 (FPM) |
|
||||
| PHP | 8.3 (FPM), versione fissata nel Dockerfile |
|
||||
| Interfaccia | Livewire 3.5 + TailwindCSS 4 + Alpine.js |
|
||||
| Database | MariaDB 11 |
|
||||
| Cache/Sessioni/Code| Redis 7 |
|
||||
|
||||
@@ -8,6 +8,16 @@ memory_limit = 256M
|
||||
max_execution_time = 120
|
||||
max_input_vars = 3000
|
||||
|
||||
[Session]
|
||||
; Mitigazione di CVE-2026-109618/109619 (RCE nel core di PHP, 21/10/2026),
|
||||
; come indicato da Sansec in attesa della patch, e da tenere anche dopo:
|
||||
; l'avanzamento degli upload nelle sessioni native di PHP non serve
|
||||
; all'applicazione (Laravel ha le sue sessioni, in Redis, e Livewire non lo
|
||||
; usa) ed è il punto da cui passano questi attacchi. Lo strict mode vale solo
|
||||
; per le sessioni native, che qui non si usano: costa niente.
|
||||
session.upload_progress.enabled = 0
|
||||
session.use_strict_mode = 1
|
||||
|
||||
[opcache]
|
||||
opcache.enable = 1
|
||||
opcache.memory_consumption = 128
|
||||
|
||||
@@ -32,6 +32,16 @@ class VersionePhpTest extends TestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function test_la_mitigazione_delle_sessioni_resta_nel_php_ini(): void
|
||||
{
|
||||
// Indicata da Sansec per CVE-2026-109618/109619; all'applicazione non
|
||||
// serve, quindi resta anche dopo la patch.
|
||||
$ini = (string) file_get_contents(dirname(__DIR__, 2) . '/docker/php/php.ini');
|
||||
|
||||
$this->assertMatchesRegularExpression('/^session\.upload_progress\.enabled\s*=\s*0\s*$/m', $ini);
|
||||
$this->assertMatchesRegularExpression('/^session\.use_strict_mode\s*=\s*1\s*$/m', $ini);
|
||||
}
|
||||
|
||||
public function test_l_immagine_usa_la_versione_fissata_e_non_un_tag_mobile(): void
|
||||
{
|
||||
preg_match_all('/^FROM php:(\S+)/m', $this->dockerfile(), $basi);
|
||||
|
||||
Reference in New Issue
Block a user