PostgreSQL нь өгөгдлийн сангийн сервер дээр ажиллаж буй үйлдлийн системийн хэрэглэгчийн эрхээр дурын код ажиллуулах боломж олгож байсан ноцтой аюулгүй байдлын эмзэг байдлыг засварласан шинэчлэл гаргалаа.
CVE-2026-6471 гэж бүртгэгдсэн энэхүү эмзэг байдал нь CVSS 7.2 оноотой бөгөөд PostgreSQL-ийн логик декодчилолын функц анх нэвтэрсэн 2014 оноос хойш буюу 12 жилийн турш системд байсан байна.
Эмзэг байдал нь PostgreSQL 18.6, 17.11, 16.15, 15.19 болон 14.24 хувилбаруудаас өмнөх хувилбаруудад хамаарна.
REPLICATION эрхийг ашиглан код ажиллуулах боломжтой
Эмзэг байдлыг ашиглахын тулд халдагчид REPLICATION атрибуттай хэрэглэгчийн бүртгэлтэй байх бөгөөд PostgreSQL сервер дээр wal_level = logical тохиргоо идэвхтэй байх шаардлагатай.
REPLICATION эрхийг нөөцлөлтийн систем, standby серверүүд, Change Data Capture (CDC) дамжуулалт болон мониторингийн системүүд түгээмэл ашигладаг.
Өмнө нь REPLICATION эрхтэй хэрэглэгч логик декодчилолд ашиглах ямар ч ачаалагдах боломжтой library-г сонгох боломжтой байжээ. Үүний улмаас халдагч өөрийн сонгосон library-г PostgreSQL серверт ачаалуулж, улмаар серверийн үйлдлийн системийн хэрэглэгчийн эрхээр дурын код ажиллуулах боломжтой болсон байна.
Эмзэг байдлыг хэрхэн ашиглаж болох байсан бэ?
Эмзэг байдлыг судалсан Cyera Research уг эмзэг байдлыг "PostGREShell" гэж нэрлэсэн байна.
Халдагч CREATE_REPLICATION_SLOT командаар дамжуулан library-ийн нэрийг PostgreSQL-ийн library loader функцэд шууд дамжуулж чаддаг байжээ.
PostgreSQL-д супер хэрэглэгч бус хэрэглэгчийн ашиглаж болох plugin-ийн замд тодорхой хязгаарлалт байдаг боловч уг хязгаарлалт нь replication замд үйлчилдэггүй байсан байна.
Мөн replication protocol-ийн parser нь plugin-ийн нэрийн дотор /, ../ зэрэг замын тэмдэгтүүдийг зөвшөөрдөг байжээ.
Ингэснээр халдагч серверийн filesystem-ийн дурын замыг library loader-д дамжуулах боломжтой болсон байна.
Windows орчинд
Windows систем дээр халдагч SMB (Server Message Block) ашиглан өөрийн хяналтдаа байгаа компьютероос library-г PostgreSQL серверт ачаалуулах боломжтой байжээ.
Өөрөөр хэлбэл халдагчид зорилтот серверийн диск дээр файл бичих шаардлагагүй байж болох нөхцөл үүссэн байна.
Linux болон macOS орчинд
Linux болон macOS дээр ижил төстэй халдлага хийхийн тулд NFS automount идэвхтэй байх шаардлагатай.
Бусад нөхцөлд халдагч серверийн диск дээр файл бичих ямар нэгэн боломжийг урьдчилан олсон байх шаардлагатай.
Ачаалагдсан хортой код нь PostgreSQL-ийн backend процесс дотор postgres үйлдлийн системийн хэрэглэгчийн эрхээр ажиллана.
Халдлагын үр дагавар
Cyera-ийн туршилтын хортой plugin нь PostgreSQL-ийн role catalog-д шууд өөрчлөлт хийж, REPLICATION эрхтэй хэрэглэгчийг PostgreSQL superuser болгож чадсан байна.
Мөн систем дахин ачаалагдсан ч халдагчийн хяналтыг хадгалах боломжтой гурван төрлийн persistence механизм бий болгож чадсан байна.
Иймээс уг эмзэг байдлыг зөвхөн мэдээлэл унших түвшний асуудал гэж үзэх боломжгүй бөгөөд амжилттай ашиглагдсан тохиолдолд өгөгдлийн сангийн бүрэн эрхийг булаан авах, цаашлаад сервер дээр дурын код ажиллуулах эрсдэлтэй.
PostgreSQL ямар засвар хийсэн бэ?
PostgreSQL-ийн хөгжүүлэгчид replication хэрэглэгчдэд ашиглаж болох logical decoding output plugin-уудыг whitelist буюу зөвшөөрөгдсөн жагсаалтаар хязгаарлах шинэ тохиргоо нэмсэн.
Шинэ тохиргооны нэр:
output_plugin_libraries
Анхдагч утга нь:
pgoutput, test_decoding
байна.
Өмнө нь ашиглаж байсан wal2json, decoderbufs зэрэг гуравдагч талын plugin ашигладаг системүүд шинэчлэл хийсний дараа тухайн plugin-оо output_plugin_libraries тохиргоонд нэмж өгөх шаардлагатай. Үгүй бол logical decoding ажиллахаас татгалзана.
Ямар хувилбар руу шинэчлэх шаардлагатай вэ?
PostgreSQL хэрэглэгчдэд дараах хувилбарууд руу шинэчлэхийг зөвлөж байна:
| Одоогийн салбар | Засварласан хувилбар |
|---|---|
| PostgreSQL 18 | 18.6 |
| PostgreSQL 17 | 17.11 |
| PostgreSQL 16 | 16.15 |
| PostgreSQL 15 | 15.19 |
| PostgreSQL 14 | 14.24 |
Шинэчлэл хийсний дараа серверийг заавал restart хийх шаардлагагүй. pg_ctl reload эсвэл SELECT pg_reload_conf(); ашиглан тохиргоог дахин ачаалж болно.
Администраторуудад өгсөн зөвлөмж
Шинэчлэлт хийхээс өмнө ашиглагдаж буй replication plugin-уудаа шалгахын тулд дараах SQL командыг ажиллуулахыг зөвлөжээ:
SELECT DISTINCT plugin FROM pg_replication_slots WHERE plugin IS NOT NULL;
Дараа нь:
- PostgreSQL-ийг засварласан хувилбар руу шинэчлэх.
- Анхдагч жагсаалтад байхгүй plugin ашиглаж байгаа бол
output_plugin_librariesтохиргоонд нэмэх. - PostgreSQL-ийн тохиргоог reload хийх.
- PostgreSQL 17 болон түүнээс шинэ хувилбараас шилжүүлэлт хийж байгаа бол
pg_upgrade --checkажиллуулахаас өмнө шинэ тохиргоог зөв хийх.
Шинэчлэлт хийх боломжгүй үед
Шинэчлэлтийг шууд хийх боломжгүй байгууллагууд дараах арга хэмжээг авч болно:
- Шаардлагагүй хэрэглэгчдээс REPLICATION эрхийг хасах;
pg_hba.confфайлд replication холболтыг зөвхөн итгэмжлэгдсэн IP хаягуудаас зөвшөөрөх;- PostgreSQL серверээс гарах SMB TCP/445 холболтыг хаах;
- NFS TCP/2049 холболтыг хязгаарлах;
- шаардлагагүй бол autofs-ийг идэвхгүй болгох.
Одоогоор халдлагад ашиглагдсан нь тогтоогдсон уу?
2026 оны 9 дүгээр сарын 4-ний байдлаар CVE-2026-6471 нь CISA-ийн Known Exploited Vulnerabilities (KEV) каталогт бүртгэгдээгүй байна.
Мөн The Hacker News-ийн мэдээлснээр тухайн өдөр олон нийтэд нээлттэй repository-уудаас уг эмзэг байдлыг ашиглах Proof-of-Concept (PoC) код олдоогүй байна.
Гэсэн хэдий ч эмзэг байдал нь 12 жилийн турш PostgreSQL-д оршин байсан, REPLICATION эрхтэй хэрэглэгчийн хүрээнд database backend процесс дээр код ажиллуулах боломж олгож байсан тул PostgreSQL серверүүдийг яаралтай шалгаж, шинэчлэх шаардлагатай.
Анхаарах нэмэлт асуудал
Засвар гарсан ч нэг асуудал одоогоор бүрэн шийдэгдээгүй байна.
pg_createsubscriber команд нь шинэ output_plugin_libraries тохиргоог шалгалгүйгээр pgoutput plugin ашиглан replication slot үүсгэдэг. Үүний улмаас --dry-run горим амжилттай болсон мэт харагдавч бодит conversion хийх үед алдаа гарах боломжтой байна.
2026 оны 9 дүгээр сарын 4-ний байдлаар энэ асуудлыг засах patch хянан шалгах шатандаа байсан бөгөөд PostgreSQL-ийн үндсэн кодод хараахан commit хийгдээгүй байжээ.
Дүгнэлт
CVE-2026-6471 (PostGREShell) нь PostgreSQL-ийн logical decoding механизмтай холбоотой, удаан хугацаанд илрээгүй байсан аюулгүй байдлын эмзэг байдал юм.
Хамгийн чухал эрсдэл нь:
REPLICATION эрх → хортой library ачаалуулах → PostgreSQL backend процесс дээр код ажиллуулах → postgres OS хэрэглэгчийн эрх → PostgreSQL superuser эрх авах боломж
гэсэн халдлагын зам үүсэж байсан явдал юм.
Иймээс байгууллагууд PostgreSQL серверүүд дээр REPLICATION эрхтэй хэрэглэгчид, wal_level, replication slots болон ашиглаж буй output plugin-уудаа нэн түрүүнд шалгаж, боломжтой бол засварлагдсан хувилбар руу шинэчлэх нь зүйтэй.

