استرجاع صورة بعد حذفها في Meta AI
الباحث الأمني: علي جعفر @allawe
مكان الخطأ:
نظام الصور في Meta AI – خصوصًا طريقة التعامل مع تخزين الصور بعد حذفها.
وصف الثغرة وتأثيرها:
أثناء تجربتي لخدمة Meta AI، اكتشفت إنه بعد ما المستخدم يحذف صورة، تبقى قابلة للاسترجاع إذا الشخص يمتلك الـ Image ID الخاص بيها. يعني باختصار، النظام ما يطبق الحذف النهائي بصورة صحيحة، لأن الصورة تبقى مخزونة على السيرفر وقابلة للوصول من خلال الرابط أو المعرف.
هذا الشي يخالف توقعات المستخدمين، لأن الطبيعي إنو لما تحذف شي، تتوقع إنه يروح للأبد. والأخطر من هيچ، الموضوع ممكن يخرق قوانين حماية البيانات مثل الـ GDPR، لأن القانون يطلب حذف أي بيانات شخصية بشكل كامل ونهائي إذا المستخدم طلب.
التأثير على الأمان والخصوصية:
- خطر الاستمرارية: الصور المحذوفة تبقى موجودة وقابلة للوصول.
- انتهاك الخصوصية: ممكن أي شخص عنده رابط الصورة القديم يشوف محتوى المفروض يكون انحذف، وهذا يعرض خصوصية المستخدم للخطر.
الأسباب المحتملة:
- حذف وهمي (Soft Delete): يعني يتم إخفاء الصورة بس ما تنمسح فعليًا من قاعدة البيانات.
- احتفاظ الصورة بنسخ في الباك أب أو السجلات.
- عدم مسح الصورة من الـ cache أو شبكات التوزيع (CDN).
- ضعف في التحقق من الوصول، بحيث تگدر تجيب الصورة حتى بعد حذفها إذا عندك الـ ID.
خطوات إعادة إنتاج الثغرة (Reproduction Steps):
- تبدي محادثة جديدة ويا Meta AI وتطلب توليد صورة.
- تحفظ Image ID الخاص بالصورة المولدة.
- تسوي محادثة جديدة وتطلب صورة ثانية.
- تحذف المحادثة الأولى اللي بيها الصورة.
- تروح تستخدم الـ Image ID اللي خزنته حتى تجيب الصورة اللي المفروض انحذفت.
"input":{
"client_mutation_id":"0",
"actor_id":"479979531932024",
"savable_id":"571441730991969"
}
ملحوظة: بالسطر الأخير، استعملت الـ
savable_id
اللي هو معرف الصورة المحذوفة حتى أثبت الثغرة.