در نسخههای جدیدتر از v0.8.0 کتابخانه Eclipse iceoryx2، یک نقص امنیتی در نحوه مدیریت رشتهها شناسایی شده است که میتواند منجر به رفتارهای تعریفنشده (Undefined Behavior) در محیط اجرای برنامه شود.
تحلیل فنی نقص
این آسیبپذیری در ارتباط میان StaticString و متد String::as_str() رخ میدهد. در این کتابخانه، StaticString محتویات خود را به صورت بایتهای تغییرپذیر (Mutable Bytes) از طریق APIهای امن در اختیار کاربر قرار میدهد. با این حال، متد as_str() این بایتها را بدون اعتبارسنجی UTF-8 به یک Rust string slice تبدیل میکند.
پیامدهای امنیتی
به دلیل نبود بررسی صحت فرمت UTF-8، یک اپلیکیشن میتواند به راحتی یک &str نامعتبر ایجاد کند. از آنجایی که این فرآیند از طریق APIهای امن (Safe Rust) صورت میگیرد، توسعهدهندگان ممکن است متوجه ایجاد وضعیت ناپایدار در حافظه نشوند. این موضوع در نهایت منجر به بروز Undefined Behavior میشود که میتواند توسط مهاجم برای مختل کردن برنامه یا اجرای کدهای غیرمنتظره مورد استفاده قرار گیرد.