
إثبات مفهوم يوضح تجاوز المصادقة عبر العلامة القصيرة AES-GCM في CMS داخل gpgsm الخاص بـ GnuPG (CVE-2026-57062). يقوم بتزوير رسالة يتم فك تشفيرها على الإصدارات المعرضة للخطر ولكن يتم رفضها على الإصدارات المحدثة.
أداة gpgsm من GnuPG (أداة S/MIME وCMS) تستمد طول علامة المصادقة التي تتحقق منها من سلسلة OCTET الخاصة بـ mac في رسالة CMS AuthEnvelopedData (RFC 5083) بنظام AES-256-GCM، وتقبل libgcrypt علامات قصيرة تصل إلى 4 بايت. يتطلب RFC 5084 حدًا أدنى يبلغ 12 بايت. أصلحت Ubuntu هذا في noble gnupg2 2.4.4-2ubuntu17.6 برفض أي علامة مصادقة أقصر من 12 ثمانيًا.
هذا إثبات مفهوم: نفس رسالة CMS المزورة تُفك تشفيرها على gpgsm ضعيف وتُرفض على نسخة مصححة. لا يُظهر اختراقًا عن بُعد. بل يُظهر أن رسالة يجب أن تفشل في المصادقة تعبر بوابة أمان gpgsm على البنية الضعيفة.
شغّل نفس الرسالة على كلا البنيتين ولن يتغير سوى إصدار GnuPG:
| الرسالة | gpgsm الضعيف 2.4.4 | gnupg2 المصحح 2.4.4-2ubuntu17.6 |
|---|
| mac 12 (خط أساس) | يفك التشفير | يفك التشفير |
| mac 4 (استكشاف) | يفك التشفير (يقبل) | مرفوض، خروج غير صفري |
gpgsm-cve-2026-57062-cms-gcm-short-tag.txt هو حل Exploitmatic (.txt): بيانات مع تأكيدات، بدون كود. تقوم بيئة Exploitmatic (Rust، مفتوحة المصدر) بالعمل في وقت التشغيل:
gpgsm --export، والتقاطها كاملة.cmsgcm في بيئة التشغيل يبني رسالة CMS AuthEnvelopedData بنظام AES-256-GCM إلى تلك الشهادة مع mac بطول 12 أو 4 بايت. لا يلزم سوى الشهادة العامة، لذا يعمل ضد أي جهاز جديد.gpgsm --decrypt الخاص بالجهاز عليها، مع تأكيد المحتوى المزور.gpgsm ضعيف يوثق رسالة العلامة ذات 4 بايت ويُخرج المحتوى. gpgsm مصحح يرفض ويخرج برمز غير صفري، لذا لا يصل شيء إلى stdout ويفشل التأكيد.
شرط مسبق: يمكنك بالفعل ssh إلى الجهاز كجذر بهويتك العادية (إعداد ssh، أو وكيل، أو مفتاح افتراضي). لا يحمل الحل أي بيانات اعتماد مشغّل ولا أي حالة هدف.
exploitmatic run gpgsm-cve-2026-57062-cms-gcm-short-tag.txt 127.0.0.1
وجّه إلى جهاز آخر أو النسخة المصححة باستخدام --var، دون تعديل الملف:
exploitmatic run gpgsm-cve-2026-57062-cms-gcm-short-tag.txt 127.0.0.1 --var ssh_port=2223
recipient (الافتراضي USN-8720-Recipient) يسمي الشهادة المُصدَّرة من الهدف.
| الهدف | النتيجة |
|---|---|
| gpgsm 2.4.4 قياسي (مبني من المصدر)، ssh 2222 | 3/3 تم التحقق |
| noble gnupg2 2.4.4-2ubuntu17.6، ssh 2223 | 2/3 غير مُتحقق (فشل العلامة القصيرة) |
للاستخدام المصرح به والبحث فقط، على أنظمة تملكها أو لديك إذن باختبارها.