FlawOpen

flawopen.com/Incidents/angle-cross-platform-zero-day-december-2025

● Google / Apple · CVE-2025-14174 · December 2025 · CVSS 8.8 · Tinggi
Riset Keamanan · FlawOpen

CVE-2025-14174: celah ANGLE di Chrome dan rujukan CVE Apple

Google mengonfirmasi eksploitasi ANGLE di Chrome. Apple memakai CVE ini untuk masalah inisialisasi memori WebKit yang berbeda.

💡 Penjelasan Sederhana (ELI5)

Petugas yang menyalin formulir melewati kotak yang ditentukan hingga masuk ke catatan berikutnya menggambarkan akses di luar batas. Buku perkara juga dapat memakai ulang nomor untuk entri berbeda; ID yang sama tidak membuktikan cacatnya sama.

Konsep Kunci & Istilah

ANGLE
Almost Native Graphics Layer Engine: pustaka sumber terbuka Google yang menerjemahkan panggilan OpenGL ES dan WebGL ke API asli seperti Metal, Direct3D, dan Vulkan.
Backend Metal
Bagian ANGLE untuk API Metal. Google menyebut masalah ANGLE di Chrome untuk Mac, tetapi tidak mengungkap fungsi terdampak atau mekanisme perbaikannya.
Akses di luar batas (CWE-787)
Akses di luar batas (CWE-787): operasi mengakses memori di luar batas buffer yang semestinya. CWE-787 secara khusus mengklasifikasikan penulisan di luar batas; Google tidak mengungkap operasi tepat atau penyebabnya.
Aritmetika terperiksa
Operasi integer yang melaporkan luapan alih-alih diam-diam berputar balik, seperti base::CheckedNumeric di Chromium dan ANGLE.
Zero-day
Zero-day adalah cacat yang dieksploitasi sebelum perbaikan tersedia. Google mengonfirmasi eksploitasi masalah ANGLE di Chrome. Apple secara terpisah menjelaskan eksploitasi tertarget atas masalah WebKit dalam advis iOS 26.2.

Pemetaan kerangka kerja

Kronologi Insiden

2025-12-10

Google merilis Chrome 143.0.7499.110 untuk macOS dan menyatakan bahwa eksploit untuk masalah ANGLE ini sudah beredar (issue Chromium 466192044).

2025-12-12

Advis Apple mencantumkan CVE-2025-14174 untuk masalah inisialisasi memori WebKit dan secara terpisah CVE-2025-43529 untuk kerusakan memori WebKit. Apple menyebut laporan kedua mungkin terkait eksploitasi tertarget; ini tidak membuktikan akar masalah bersama dengan ANGLE Chrome. CISA menambahkan CVE-2025-14174 ke KEV.

Alur Serangan Langkah demi Langkah

Langkah 1

Halaman rekaan mencapai lapisan grafis

Catatan CVE menjelaskan halaman HTML yang dirancang khusus untuk memicu masalah ANGLE di Chrome untuk Mac. Vektor CVSS memerlukan interaksi pengguna, sehingga korban harus membuka konten web yang dikendalikan penyerang.

Langkah 2

ANGLE menerjemahkan ke Metal

Google mengidentifikasi ANGLE sebagai komponen Chrome yang terdampak. Advis publik tidak menyebut fungsi penyebab dan tidak mengatakan WebKit memakai kode rentan yang sama.

Langkah 3

Memori di luar buffer diakses

Google menjelaskan akses memori di luar batas, tetapi tidak mengungkap apakah operasi membaca atau menulis, buffer terdampak, atau penyebabnya. Kode berikut adalah contoh umum, bukan kode ANGLE atau rekonstruksi CVE.

Langkah 4

Dipakai dalam serangan tertarget

Google mengonfirmasi eksploitasi CVE-2025-14174. Apple secara terpisah melaporkan eksploitasi tertarget terhadap masalah WebKit dan memakai CVE ini untuk entri inisialisasi memori WebKit. Advis publik tidak menetapkan rantai bersama antara Chrome dan WebKit.

Kode Sumber: Rentan vs Aman

Google tidak memublikasikan akar masalah pada tingkat fungsi atau detail patch. Contoh C++20 umum ini memvalidasi offset lalu membandingkan panjang yang diminta dengan kapasitas tersisa memakai pengurangan untuk menghindari overflow. Ini bukan reproduksi CVE atau perbaikan ANGLE yang sebenarnya.

IMPLEMENTASI RENTAN
// Ini hanya contoh umum; bukan kode sumber ANGLE atau implementasi CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
               std::size_t offset,
               std::span<const std::byte> source)
{
    std::copy(source.begin(), source.end(), destination.begin() + offset);
    return true;
}
PERBAIKAN AMAN & KUAT
// Ini hanya contoh umum; bukan kode sumber ANGLE atau patch CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
               std::size_t offset,
               std::span<const std::byte> source)
{
    if (offset > destination.size() ||
        source.size() > destination.size() - offset) {
        return false;
    }

    std::copy(source.begin(), source.end(), destination.begin() + offset);
    return true;
}

Daftar Periksa Penguatan Sistem Rekayasa

Sumber