به روز رسانی های اصلاحی برای همه شاخه های پشتیبانی شده PostgreSQL ایجاد شده است: 14.3، 13.7، 12.11، 11.16 و 10.22. شعبه 10.x به پایان پشتیبانی نزدیک می شود (به روز رسانی ها تا نوامبر 2022 ایجاد می شود). انتشار بهروزرسانیهای شاخه 11.x تا نوامبر 2023، 12.x تا نوامبر 2024، 13.x تا نوامبر 2025، 14.x تا نوامبر 2026 ادامه خواهد داشت.
نسخههای جدید بیش از 50 اصلاح ارائه میکنند و آسیبپذیری CVE-2022-1552 مرتبط با قابلیت دور زدن جداسازی اجرای عملیاتهای ممتاز Autovacuum، REINDEX، CREATE INDEX، REFRESH MATERIALIZED VIEW، CLUSTER و pg_amche را حذف میکنند. یک مهاجم با اختیار ایجاد اشیاء غیر موقت در هر طرح ذخیره سازی می تواند باعث شود که توابع SQL دلخواه با امتیازات ریشه اجرا شوند در حالی که یک کاربر ممتاز در حال انجام عملیات فوق است که بر شی مهاجم تأثیر می گذارد. به طور خاص، سوء استفاده از آسیبپذیری میتواند در حین تمیز کردن خودکار پایگاه داده زمانی که کنترلکننده autovacuum اجرا میشود، رخ دهد.
اگر بهروزرسانی امکانپذیر نیست، راهحل برای مسدود کردن مشکل این است که خلاء خودکار را غیرفعال کنید و عملیاتهای REINDEX، CREATE INDEX، REFRESH MATERIALIZED VIEW و CLUSTER را بهعنوان کاربر ریشه انجام ندهید، و pg_amcheck را اجرا نکنید یا محتوا را از پشتیبان ایجاد شده توسط pg_dump بازیابی نکنید. . اجرای VACUUM، مانند هر عملیات فرمان، ایمن در نظر گرفته می شود، تا زمانی که اشیاء در حال پردازش متعلق به کاربران قابل اعتماد باشد.
تغییرات دیگر در نسخههای جدید شامل بهروزرسانی کد JIT برای کار با LLVM 14، امکان استفاده از الگوهای database.schema.table در ابزارهای psql، pg_dump و pg_amcheck، رفع مشکلاتی است که منجر به خراب شدن فهرستهای GiST روی ستونهای ltree میشود، نادرست است. گرد کردن مقادیر در دوره فرمت استخراج شده از داده های بازه ای، عملکرد نادرست زمانبندی هنگام استفاده از پرس و جوهای راه دور ناهمزمان، مرتب سازی نادرست ردیف های جدول هنگام استفاده از عبارت CLUSTER در فهرست ها با کلیدهای مبتنی بر عبارت، از دست دادن داده به دلیل پایان غیرعادی بلافاصله پس از آن. ایجاد یک فهرست مرتب شده GiST، بن بست در حین حذف فهرست تقسیم شده، شرایط مسابقه بین عملیات DROP TABLESPACE و ایست بازرسی.
علاوه بر این، میتوانیم به انتشار پسوند pg_ivm 1.0 با اجرای پشتیبانی از IVM (نگهداری افزایشی) برای PostgreSQL 14 اشاره کنیم. IVM یک راه جایگزین برای بهروزرسانی نماهای تحققیافته ارائه میدهد که اگر تغییرات بر بخش کوچکی از نما تأثیر بگذارد مؤثرتر است. IVM اجازه میدهد تا نماهای تحققیافته بلافاصله با تغییرات تدریجی، بدون محاسبه مجدد نمای با استفاده از عملیات REFRESH MATERIALIZED VIEW، تازهسازی شوند.
منبع: opennet.ru