Archive::Tar versions before 3.10 for Perl allow memory exhaustion via attacker controlled entry size field in tar header.
_read_tar() reads each entry's payload with $handle->read($$data, $block), where $block is derived from the entry's 12-byte size field in the tar header with no upper bound on that value.
A crafted header declaring a multi-gigabyte size causes Perl to allocate a scalar of that size.
Archive::Tar Perl module versions before 3.10 are vulnerable to memory exhaustion attacks through crafted tar headers with extremely large size fields. An attacker can cause denial of service by forcing the application to allocate excessive memory when processing malicious tar archives.
تحتوي وحدة Archive::Tar في Perl على ثغرة تسمح بهجمات استنزاف الذاكرة من خلال رؤوس tar مزيفة تحتوي على قيم حجم كبيرة جداً. يقرأ الكود حقل الحجم من رأس الملف دون التحقق من الحد الأقصى، مما يسمح بتخصيص كميات ضخمة من الذاكرة. يمكن للمهاجم استخدام هذه الثغرة لتنفيذ هجوم رفض الخدمة ضد التطبيقات التي تعالج ملفات tar.
Archive::Tar Perl module versions before 3.10 are vulnerable to memory exhaustion attacks through crafted tar headers with extremely large size fields. An attacker can cause denial of service by forcing the application to allocate excessive memory when processing malicious tar archives.
Update Archive::Tar Perl module to version 3.10 or later. Implement input validation to enforce reasonable upper bounds on entry size fields before processing. Deploy memory limits and resource quotas for tar extraction operations. Monitor for unusual memory consumption patterns during archive processing.
قم بتحديث وحدة Archive::Tar إلى الإصدار 3.10 أو أحدث. قم بتنفيذ التحقق من صحة المدخلات لفرض حدود معقولة على حقول حجم الإدخالات قبل المعالجة. نشر حدود الذاكرة والحصص الموارد لعمليات استخراج tar. مراقبة أنماط استهلاك الذاكرة غير العادية أثناء معالجة الأرشيف.