Мэдээ

V8 хөдөлгүүрийн ноцтой Zero-Day (CVE-2026-85046): Вэб хуудас нээх төдийд л хэрэгжих Sandbox RCE ба түүний техникийн учир шалтгаан

TOGTOKHTOGTOKH·2026 оны есдүгээр сарын 6·1 үзсэн·
V8 хөдөлгүүрийн ноцтой Zero-Day (CVE-2026-85046): Вэб хуудас нээх төдийд л хэрэгжих Sandbox RCE ба түүний техникийн учир шалтгаан

Хэрэглэгч ямар нэг файл татаж авах, баталгаажуулах товч дарах шаардлагагүйгээр зөвхөн вэб хуудас нээх төдийд л браузер дотор дурын код ажиллах боломжтой болбол юу болох вэ?

Google компани өөрийн V8 JavaScript болон WebAssembly хөдөлгүүрт илэрсэн өндөр эрсдэлтэй, бодит ертөнцөд хакерууд идэвхтэй ашиглаж буй (zero-day) эмзэг байдлыг яаралтай засварлаж, Chrome 152.0.7977.82 шинэчлэлтийг бүх үйлдлийн системд зориулан гаргалаа. CVE-2026-85046 (CVSS оноо: 8.8) дугаартай уг алдааг АНУ-ын CISA агентлаг идэвхтэй халдлагад ашиглагдаж буй эмзэг байдлуудын (KEV) жагсаалтдаа шууд бүртгэсэн байна.

Энэхүү нийтлэлээр уг алдааны техникийн цаад бүтэц, V8 санах ойн оптимизацийн нарийн ширийн, мөн энэ нь зөвхөн Chrome гэлтгүй Node.js, Electron болон headless автоматжуулалт ашигладаг хөгжүүлэгчдэд хэрхэн нөлөөлөхийг авч үзье.


V8 дотор яг юу болов? Type Confusion (CWE-843)-ийн цаад механизм

JavaScript бол динамик төрөлтэй (dynamically typed) хэл. Гэвч Chrome-ийн V8 хөдөлгүүр өндөр хурд, гүйцэтгэл гаргахын тулд санах ойд массивыг хадгалахдаа ElementsKind гэж нэрлэгддэг дотоод оновчлолын төрлүүдийг ашигладаг. Жишээлбэл:

  • PACKED_SMI_ELEMENTS: Зөвхөн бүхэл тоо (Small Integers буюу Smi) агуулсан массив. V8 нь Smi утгуудыг санах ойд хадгалахдаа жинхэнэ 64-бит хаяг/заагч (pointer) үүсгэхгүйгээр бит шилжүүлж (tagging) шууд хадгалдаг тул маш хурдан ажилладаг.
  • PACKED_ELEMENTS: Санах ойн Heap дээрх объектууд руу заасан жинхэнэ заагчуудыг (heap object pointers) агуулсан массив.

Аюулгүй байдлын судлаач Салваторе Гулизиагийн (@Serotav) илрүүлсэн CVE-2026-85046 нь V8-ийн JIT (Just-In-Time) компиляци болон Hidden Class (Map) шилжилтийн үеийн логик алдаанаас үүдэлтэй юм. Тусгайлан бэлтгэсэн JavaScript кодоор дамжуулан энгийн объектын заагч агуулсан массивыг (PACKED_ELEMENTS) V8 хөдөлгүүрт цэвэр бүхэл тоон массив (PACKED_SMI_ELEMENTS) мэт ойлгуулж, map confusion үүсгэж болж байгааг тогтоожээ.

Энэ нь яагаад аюултай вэ?

JIT компилятор тухайн массивыг цэвэр тоо агуулж байна гэж андуурсан үед хөгжүүлэгчийн оруулсан санах ойн хаягуудыг энгийн тоо шиг бодож, хил хязгаарын шалгалтыг (bounds check) алгасдаг. Үр дүнд нь:

  1. Халдагч V8 Heap санах ой руу дураараа унших, бичих (arbitrary heap read/write primitive) эрхтэй болно.
  2. Heap дээрх бусад JavaScript функцийн объектуудын санах ойн заагчийг өөрийн хүссэн shellcode руу чиглүүлж, тусгаарлагдсан процесс (Sandbox) дотор шууд дурын машин код дуудах (Arbitrary Code Execution) боломжтой болдог.

