Sharp — это платформа управления контентом, созданная для Laravel в виде пакета. Версии до 9.20.0 имеют уязвимость обхода пути в классе FileUtil. Приложению не удается должным образом очистить расширения файлов, что позволяет передавать разделители путей на уровень хранения.
В src/Utils/FileUtil.php функция FileUtil::explodeExtension() извлекает расширение файла, разделяя имя файла по последней точке. Эта проблема была исправлена в версии 9.20.0 путем правильной очистки расширения с использованием pathinfo(PATHINFO_EXTENSION) вместо strrpos(), а также применения строгих замен регулярных выражений как к базовому имени, так и к расширению.
Показать оригинальное описание (EN)
Sharp is a content management framework built for Laravel as a package. Versions prior to 9.20.0 have a path traversal vulnerability in the FileUtil class. The application fails to sanitize file extensions properly, allowing path separators to be passed into the storage layer. In `src/Utils/FileUtil.php`, the `FileUtil::explodeExtension()` function extracts a file's extension by splitting the filename at the last dot. This issue has been patched in version 9.20.0 by properly sanitizing the extension using `pathinfo(PATHINFO_EXTENSION)` instead of `strrpos()`, alongside applying strict regex replacements to both the base name and the extension.
Характеристики атаки
Последствия
Строка CVSS v3.1