یک رشته گفتوگوی ازسرگرفتهشده در Codex از مجوزهای پیشفرض دستگاه استفاده کرد؛ OpenAI اصلاحیه را ادغام کرد

یک رشته ذخیرهشده در Codex که پس از توقف سرد از سر گرفته میشد، پروکسی شبکه خود را بر اساس مجوزهای پیشفرض تنظیمشده روی دستگاه ایجاد میکرد، نه مجوزهایی که خود رشته با آنها ذخیره شده بود. OpenAI این اصلاحیه را در تاریخ ۱۲ اکتبر به شاخه اصلی Codex ادغام کرد؛ این تغییر در قالب یک درخواست ادغام از یک نشانی متعلق به کارکنان OpenAI در ساعت ۱۶:۰۱:۴۴ به وقت UTC ثبت شده بود.

OpenAI مشکل را در بخش «چرا»ی توضیحات کامیت اینگونه بیان کرده است: «بازگردانی مجوزهای بدون نام رشته پس از بارگذاری پیکربندی باعث میشود مقداردهی اولیه پروکسی شبکه و اعتبارسنجی مجوزها همچنان از مقدار پیشفرض پیکربندی استفاده کنند. یک رشته ذخیرهشده فقطخواندنی نیز باید در شرایطی که آن مقدار پیشفرض با الزامات مدیریتی فعلی ناسازگار است، ازسرگیری شود.»
مشکل به ترتیب انجام عملیات مربوط میشد. مجوزها پس از بارگذاری پیکربندی بازگردانی میشدند؛ در آن زمان پروکسی و بررسی مجوزها از قبل بر پایه مقدار پیشفرض تنظیم شده بودند. اصلاحیه، اعمال پروفایلهای مجوز ذخیرهشده واجد شرایط را به مرحله بارگذاری پیکربندی منتقل میکند؛ یعنی پیش از آمادهسازی شبکه و اعتبارسنجی نهایی. در عین حال، بازنویسیهای صریح مجوزها و الزامات مدیریتی همچنان اولویت دارند. این تغییر محدودیتهای مدیریتیِ منع خواندن را حفظ میکند و مجوزهای ذخیرهشده مربوط به اعمال کنترل خارجی یا دسترسیهای ایجادشده در فایلسیستم را بازنمیگرداند. در مجموع، ۱۰ فایل در بخشهای بارگذاری پیکربندی Codex، مدیریت نشستها و پردازش درخواستهای سرور برنامه تغییر کردهاند؛ این تغییر شامل ۱۴۷ خط افزوده و ۵۲ خط حذفشده است.
آزمایش جدید، ازسرگیری یک رشته فقطخواندنی روی دستگاهی با دسترسی کامل را بررسی میکند
۳۹ دقیقه بعد، در ساعت ۱۶:۴۰:۱۱ به وقت UTC، کامیت دوم منتشر شد که ۲۷۶ خط پوشش آزمایشی برای جلوگیری از بازگشت مشکل اضافه میکرد؛ این آزمایشها فقط روی لینوکس اجرا میشوند. توضیح ابتدای این آزمایش، قاعدهای را که اصلاحیه باید تضمین کند چنین بیان میکند: «ازسرگیری سرد باید پروکسی فعال را با استفاده از مجوزهای بازگردانیشده رشته مقداردهی اولیه کند.»
خود آزمایش، همین سناریو را شبیهسازی میکند. یک رشته ذخیرهشده فقطخواندنی پس از آنکه مجوزهای پیشفرض دستگاه به :danger-full-access تغییر کردهاند، ازسر گرفته میشود. سپس بررسی میشود که پروکسی شبکه فعال از مجوزهای بازگردانیشده پیروی کند، هنگام اتصال به میزبان جدید درخواست تأیید بدهد، قانون تأییدشده را ذخیره کند و بدون درخواست دوباره از همان قانون استفاده کند. همچنین بررسی میشود که درخواستهای عبوری از پروکسی موفق باشند، در حالی که دسترسی مستقیم همچنان مسدود بماند.
این همان بخشی است که کاربران Codex میتوانند آن را درک کنند. رشتهای که با مجوزهای فقطخواندنی ذخیره شده، به دلیل مشخصی با همان وضعیت نگهداری میشود و ممکن است دستگاهی که بعداً روی آن بازمیگردید همان دستگاهی نباشد که آن را ترک کرده بودید. Codex CLI نسخه ۰.۱۶۲.۰ در ۹ اکتبر مشکل متفاوتی را در همین حوزه برطرف کرد؛ در آن مورد، یک فایل پیکربندی ripgrep میتوانست مسیرهایی را که سندباکس مسدود کرده بود دوباره قابل مشاهده کند. آن مشکل درباره خواندن فایلها بود؛ مشکل فعلی درباره دسترسی به شبکه است.
هیچیک از این تغییرات هنوز در نسخه منتشرشده وجود ندارد
هر دو تغییر فعلاً فقط در شاخه اصلی قرار دارند و در نسخه دیگری منتشر نشدهاند. جدیدترین نسخه منتشرشده Codex، نسخه ۰.۱۶۲.۱ در تاریخ ۹ اکتبر است که پیش از هر دو کامیت منتشر شده بود؛ بنابراین هیچ نسخهای که کاربران امروز بتوانند نصب کنند، این اصلاحات را در خود ندارد. هیچ شناسه CVE، اطلاعیه یا بولتن امنیتی برای این تغییرات وجود ندارد. OpenAI این مورد را آسیبپذیری نامگذاری نکرده و هیچیک از دو کامیت نیز اشاره نمیکند که آیا کسی تحت تأثیر قرار گرفته یا این رفتار چه مدت وجود داشته است.
هر دو کامیت دارای GitOrigin-RevId هستند؛ این یعنی تغییرات از مخزن داخلی OpenAI به مخزن عمومی منتقل شدهاند، نه اینکه مستقیماً در مخزن عمومی نوشته شده باشند. فعلاً این تغییر روی شاخه اصلی قرار دارد و در یک نسخه آینده Codex به دستگاه کاربران خواهد رسید.
