
CVE-2026-39031 — استرداد كلمة المرور بنصها الصريح دون اتصال لـ Lansweeper lsrunase 2.0 / lsencrypt 2.0 عبر مفتاح RC4 مضمّن. PoC + نشرة فنية.
يستخدم lsrunase 2.0 و lsencrypt 2.0 من Lansweeper مخطط تشفير كلمات مرور قابل للعكس يعتمد على RC4. يُشتق مفتاح RC4 من بادئة مكونة من 8 أحرف تُخزَّن كنص صريح مع كلمة المرور المشفرة ومن مادة مفتاح ثابتة مضمّنة في الملفات التنفيذية.
يمكن لأي شخص بحوزته سلسلة كلمة مرور مشفرة أُنتجت بواسطة أي من الأداتين استرداد كلمة المرور النصية الصريحة دون اتصال. لا تتطلب عملية الاسترداد أي تخمين بالقوة الغاشمة: افصل البادئة النصية الصريحة عن القيمة المشفرة، وأعد بناء مخزن المفتاح، واحسب ملخص SHA-1 واحدًا، ثم فك تشفير نص مشفر واحد بـ RC4.
تم تخصيص CVE-2026-39031 لهذه المشكلة. قد لا تظهر سجلات CVE و NVD العامة حتى يُنشر الإفصاح وتكتمل عملية نشر السجلات.
| المنتج | الإصدار المتأثر |
|---|---|
Lansweeper lsrunase | 2.0 |
Lansweeper lsencrypt | 2.0 |
المكوّن المتأثر هو روتين تشفير كلمة المرور المستخدم في lsrunase.exe 2.0 و lsencrypt.exe 2.0.
هذه ليست مشكلة LSrunasE / Supercrypt الأقدم المسجلة باسم CVE-2007-6340. أثرت تلك الـ CVE الأقدم على Geert Moernaut LSrunasE 1.0 و Supercrypt 1.0.
يغطي CVE-2026-39031 تحديدًا Lansweeper lsrunase 2.0 و lsencrypt 2.0. البناء القابل للاستغلال مختلف: تستمد هذه الملفات التنفيذية مفتاح RC4 من بادئة نصية صريحة مكونة من 8 أحرف بالإضافة إلى لاحقة ثابتة مكونة من 142 بايتًا مضمّنة في الملفات التنفيذية.
تُبنى قيمة كلمة المرور المشفرة على النحو التالي:
8-character prefix || base64(RC4(plaintext password))
عملية التشفير هي كما يلي:
0x3f إلى 0x7e.SHA1(key_buffer) لإنتاج مفتاح RC4 بحجم 20 بايت.اللاحقة الثابتة المكونة من 142 بايت هي:
0x27 0x0F 0x29 0x11 0x2B 0x13 0x2D 0x15
0x2F 0x17 0x31 0x19 0x33 0x1B 0x35 0x1D
0x37 0x1F 0x39 0x21 0x3B 0x23 0x3D 0x25
0x3F 0x27 0x41 0x29 0x43 0x2B 0x45 0x2D
0x47 0x2F 0x49 0x31 0x4B 0x33 0x4D 0x35
0x4F 0x37 0x51 0x39 0x53 0x3B 0x55 0x3D
0x57 0x3F 0x59 0x41 0x5B 0x43 0x5D 0x45
0x5F 0x47 0x61 0x49 0x63 0x4B 0x65 0x4D
0x67 0x4F 0x69 0x51 0x6B 0x53 0x6D 0x55
0x6F 0x57 0x71 0x59 0x73 0x5B 0x75 0x5D
0x77 0x5F 0x79 0x61 0x7B 0x63 0x7D 0x65
0x7F 0x67 0x81 0x69 0x83 0x6B 0x85 0x6D
0x87 0x6F 0x89 0x71 0x8B 0x73 0x8D 0x75
0x8F 0x77 0x91 0x79 0x93 0x7B 0x95 0x7D
0x97 0x7F 0x99 0x81 0x9B 0x83 0x9D 0x85
0x9F 0x87 0xA1 0x89 0xA3 0x8B 0xA5 0x8D
0xA7 0x8F 0xA9 0x91 0xAB 0x93 0xAD 0x95
0xAF 0x97 0xB1 0x99 0xB3 0x9B
نظرًا لأن البادئة مخزنة كنص صريح وأن مادة المفتاح المتبقية ثابتة عبر جميع التثبيتات، فإن جميع المعلومات اللازمة لاشتقاق مفتاح RC4 متاحة لأي مهاجم بحوزته سلسلة كلمة مرور مشفرة ونسخة من الملف التنفيذي أو هذا التحليل.
نص الإثبات العملي لا يعتمد على أي مكتبات خارجية ويعمل مع Python 3.
$ python lsrunase2cve.py --decrypt "IssS|CI|NTOEHK5Q9l7Sn89xEA67+wo="
Decrypted: testpassword12345
تم توليد القيمة المشفرة أعلاه بواسطة واجهة LSrunasE 2.0 password encrypter 2.0 الرسومية للقيمة النصية الصريحة testpassword12345.
للتحقق من التشفير بشكل قابل للتكرار باستخدام نفس البادئة:
$ python lsrunase2cve.py --encrypt "testpassword12345" --prefix "IssS|CI|"
Encrypted: IssS|CI|NTOEHK5Q9l7Sn89xEA67+wo=
يمكن للمهاجم الذي لديه وصول محلي إلى قيمة كلمة مرور مشفرة أُنتجت بواسطة lsrunase 2.0 أو lsencrypt 2.0 استرداد كلمة المرور النصية الصريحة دون اتصال.
تبعًا لطريقة نشر الأدوات، قد تتيح بيانات الاعتماد المستردة ما يلي:
تنجم المشكلة عن عدة عيوب في التصميم التشفيري لمخطط حماية كلمة المرور:
تشمل فئات الضعف ذات الصلة:
CWE-321: استخدام مفتاح تشفير مبرمج بشكل ثابتCWE-326: قوة تشفير غير كافيةCWE-327: استخدام خوارزمية تشفير مكسورة أو خطرة| التاريخ | الحدث |
|---|---|
| 2026-03-13 | تم إخطار البائع عبر [email protected] بجدول إفصاح منسق مدته 90 يومًا ونافذة مطالبة بتعيين CVE مدتها 14 يومًا. |
| 2026-03-31 | ردّ البائع بأن المنتج لم يعد مدعومًا. لم يتم تقديم أي تأكيد فني. |
| 2026-06-08 | قامت MITRE بتعيين CVE-2026-39031. |
CWE-321: https://cwe.mitre.org/data/definitions/321.htmlCWE-326: https://cwe.mitre.org/data/definitions/326.htmlCWE-327: https://cwe.mitre.org/data/definitions/327.htmlCVE-2007-6340: https://nvd.nist.gov/vuln/detail/CVE-2007-6340