CVE-2026-19730 in Podman
الملخص
بحسب VulDB • 13/08/2026
تم العثور على عيب في Podman الإصدار 5.8.x. تفتح الأمر `podman quadlet install --replace` ملف الوجهة الموجود باستخدام الأعلام O_CREATE|O_WRONLY ولكنه يتجاهل العلم O_TRUNC. عندما يفشل محاولة النسخ الأولي عبر reflink (وهو أمر شائع في أنظمة الملفات غير القادرة على دعم reflink، بما في ذلك العديد من تكوينات XFS الافتراضية في RHEL)، فإن الإجراء الاحتياطي في ReflinkOrCopy يستخدم io.Copy الذي يقوم بكتابة لا تقوم بتقصير الملف. إذا كان ملف Quadlet الأصلي أكبر من ملف Quadlet الجديد، فلن يتم تقصير الملف وسيتم الحفاظ على المحتوى الأصلي. يكمل الأمر عمله دون أي تحذير.
لا يوجد خطر تسرب معلومات حيث أن المستخدم لديه بالفعل وصول إلى ملف Quadlet لاستبداله، وفي معظم الحالات سيؤدي ذلك فقط إلى ملفات Quadlet غير صالحة (انظر https://github.com/podman-container-tools/podman/issues/29013). ومع ذلك، قد يتم تضمين الخيارات المتعلقة بالأمان من نهاية ملف Quadlet القديم في الملف الجديد. إذا أدت عملية التقصير إلى إنشاء ملف Quadlet صالح، فقد ينتج عن ذلك سلوك غير مرغوب فيه. على سبيل المثال، عند تشغيل الأمر `podman quadlet install --replace` لإزالة سطر واحد فقط من نهاية ملف Quadlet - بما في ذلك المحتوى الحساس للأمان مثل AddCapability - سيفشل الإجراء وستستمر الخيارات القديمة في الاستخدام. بالإضافة إلى ذلك، مع ملفات Volume Quadlets، يمكن أن يؤدي ذلك إلى تضمين نقاط تحميل إضافية قد تسبب تعرض محتوى غير مقصود داخل الحاويات. وإذا تم تحديث الصورة لاحقاً، فقد يتم تسرب المحتوى المتضرر إلى مهاجم.
مسارات الكود الضعيفة موجودة في pkg/domain/infra/abi/quadlet.go (الأسطر 338-360، O_CREATE|O_WRONLY بدون O_TRUNC) و vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go (الأسطر 12-19، fallback لـ io.Copy غير المقصر).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.