Мэдээ

Вэбийн 70%-д заналхийлсэн "PHP2Shell": Хүний "боломжгүй" гэж орхисон 13 жилийн алдаагаар AI бүрэн RCE угсарчээ

TOGTOKHTOGTOKH·2026 оны аравдугаар сарын 26·2 үзсэн·
Вэбийн 70%-д заналхийлсэн "PHP2Shell": Хүний "боломжгүй" гэж орхисон 13 жилийн алдаагаар AI бүрэн RCE угсарчээ

Вэбийн тулгуур хөдөлгүүрт үүссэн онцгой нөхцөл байдал

Интернэт дэх нийт вэб сайтуудын 70 гаруй хувийг (WordPress, Drupal, Joomla, MediaWiki болон бүх төрлийн backend системүүд) ажиллуулж буй PHP хэлний гүнд хоёр ч ноцтой эмзэг байдал илэрч, дэлхий нийтийг хамарсан аюулгүй байдлын онцгой нөхцөл үүслээ.

CVE-2026-109618 болон CVE-2026-109619 гэсэн дугаартай, хамтад нь "PHP2Shell" хэмээн нэрлэсэн эдгээр алдаанууд нь CVSS 4.0 үнэлгээгээр 9.2 (Critical) зэрэглэлтэй бөгөөд ямар ч нэвтрэх эрхгүй (unauthenticated) гаднын этгээд сервер дээр дурын команд ажиллуулах (Remote Code Execution буюу RCE) эрсдэлийг бий болгож байна.

CISA болон CERT-EU зэрэг байгууллагууд яаралтай анхааруулга гаргаж, системүүдээ нэн даруй шинэчлэхийг уриалав. Гэвч энэ үйл явдлын хамгийн анхаарал татаж, хөгжүүлэгчдийг цочирдуулсан зүйл нь алдааны хамрах хүрээ төдийгүй түүнийг хэрхэн илрүүлж, бодит exploit болгосон арга зам байв.


"Боломжгүй" гэсэн алдааг AI хэрхэн бодит зэвсэг болгов?

PHP-ийн энэхүү санах ойн (memory safety) алдааны эхлэлийг PHP-ийн үндсэн хөгжүүлэгчид 2024 оны аудит хийх үеэрээ анзаарч байжээ. Гэвч тухайн үед үүнийг "бодит орчинд exploit хийж RCE болгох ямар ч боломжгүй, ердөө л онолын хувьд л тохиолдох логик" хэмээн үзэж, шийдэл дээр санал нийлэлгүй хойшлуулсан байдаг. Уг кодын үндэс бүр 2012 оны PHP 5.4-өөс хойш 13 жилийн турш Zend Engine дотор хадгалагдсаар ирсэн байна.

Харин OpenAI-ийн нээлттэй эхийн аюулгүй байдлыг хамгаалах "Patch the Planet" төслийн хүрээнд Calif компанийн шинжээч Ryan Austin болон Wiz Research-ийн судалгааны баг frontier AI моделиудыг (GPT-5.6 Sol болон Gemini 4 Argon) ашиглан уг код руу гүнзгий нэвтэрчээ.

Үр дүн нь итгэмээргүй байв: Хүний олон жилийн турш "боломжгүй, хэтэрхий нарийн төвөгтэй" гэж үзэж байсан санах ойн үлдэгдлийг AI агентууд хэдхэн цагийн дотор нарийн гинжлэн (exploit chain), цэвэр суулгасан default WordPress, Drupal дээр хүссэн shell командаа гүйцэтгэх бүрэн автомат PoC-ийг угсарч харуулсан байна.


PHP2Shell-ийн цаад техникийн учир

PHP2Shell нь ерөнхийдөө PHP-ийн хүсэлт боловсруулах явц дахь санах ойтой ажиллах алдаан дээр тулгуурладаг:

1. CVE-2026-109618: Out-of-Memory (OOM) ба longjmp()

PHP нь санах ой дуусах (OOM) алдаа гарахад гүйцэтгэлийг тэр даруй тасалж, контекстоос гарахын тулд C хэлний стандарт longjmp() функцийг ашигладаг. Гэвч зарим нөхцөлд шинэ хуваарилалт (allocation) хийхийн өмнөх санах ой дутуу эсвэл хоосон төлөвт (uninitialized state) үлддэг. Үүний дараа хүсэлтийн цэвэрлэгээ (cleanup procedure) хийгдэхэд уг бохир санах ойн хаяг руу шууд хандаж, буруу салаалалт үүсгэснээр санах ойн хаягийг задруулах болон код гүйцэтгэх зам нээгддэг.

2. CVE-2026-109619: Хүсэлт дамжсан "Хуучин төлөв" (Stale Global State)

