Tina — это безголовая система управления контентом. До версии 2.2.2 @tinacms/graphql использовал проверки содержания путей на основе строк в FilesystemBridge. Это блокирует простой обход ../, но не разрешает цели символической ссылки или соединения.
Если символическая ссылка/соединение уже существует в корне разрешенного контента, путь типа content/posts/pivot/owned.md по-прежнему считается «внутри» базы, даже если реальная цель файловой системы может находиться за ее пределами. В результате FilesystemBridge.get(), put(), delete() и glob() могут работать с файлами за пределами предполагаемого корня. Эта проблема исправлена в версии 2.2.2.
Показать оригинальное описание (EN)
Tina is a headless content management system. Prior to version 2.2.2, @tinacms/graphql uses string-based path containment checks in FilesystemBridge. That blocks plain ../ traversal, but it does not resolve symlink or junction targets. If a symlink/junction already exists under the allowed content root, a path like content/posts/pivot/owned.md is still considered "inside" the base even though the real filesystem target can be outside it. As a result, FilesystemBridge.get(), put(), delete(), and glob() can operate on files outside the intended root. This issue has been patched in version 2.2.2.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Ssw Tinacms\/Graphql
cpe:2.3:a:ssw:tinacms\/graphql:*:*:*:*:*:node.js:*:*
|
— |
<= 2.2.1
|