
CVE-2024-24576 إثبات المفهوم
توثيق واجهات برمجة التطبيقات Command::arg و Command::args ينص على أن الوسائط سيتم تمريرها إلى العملية المنبثقة كما هي، بغض النظر عن محتوى الوسائط، ولن يتم تقييمها بواسطة شل. هذا يعني أنه من الآمن تمرير مدخلات غير موثوقة كوسيطة.
على ويندوز، يكون تنفيذ هذا أكثر تعقيدًا من المنصات الأخرى، لأن واجهة برمجة تطبيقات ويندوز توفر سلسلة واحدة فقط تحتوي على جميع الوسائط للعملية المنبثقة، ويُترك للعملية المنبثقة مهمة تقسيمها. تستخدم معظم البرامج argv زمن تشغيل C القياسي، مما يؤدي عمليًا إلى طريقة متسقة إلى حد كبير لتقسيم الوسائط.
لكن هناك استثناء واحد وهو cmd.exe (المستخدم من بين أشياء أخرى لتنفيذ ملفات الدُفعات)، والذي لديه منطق تقسيم الوسائط الخاص به. وهذا يجبر المكتبة القياسية على تنفيذ هروب مخصص للوسائط التي يتم تمريرها إلى ملفات الدُفعات. لسوء الحظ، تم الإبلاغ عن أن منطق الهروب لدينا لم يكن شاملاً بما يكفي، وكان من الممكن تمرير وسائط خبيثة تؤدي إلى تنفيذ شل عشوائي.

المرجع: https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html