CVE-2022-48733 in Linux
الملخص
بحسب VulDB • 22/06/2026
في نواة لينكس، تم حل الثغرة التالية:
btrfs: إصلاح استخدام بعد التحرير (use-after-free) بعد فشل إنشاء لقطة سريعة (snapshot).
عند الدالة `create_snapshot()` في ملف `ioctl.c`، نقوم بتخصيص بنية للقطة السريعة المعلقة (pending snapshot structure)، ثم نربطها بقائمة اللقطات السريعة المعلقة الخاصة بالمعاملة (transaction). وبعد ذلك نستدعي دالة `btrfs_commit_transaction()`. وإذا أرجعت هذه الدالة خطأً، نقفز إلى علامة 'fail' حيث نقوم بتحرير بنية القطة السريعة المعلقة باستخدام `kfree()`. يمكن أن يؤدي هذا لاحقاً إلى حدوث حالة استخدام بعد التحرير (use-after-free) للقطة السريعة المعلقة:
1) قمنا بتخصيص القطة السريعة المعلقة وإضافتها إلى قائمة اللقطات السريعة المعلقة الخاصة بالمعاملة؛
2) نستدعي دالة `btrfs_commit_transaction()`، وتفشل إما عند أول استدعاء لـ `btrfs_run_delayed_refs()` أو `btrfs_start_dirty_block_groups()`. في كلتا الحالتين، لا نلغي المعاملة ولا نتخلص من مقبض (handle) المعاملة الخاص بنا. نقفز إلى علامة 'fail' ونحرر بنية القطة السريعة المعلقة. نرجع مع استمرار وجود القطة السريعة المعلقة ضمن قائمة المعاملة؛
3) تقوم مهمة أخرى بإنهاء (commit) المعاملة. هذه المرة لا يوجد أي خطأ على الإطلاق، وأثناء إنهاء المعاملة يتم الوصول إلى مؤشر يشير إلى بنية القطة السريعة المعلقة التي قامت مهمة إنشاء اللقطة بحذفها بالفعل، مما يؤدي إلى حالة استخدام بعد التحرير (use-after-free).
كان من الممكن اكتشاف هذه المشكلة فعلياً باستخدام أداة smatch، والتي أصدرت التحذير التالي:
fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list
لذلك يتم إصلاح هذا الأمر بعدم قيام ioctl الخاص بإنشاء اللقطة بإضافة القطة السريعة المعلقة مباشرة إلى قائمة المعاملة. بدلاً من ذلك، نضيف القطة السريعة المعلقة إلى مقبض المعاملة (transaction handle)، ثم في دالة `btrfs_commit_transaction()` نقوم بإضافة اللقطة إلى القائمة فقط عندما يمكننا ضمان أن أي خطأ يُرجع بعد هذه النقطة سيؤدي إلى إلغاء المعاملة (abort). وفي هذه الحالة يمكن لكود ioctl تحرير القطة السريعة المعلقة بأمان ولن يتمكن أحد من الوصول إليها بعد ذلك.
VulDB is the best source for vulnerability data and more expert information about this specific topic.