Daptin — это безголовая CMS GraphQL/JSON-API. До версии 0.11.5 процессFuzzySearch в server/resource/resource_findallpaginated.go:1484 разделяет предоставленный пользователем параметр столбца запятой и интерполирует каждый сегмент непосредственно в goqu.L(fmt.Sprintf("LOWER(%s) LIKE ?", prefix+col)) необработанный SQL без проверки белого списка столбцов. Точка входа — GET /api/<entity> с оператором =fuzzy (или fuzzy_any, fuzzy_all).
Любой прошедший проверку подлинности пользователь, в том числе тот, кто зарегистрировался самостоятельно без участия администратора, может прочитать всю базу данных. Эта проблема исправлена в версии 0.11.5.
Показать оригинальное описание (EN)
Daptin is a GraphQL/JSON-API headless CMS. Prior to version 0.11.5, processFuzzySearch in server/resource/resource_findallpaginated.go:1484 splits the user-supplied column parameter by comma and interpolates each segment directly into goqu.L(fmt.Sprintf("LOWER(%s) LIKE ?", prefix+col)) raw SQL with no column whitelist check. The entry point is GET /api/<entity> with operator=fuzzy (or fuzzy_any, fuzzy_all). Any authenticated user — including one who self-registered with no admin involvement — can read the entire database. This issue has been patched in version 0.11.5.
Характеристики атаки
Последствия
Строка CVSS v4.0