PHP-ийн worker процессууд (жишээ нь PHP-FPM, Apache worker) санах ойг бүрэн устгахгүйгээр дараагийн HTTP хүсэлтийг хурдан хүлээж авахын тулд процессыг амьд үлдээдэг. Энэ үед өмнөх хүсэлтийн санах ойг чөлөөлсөн (free) боловч глобал заагч (global pointer) нь уг чөлөөлөгдсөн санах ой руу заасан хэвээр үлддэг цоорхой үүсчээ. Дараагийн шинэ хүсэлт ирэх үед worker процесс шинэчлэгдээгүй "хуучин заагч"-аас уншилт хийснээр Use-After-Free маягийн төлөвт шилжиж, халдагч хүссэн санах ойн байрлалдаа өөрийн кодоо байршуулах боломжтой болсон байна.


Аппликэйшний код цэвэр байлаа ч аюултай юу?

Тийм. Энэ эмзэг байдлын хамгийн аймшигтай тал нь энэ юм.

Хэрэв таны код дээр ямар ч SQL Injection, XSS, эсвэл File Inclusion байхгүй, бүр ердөө л:

<?php
  echo "Hello, World!";
?>

гэсэн ганц мөр байсан ч таны сервер эрсдэлд орно. Учир нь алдаа нь таны бичсэн кодонд биш, харин HTTP хүсэлтийг хүлээн авч, хүсэлтийн толгой хэсэг (headers), файл хуулалт (upload progress) зэргийг задлан шинжилж буй PHP-ийн үндсэн хөдөлгүүрт (Zend Core) оршиж байна. Халдагч тусгайлан боловсруулсан хүсэлт илгээж серверийн санах ойг алдаатай төлөвт оруулан, дараагийн алхмаар RCE хийх боломжтой.

Эрсдэлийн түвшин нь ашиглаж буй архитектураас хамаарч өөр байх бөгөөд Apache mod_php орчин хамгийн өндөр эрсдэлтэй, харин PHP-FPM, FrankenPHP, LiteSpeed зэрэг түгээмэл технологиуд ч мөн адил эмзэг болохыг баталсан байна.


Хөгжүүлэгчид болон DevOps инженерүүд яг одоо юу хийх хэрэгтэй вэ?

Хэрэв та PHP ашигладаг сервер эсвэл контейнер удирддаг бол дараах алхмуудыг нэн даруй хэрэгжүүлэх шаардлагатай:

1. PHP хувилбараа яаралтай шинэчлэх

PHP Foundation-аас алдааг засварласан дараах хувилбаруудыг гаргасан тул өөрийн ашиглаж буй салбарын дагуу шинэчилнэ үү:

  • PHP 8.5 ашиглаж буй бол ➔ 8.5.12
  • PHP 8.4 ашиглаж буй бол ➔ 8.4.27
  • PHP 8.3 ашиглаж буй бол ➔ 8.3.36
  • PHP 8.2 ашиглаж буй бол ➔ 8.2.35

(Анхааруулга: Хэрэв та PHP 8.1 болон түүнээс өмнөх албан ёсны дэмжлэг нь дууссан хувилбаруудыг ашиглаж байгаа бол нөхөөс ирэхгүй тул хувилбараа даруй ахиулах эсвэл үйлдлийн системийнхээ (Ubuntu/Debian backport) багцыг тусгайлан татаж суулгах хэрэгтэй).

2. Серверийн процессыг бүтэн дахин ачаалах (Restart)

Зөвхөн багцыг шинэчлээд орхиж болохгүй. PHP-FPM болон вэб серверийн процессыг бүрэн зогсоож дахин эхлүүлэх хэрэгтэй:

sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx # эсвэл apache2

Хэрэв Docker контейнер ашиглаж байгаа бол шинэчилсэн base image-ээр контейнеруудаа дахин build хийж deploy хийнэ үү.

3. WAF болон Түр хамгаалалт

Шууд patch хийх боломжгүй тохиолдолд Cloudflare, AWS WAF эсвэл Azure WAF дээр PHP2Shell-д зориулсан тусгай дүрмүүдийг (custom rules) идэвхжүүлэхийг зөвлөж байна.


Дүгнэлт: Кибер аюулгүй байдлын шинэ бодит байдал

PHP2Shell бол технологийн ертөнцөд маш том дохио юм. Хөгжүүлэгчдийн хувьд "хэтэрхий нарийн төвөгтэй, хэн ч энийг бодит халдлага болгож чадахгүй" гэж бардамнадаг үе дуусаж байна. AI моделиуд зөвхөн код бичих биш, олон жилийн турш нуугдсан санах ойн хамгийн ээдрээтэй алдаануудыг секундийн дотор шинжилж, логик сүлжээ үүсгэн бүрэн автомат халдлагын зэвсэг болгож чаддаг боллоо.

Та өөрийн системүүдийн PHP хувилбарыг шалгасан уу? Шалгаагүй бол яг одоо шалгаж, шинэчлэлийг хойшлуулалгүй хийгээрэй.

Эх сурвалж: Wiz Research, Calif, OpenAI Patch the Planet төсөл болон PHP Foundation-ийн хамгаалалтын тайлан.

Сэтгэгдэл

Ачаалж байна...