العودة
الاستيلاء على حسابات SourceHut عبر سجلات البناء: ثغرة XSS في ansi2html (CVE-2026-92973)
SiTech AI Team3 წთ. საკითხავი

الاستيلاء على حسابات SourceHut عبر سجلات البناء: ثغرة XSS في ansi2html (CVE-2026-92973)

نشر باحث أمني تحليلاً لثغرة XSS في مكتبة ansi2html التي يستخدمها SourceHut لتحويل مخرجات ANSI في سجلات البناء إلى HTML. الثغرة أتاحت تنفيذ JavaScript في جلسة أي زائر والاستيلاء على الحساب، وظل builds.sr.ht عرضة لها نحو أربع سنوات ونصف.

نشر باحث أمني يُعرف باسم Arusekk في سبتمبر 2026 تحليلاً لثغرة في منصة SourceHut (sr.ht) التي تستضيف مستودعات git وقوائم البريد والتكامل المستمر. حملت الثغرة المعرّف CVE-2026-92973 وتخص مكتبة ansi2html، وهي مكتبة بلغة Python تحوّل تسلسلات ANSI في مخرجات الطرفية إلى HTML. وتستخدم SourceHut هذه المكتبة لعرض سجلات البناء في خدمة builds.sr.ht.

كان بإمكان أي شخص يستطيع إدخال نص في سجل البناء أن ينفّذ JavaScript عشوائياً في متصفح كل من يفتح صفحة السجل. ولأن الصفحة تحتوي على رمز CSRF وتملك صلاحيات الجلسة، كان المهاجم يتصرف باسم الضحية: يرسل مهام بناء ويصل إلى مفاتيح النشر، بما فيها المفاتيح التي تحتفظ بها SourceHut لبنيتها التحتية في الخادم الرئيسي. ووفق الباحث، كان يكفي أن يفتح الضحية الصفحة في متصفح مع تشغيل JavaScript.

كيف تم الاستيلاء على الحساب

لا تقتصر ansi2html على إضافة الألوان، فهي تحوّل الروابط التلقائية وروابط OSC 8 إلى روابط HTML. كان عنوان الرابط يُدرج في السمة href دون تهريب سليم، لذا استطاع تسلسل مصمم بعناية أن يخرج من السمة ويضيف سمات جديدة مثل autofocus وtabindex وonfocus. وهكذا يشغّل الرابط شيفرته فور تحميل الصفحة دون نقر، كما نجح أيضاً عنوان من نوع javascript:.

لم يكن هناك حاجة إلى حساب لحقن التسلسل في السجل: يكفي إرسال patch إلى قائمة بريدية عامة فيها تكامل مستمر مُفعّل، أو التحكم في أي مصدر خارجي يظهر خرجه في السجل. وكانت الشيفرة نفسها تُحمَّل من خادم المهاجم وتُنفَّذ في وقت التشغيل. والنتيجة ثغرة XSS مخزّنة في صفحة كثيرة الزيارة، وقابلة للأتمتة أيضاً، إذ تتحول الضحية فوراً إلى مصدر للهجمات التالية. وفي تقييم CVSS 4.0 يرى الباحث أن الخطورة عالية أو حرجة وليست متوسطة، ويذكّر بأن المستخدمين لا يستطيعون حذف مهمة البناء بل إخفاءها فقط.

الإصلاح والجدول الزمني

أبلغ الباحث عن المشكلة إلى قائمة الأمن في SourceHut في 1 أغسطس 2026 مرفقة بـ patch أولي. وفي 4 أغسطس أكّد Drew DeVault الثغرة وأصلح builds.sr.ht بحيث تُنقّى مخرجات ansi2html تلقائياً. وفي مشروع pycontribs/ansi2html صدر الإصلاح النهائي في الإصدار 1.9.4 بتاريخ 2 سبتمبر 2026. الإصدارات المتأثرة هي ansi2html من 1.7.0 إلى 1.9.3 وbuilds.sr.ht من 0.40.0 إلى 0.105.0. وحصلت Arch Linux على الحزمة المصححة في 5 سبتمبر.

كانت نافذة التعرّض طويلة: أُضيفت ansi2html إلى builds.sr.ht في مارس 2019، وظهر الخطأ في كود المشروع الأصلي في سبتمبر 2021، ثم حُزم الإصدار المتأثر لـ Alpine ووصل إلى الخادم الرئيسي في فبراير 2022. وبقي builds.sr.ht عرضة للثغرة نحو أربع سنوات ونصف تقريباً.

ماذا يعني ذلك للمنصات الأخرى

تذكّر الحادثة بمخاطر عرض مخرجات البناء غير الموثوقة بصيغة HTML. ويقترح الباحث ثلاث طبقات للحماية: تشديد سياسة Content-Security-Policy وإزالة 'unsafe-inline'، وتنقية إضافية لمخرجات المحوّل، وقد أضافتها SourceHut لكنه يصفها بالمفرطة لأن الألوان اختفت، وإعادة كتابة المحلّل كآلة ذات حالات بدل التعامل مع النصوص.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.