
Эксплойт proof-of-concept для CVE-2023-4698, уязвимости Local File Inclusion в usememos/memos < 0.13.2, позволяющей произвольное чтение файлов на сервере.
Сегодня я хочу пролить свет на значимое открытие — критическую уязвимость безопасности, которая была обнаружена в usememos/memos. Эта уязвимость, относящаяся к категории Включения локального файла (LFI), представляет серьёзную угрозу для систем, работающих на версиях usememos/memos ранее 0.13.2. Данной проблеме присвоен идентификатор CVE-2023‑4698. В этом посте мы разберём эту уязвимость, поймём её последствия и подчеркнём срочность её устранения.
В основе этой уязвимости лежит ошибка типа Local File Inclusion (LFI). Такой тип уязвимости позволяет злоумышленникам читать произвольные файлы на сервере, используя слабые места в коде. В частности, данная уязвимость возникает из-за дефекта, позволяющего атакующему манипулировать параметром "InternalPath" в запросе, что в итоге приводит к включению файлов из файловой системы сервера.
Последствия успешной эксплуатации уязвимости Local File Inclusion (LFI) обширны и глубоко тревожны. Для систем, работающих на уязвимых версиях usememos/memos (< 0.13.2), последствия могут включать: Кража данных: Злоумышленники могут получить доступ к чувствительным файлам, таким как конфигурационные файлы и базы данных, что потенциально может привести к краже данных и нарушению конфиденциальности. Компрометация сервера: В некоторых сценариях LFI может перерасти в удалённое выполнение кода (RCE), предоставляя злоумышленникам возможность выполнять произвольный код на целевой системе, что может привести к полной компрометации сервера. Вторичные атаки: LFI может служить трамплином для запуска дополнительных атак, включая Directory Traversal, Server-Side Request Forgery (SSRF) или Denial of Service (DoS). Эти атаки могут ещё больше скомпрометировать систему или нарушить её нормальную работу.
Эта уязвимость проистекает из самого кода, в первую очередь в файле "resource.go", строки с 1 по 69. Основная проблема заключается в недостаточной проверке и очистке пользовательского ввода для поля "InternalPath". Это упущение позволяет злоумышленнику предоставить вредоносное значение для "InternalPath" при создании или обновлении ресурса. Затем этот вредоносный ввод слепо используется для доступа к чувствительным файлам в файловой системе сервера.
Например, злоумышленник может установить поле "InternalPath" в "/etc/passwd" или "/proc/self/environ", пытаясь получить конфиденциальные файлы с сервера. В результате сервер непреднамеренно раскрывает содержимое этих внутренних файлов, потенциально разглашая крайне чувствительную информацию.
Для получения более подробной информации об этой уязвимости, пожалуйста, обратитесь к следующим ресурсам:
Вы также можете следить за мной, чтобы получать обновления о моих исследованиях и других темах, связанных с безопасностью:
Давайте уделять приоритетное внимание безопасности и защищать наши системы от потенциальных угроз. Будьте бдительны! 💻🔒