Интернэтийн 70%-ийг донсолгосон "PHP2Shell": AI-ийн илрүүлсэн PHP-ийн түүхэн цоорхой ба авах арга хэмжээ
Сүүлийн 24 цагийн дотор дэлхийн олон арван мянган системийн админ, хөгжүүлэгчид нойргүй хонолоо. Wikimedia, засгийн газруудын порталууд болон үүлэн платформууд яаралтай засвар үйлчилгээний горимд шилжиж, интернэтийг бүхэлд нь хамарсан томоохон хамгаалалтын ажиллагаа эхлэв. Үүний шалтгаан нь PHP хэлний цөмд (core runtime) илэрсэн PHP2Shell хэмээх 9.2 үнэлгээтэй хоёр чухал эмзэг байдал (CVE-2026-109618 ба CVE-2026-109619) юм.
Хамгийн жихүүдэс хүргэм нь энэхүү цоорхойг олон жилийн турш аюулгүй байдлын шинжээчид бодитоор ашиглаж (exploit) чадахгүй байсан бол сүүлийн үеийн frontier AI загварууд төвөггүйхэн бодит халдлагын гинжин хэлхээ болгон хувиргасан байна.
"PHP2Shell" гэж юу вэ? Яагаад ийм аюултай вэ?
Энэхүү алдаа нь таны бичсэн код, Laravel, WordPress эсвэл Drupal зэрэг дээрх application логикт байгаа юм биш. Харин PHP-ийн өөрийнх нь санах ойн менежмент болон хүсэлт боловсруулах үндсэн цөмд оршиж байгаа юм.
Энэ нь халдагч системд нэвтрэх эрхгүй (unauthenticated), гаднаас зүгээр л тусгайлан боловсруулсан сүлжээний HTTP хүсэлт илгээх төдийд сервер дээр дурын код ажиллуулах (Remote Code Execution буюу RCE), эсвэл санах ойд хадгалагдаж буй токен, нууц үг, орчны хувьсагчдыг (ENV secrets) задгай унших боломжийг олгож байна.
Цоорхойг задлан үзвэл:
- CVE-2026-109618 (OOM санах ойн эвдрэл): PHP хүсэлтийг хүлээн авахдаа санах ойн хязгаартаа (
memory_limit) тулж, Out-of-Memory (OOM) алдаа заахадlongjmp()функцээр тухайн процессыг яаралтай тасалдаг. Гэтэл энэ үед хэсэгчилж үүсгэсэн зарим дотоод өгөгдөл санах ойд цэвэрлэгдэлгүй үлдэж, дараагийн алхамд хүчинтэй өгөгдөл шиг ашиглагдсанаар санах ойн бүтэц эвдэрч, код ажиллуулах боломж үүсдэг. Халдагчид multipart хүсэлтээр хиймлээр OOM үүсгэн үүнийг өдөөж чадаж байна. - CVE-2026-109619 (Stale Global State ба Use-After-Free): Хүсэлт боловсруулах явцад гарсан алдаа нь глобал төлөвийг чөлөөлөгдсөн (free хийгдсэн) санах ойн хаяг руу заасан хэвээр үлдээдэг. Ингэснээр тухайн PHP worker дараагийн өөр нэг хүсэлтийг хүлээн авах үед өмнөх хүсэлтийн мэдээллийг дахин унших (Use-After-Free) эрсдэл үүсдэг.
Хүн олоогүйг AI урлав
Энэ асуудлыг санах ойн түвшинд онолын хувьд боломжтой гэж 2024 оноос хойш зарим шинжээчид таамаглаж байсан ч хүний гараар найдвартай ажиллах exploit код угсрах нь дэндүү төвөгтэй, цаг хугацаа их шаардсан ажил гэж тооцогдож байв.
Гэвч OpenAI-ийн "Patch the Planet" санаачилгын хүрээнд кибер аюулгүй байдлын Calif компани болон Wiz-ийн шинжээчид GPT-5.6 Sol зэрэг тусгай тохируулгатай модель ашиглан уг хуучин кодын репозиторыг шинжлүүлжээ. Хэдхэн цагийн дотор AI модель хүсэлтийн хэмжээ, файлын гарчиг, санах ойн өгөгдлийн бүтцийг миллисекундын нарийвчлалтай уялдуулсан бодит RCE хэрэгжүүлэлтийн замыг угсарч гаргаж ирсэн байна.
Энэхүү мэдээлэл координацийн гэрээний хугацаанаас өмнө олон нийтэд задарсан тул The PHP Foundation хуваарьт хугацаанаасаа бүтэн нэг хоногийн өмнө яаралтай пачуудыг нийтэд цацахаас өөр аргагүй болжээ. Энэ нь нэг талаас AI хамгаалалтын талд цоорхойг түрүүлж олоход тусалж байгаа ч нөгөө талд халдагчдын гарт ямар аймшигтай хурд авчирч буйг харуулсан дохио юм.
Монголын хөгжүүлэгчид, DevOps инженерүүдийн яг одоо хийх 3 алхам
Хэрэв танай байгууллага, төсөл эсвэл үүлэн дэд бүтцэд PHP ямар нэгэн хэлбэрээр (PHP-FPM, Apache mod_php, Docker container, Kubernetes pod) ажиллаж байгаа бол дараах алхмуудыг нэн даруй хэрэгжүүлнэ үү:
1. PHP хувилбараа яаралтай шинэчлэх
Албан ёсны засвар орсон дараах хувилбарууд руу шинэчил:
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
Анхаар: Хэрэв танай систем PHP 8.1 болон түүнээс өмнөх хувилбар (7.4 г.м.) ашиглаж байгаа бол албан ёсны олон нийтийн шинэчлэл гараагүй. Ийм тохиолдолд үйлдлийн системийнхээ (Ubuntu/Debian, RHEL LTS) тусгай backport багцыг татах эсвэл нэн даруй дэмжигдэх хувилбар руу шилжүүлэх шаардлагатай.
2. Серверийн процесс, worker-уудыг бүтэн дахин ачааллах
Зөвхөн багцыг суулгаад орхих хангалтгүй. Санах ойд ажиллаж буй бүх хуучин worker процессыг шинэ сангаар солихын тулд restart хийнэ:
# Жишээ нь systemd ашигладаг бол:
sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx # эсвэл apache2 / httpd
3. Түр зуурын WAF хамгаалалт (Шинэчлэх боломжгүй бол)
Хэрэв та системийн шинэчлэлийг шууд хийх боломжгүй гацаанд орсон бол WAF (Cloudflare, AWS WAF, Nginx) дээр дараах хамгаалалтыг түр хэрэгжүүлж болно:
Content-Lengthтолгой мэдээлэлгүй, асар олон давхарласанmultipart/form-dataбүхий сэжигтэй хүсэлтүүдийг шууд блоклох.php.iniтохиргоон дээр шаардлагагүй болsession.upload_progress.enabled = Offболгож унтраах.
Дүгнэлт
PHP2Shell бол AI-ийн эрин үед "legacy" буюу олон жил болсон суурь дэд бүтцүүд хэчнээн хэврэг болж хувирсны тод илрэл. Өмнө нь цоорхой олдсоноос хойш exploit бичигдэх хүртэл долоо хоногууд шаардагддаг байсан бол өнөөдөр хэдхэн цагийн дотор AI агентууд автомат туршилт хийж байна. "Манай код аюулгүй, дараа сард серверээ шинэчилье" гэдэг хандлага кибер аюулгүй байдлын шинэ бодит байдалд нэгэнт зайгаа тавьж өгчээ.
Эх сурвалж: The PHP Foundation, OpenAI Patch the Planet Initiative, Wiz Research, ProjectDiscovery, Akamai Security Advisory.
Сэтгэгдэл
Ачаалж байна...