
إثبات المفهوم لـ CVE-2021-27850 الذي يؤثر على Apache Tapestry ويؤدي إلى تنفيذ تعليمات برمجية عن بعد دون مصادقة.
CVE-2021-27850 هي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بعد غير مصادق عليها تم العثور عليها في جميع الإصدارات الحديثة من Apache Tapestry، عن طريق تنزيل ملف AppModule.class يمكننا تسريب مفتاح HMAC السري المستخدم لتوقيع جميع الكائنات المتسلسلة في Apache Tapestry.
لقد صادفنا هذه الثغرة في تقييم حقيقي، وعلى حد علمي لا توجد استغلالات عامة متاحة حول كيفية توقيع Tapestry للكائنات المتسلسلة، لذلك قررنا نشر إثبات المفهوم التالي (POC) الذي استخدمناه بعد البحث في شفرة مصدر Apache Tapestry لفترة طويلة x).
1- استنساخ هذا المستودع
2- تشغيل الأمر التالي
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- أخيرًا قم بتشغيل التالي:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
حيث [Tapestry Key] هو مفتاح HMAC المسرب من ملف AppModule.class، و [Ysoserial Payload] هو الحمولة التي تريد استخدامها من ysoserial، و [Command To Execute] هو الأمر الذي تريد تنفيذه.

ملاحظة: على عكس استغلالات إلغاء التسلسل في Java المعتادة حيث تكون الأوامر التي تقوم بتشغيلها محدودة (لا أنابيب أو أحرف خاصة ..) يمكنك هنا استخدام أي أمر معقد تريده لأننا نضيف ما يلي قبل تنفيذ الأمر sh -c $@|sh . echo .
المراجع: