ثغرة Flutter 3.47.8 وإصلاح HTTPS

x32x01
  • بواسطة x32x01 ||
ثغرة Flutter 3.47.8 وإصلاح HTTPS
لو بتطوّر تطبيقات باستخدام Flutter، فيه تحديث أمني مهم لازم تهتم بيه. 🚨
أصدر فريق Flutter الإصدار Flutter 3.47.8 (Stable) لإصلاح ثغرة مرتبطة بالتحقق من شهادات HTTPS، بعد اكتشاف ضعف في المفاتيح الخاصة بثماني شهادات وسيطة تابعة لشركة eMudhra. المشكلة ممكن تسمح لمهاجم على مسار الاتصال بانتحال هوية السيرفر واعتراض البيانات في التطبيقات المتأثرة.
الحل مش مجرد تحديث بيئة التطوير عندك؛ لازم تحدّث Flutter، وتعيد بناء التطبيق، وتنشر النسخة الجديدة للمستخدمين.



🔐 إيه اللي حصل بالضبط؟​

لما تطبيقك يتصل بسيرفر باستخدام HTTPS، بيتم التحقق من الشهادة الرقمية علشان التطبيق يتأكد إنه بيتواصل مع السيرفر الصحيح، وإن الاتصال مش مع جهة بتنتحل هويته.
في أكتوبر 2026، اتكشف إن المفاتيح الخاصة بثماني شهادات وسيطة تابعة لـ eMudhra كانت ضعيفة بسبب مشكلة في توليد المفاتيح العشوائية. الضعف ده أتاح إمكانية استعادة المفاتيح الخاصة وإنشاء شهادات مزيفة تبدو موثوقة لبعض الأنظمة والتطبيقات اللي لسه بتثق في الشهادات المتأثرة.
المشكلة هنا مش إن HTTPS نفسه اتكسر، لكن إن التحقق من هوية السيرفر ممكن يفشل في ظروف معينة بسبب الثقة في شهادة متأثرة.



⚠️ إيه خطورة الثغرة على تطبيقات Flutter؟​

لو التطبيق المتأثر بيقبل شهادة مزيفة، ومهاجم قدر يتحكم في مسار الاتصال، ممكن ينفذ هجوم يُعرف باسم Man-in-the-Middle (MitM)، يعني يعترض الاتصال بين التطبيق والسيرفر.

المخاطر المحتملة تشمل:
  • اعتراض البيانات المتبادلة بين التطبيق والسيرفر.
  • انتحال هوية السيرفر الحقيقي.
  • تعديل البيانات أثناء انتقالها، حسب طبيعة الاتصال والهجوم.
  • تعريض بيانات حساسة للخطر لو التطبيق بيبعت معلومات مهمة عبر الاتصال المتأثر.
لكن مهم تعرف إن وجود الثغرة مش معناه إن تطبيقك اتخترق بالفعل، ولا إن كل الاتصالات باستخدام HTTPS أصبحت غير آمنة.



🎯 مين التطبيقات المتأثرة؟​

بحسب الإرشادات الأمنية الرسمية، التأثير بيختلف حسب المنصة وطريقة الاتصال:
  • Android: تطبيقات Flutter وDart اللي بتستخدم اتصالات HTTPS من خلال dart:io وكانت مبنية بإصدارات متأثرة.
  • Windows: التطبيقات اللي بتستخدم dart:io للتحقق من شهادات TLS.
  • Linux: التطبيقات في البيئات اللي لسه بتثق في الشهادات المتأثرة، خصوصًا الأنظمة غير المحدّثة والحاويات اللي بتستخدم مخازن شهادات قديمة.
أما تطبيقات Flutter على الويب وiOS وmacOS، فمش متأثرة بنفس مشكلة التحقق من الشهادات في dart:io على المنصات المذكورة. لكن فيه حالات منفصلة مرتبطة باستخدام Firebase Cloud Firestore، ودي محتاجة مراجعة إصدار الحزمة المستخدمة.
المهم كمان إن تحديث نظام التشغيل وحده مش بالضرورة يعالج المشكلة في كل تطبيق؛ لأن بعض مكونات التحقق من الشهادات بتكون مضمّنة داخل التطبيق نفسه.



🛠️ إزاي تعالج الثغرة في مشروع Flutter؟​

اتبع الخطوات دي علشان تتأكد إن النسخة الجديدة من تطبيقك بتحتوي على الإصلاح.

1. حدّث Flutter وDart​

الإصدارات التي تحتوي على الإصلاح هي:
  • Flutter 3.47.8 أو أحدث إصدار مستقر يحتوي على الإصلاح.
  • Dart 3.13.7 أو أحدث إصدار متوافق يحتوي على الإصلاح.
افتح Terminal داخل بيئة التطوير ونفّذ:
Bash:
flutter --version
flutter upgrade
flutter --version
راجع الإصدار بعد التحديث، وتأكد إن Dart وصل للإصدار المطلوب على الأقل. لو بتستخدم قناة Stable، تأكد إنك بتستخدم إصدارًا مستقرًا مناسبًا لمشروعك.

2. راجع اعتماديات المشروع​

لو مشروعك بيستخدم Firebase أو حزم Flutter إضافية، راجع الإرشادات الأمنية الخاصة بالحزم دي، وحدّث الحزم المتأثرة للإصدارات اللي تحتوي على الإصلاح.
يمكنك مراجعة الاعتماديات باستخدام:
Bash:
flutter pub outdated
الأمر ده بيعرض الحزم اللي لها إصدارات أحدث، لكنه مش بيحدّثها تلقائيًا، ومش معناه إن كل حزمة ظاهرة فيه متأثرة بالثغرة.

3. أعد بناء التطبيق​

بعد تحديث SDK والاعتماديات المطلوبة، لازم تعيد بناء التطبيق؛ لأن النسخة القديمة المثبتة عند المستخدم مش هتتصلح بمجرد تحديث Flutter على جهاز المطوّر.
على سبيل المثال، لبناء نسخة Android بصيغة APK:
Bash:
flutter build apk --release
اختار أمر البناء المناسب للمنصة اللي بتستهدفها، سواء Android أو Windows أو Linux.

4. انشر النسخة الجديدة​

بعد التأكد من نجاح البناء والاختبارات:
  • ارفع نسخة Android الجديدة إلى قناة التوزيع المناسبة.
  • انشر النسخ الجديدة من تطبيقات Windows أو Linux على قنوات التوزيع المستخدمة.
  • شجّع المستخدمين على تحديث التطبيق.
  • تأكد إن خطوط البناء والنشر الآلي (CI/CD) بتستخدم إصدار SDK المحدّث.
ملحوظة مهمة: لو بتوزّع التطبيق على أكثر من منصة، راجع كل منصة على حدة؛ لأن طريقة معالجة الثغرة ومتطلبات تحديث الحزم ممكن تختلف.



🔥 ماذا لو كان التطبيق بيستخدم Firebase؟​

لو تطبيقك بيستخدم Cloud Firestore، متكتفيش بتحديث Flutter فقط من غير ما تراجع إرشادات Firebase الرسمية.
بعض إصدارات حزمة cloud_firestore تحتاج إلى تحديث منفصل، خصوصًا في تطبيقات Windows وiOS وmacOS. الإصدار المناسب بيعتمد على المنصة والإصدار الحالي من الحزمة.

راجع دليل Firebase الخاص بالحادث الأمني علشان تختار الإصدار المصحح المناسب، وبعدها حدّث الاعتماديات وأعد بناء التطبيق وانشر النسخة الجديدة.



❓ الأسئلة الشائعة​

------------------

هل كل تطبيقات Flutter معرضة للاختراق؟​

لا. التأثير بيعتمد على المنصة، وإصدار SDK، وطريقة الاتصال، ومدى استمرار الثقة في الشهادات المتأثرة. لكن لو تطبيقك بيستخدم dart:io على Android أو Windows أو Linux، لازم تراجع الإصدار وتطبّق التحديث المطلوب.

هل تحديث Flutter على جهازي كفاية؟​

لا. لازم تعيد بناء التطبيق بالإصدار المصحح، وتنشر النسخة الجديدة، وتشجّع المستخدمين على تحديثها. النسخ القديمة مش بتتصلح تلقائيًا.

هل تطبيقات Flutter على iOS والويب متأثرة؟​

مش بنفس مشكلة dart:io الموضحة في التحذير الأمني. لكن لو التطبيق بيستخدم Cloud Firestore أو حزمًا أخرى متأثرة، لازم تراجع تعليمات التحديث الخاصة بكل حزمة ومنصة.

هل HTTPS بقى غير آمن؟​

لا. المشكلة مرتبطة بشهادات وسيطة محددة وآلية التحقق منها في بيئات متأثرة، مش ببروتوكول HTTPS بالكامل.



✅ الخلاصة​

لو بتطوّر تطبيق Flutter، راجع إصدار Flutter وDart عندك، وحدّثهما إلى إصدار يحتوي على الإصلاح، وراجع اعتماديات Firebase عند الحاجة، ثم أعد بناء التطبيق وانشر النسخة الجديدة.
التحديث الأمني ده خطوة مهمة لحماية اتصال التطبيق بالسيرفر، خصوصًا لو التطبيق بيتعامل مع بيانات المستخدمين أو معلومات حساسة.
المراجع الأمنية الرسمية: تحذير Dart وFlutter الأمني، ودليل Firebase لمعالجة الثغرة.
 
مواضيع مشابهة
x32x01
الردود
0
المشاهدات
49
x32x01
x32x01
x32x01
الردود
0
المشاهدات
53
x32x01
x32x01
x32x01
الردود
0
المشاهدات
190
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,351
المشاركات
2,420
الأعضاء
19
آخر عضو مسجل
amralghazaly8@
عودة
أعلى