Энэ бүх халдлага хэрэглэгчээс ямар нэг нэмэлт үйлдэл шаардахгүй, хортой HTML/JS хуудсыг ачаалах (page load) төдийд л амжилттай хэрэгждэг нь үүнийг маш аюултай болгож байгаа юм.


Зөвхөн Chrome биш: Хөгжүүлэгчид яагаад сэрэмжлэх ёстой вэ?

Олон хөгжүүлэгчид браузерын эмзэг байдлыг зөвхөн энгийн хэрэглэгчийн интернет үзэх асуудал гэж хардаг. Гэвч орчин үеийн программ хангамжийн экосистемд Chromium болон V8 хөдөлгүүр хаа сайгүй бий:

  1. Chromium-д суурилсан хөтчүүд: Microsoft Edge, Brave, Opera, Vivaldi зэрэг бүх браузер V8 ашигладаг тул ижил түвшинд нөлөөлнө.
  2. Electron ба Tauri/Webview десктоп аппликейшнууд: VS Code, Slack, Discord, Notion болон танай багийн хөгжүүлсэн Electron суурьтай дотоод хэрэгслүүд арын түвшинд Chromium ажиллуулдаг. Хэрэв таны апп гадны домэйноос HTML эсвэл вэб контент дуудаж харуулдаг бол энэхүү V8 RCE нь хөгжүүлэгчийн компьютерт нэвтрэх үүд хаалга болно.
  3. Headless браузер ба Backend системүүд: Орчин үед олон баг Puppeteer, Playwright эсвэл Selenium ашиглан вэб хуудас scraping хийх, PDF тайлан үүсгэх зэрэг ажлыг backend сервер, Docker контейнертээ ажиллуулдаг. Хэрэв headless Chromium хөтөч тань хэрэглэгчийн өгсөн дурын URL хаягийг эсвэл баталгаагүй вэб хуудсыг нээж байгаа бол халдагч таны контейнер болон сервер дээр код дуудах боломжтой.

Хөгжүүлэгчийн авах ёстой яаралтай арга хэмжээнүүд

  • Chrome болон бусад хөтчөө даруй шинэчлэх: Хөтчийнхөө chrome://settings/help хэсэг рүү орж, хувилбар 152.0.7977.82 буюу түүнээс дээш болсон эсэхийг шалгаж, хөтчөө бүрэн restart хийнэ үү.
  • CI/CD болон Container Image-үүдээ шинэчлэх: Хэрэв та backend дээрээ Puppeteer / Playwright ашигладаг бол суурь Chromium багцуудыг (apt-get upgrade chromium эсвэл шинэ base image татаж) хамгийн сүүлийн хувилбар руу нь сэргээж деплой хийх шаардлагатай.
  • Electron төслүүдийнхээ хувилбарыг хянах: Electron баг Chromium-ийн засварыг багтаасан шинэ minor хувилбар гаргамагц төслийнхөө хамаарлыг (dependencies) цаг алдалгүй шинэчлэх нь зүйтэй.

V8 зэрэг хэт нарийн төвөгтэй, хурдад чиглэсэн JIT компиляторуудад төрөл андуурах (Type Confusion) алдаа байнга гарсаар байгаа нь орчин үеийн вэб технологи хэчнээн хүчирхэг боловч төдий чинээ гүн хамгаалалт шаарддагийг сануулж байна.


Эх сурвалж:

  • NIST National Vulnerability Database (NVD) — CVE-2026-85046 Detail
  • Google Chrome Releases & CISA Known Exploited Vulnerabilities Catalog
  • The Hacker News: "Google Releases Chrome Update to Patch Actively Exploited V8 Zero-Day"

Сэтгэгдэл

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