Lỗ hổng Angular Nghiêm Trọng: Đánh cắp Token XSRF Khẩn cấp

Một **lỗ hổng bảo mật nghiêm trọng** đã được phát hiện trong framework **Angular**, có khả năng cho phép kẻ tấn công đánh cắp các token bảo mật nhạy cảm của người dùng. **Lỗ hổng Angular** này tạo ra một nguy cơ đáng kể đối với an toàn dữ liệu trong các ứng dụng web.
Phân Tích Kỹ Thuật Lỗi Logic Xử Lý URL trong Angular HttpClient
Lỗ hổng này, được theo dõi là **CVE-2025-66035**, ảnh hưởng đến thành phần **Angular HttpClient** và liên quan đến việc rò rỉ ngoài ý muốn các token Cross-Site Request Forgery (XSRF).
Các ứng dụng Angular sử dụng một cơ chế bảo vệ tích hợp để ngăn chặn các cuộc tấn công Cross-Site Request Forgery (CSRF). Hệ thống này hoạt động bằng cách gán một “token” bí mật cho phiên người dùng. Bất cứ khi nào ứng dụng gửi một yêu cầu đến máy chủ, nó sẽ bao gồm token này để chứng minh yêu cầu là hợp lệ.
Cơ Chế Bảo Vệ XSRF Trong Angular
Cơ chế bảo vệ XSRF của Angular được thiết kế để đảm bảo rằng mọi yêu cầu gửi đi từ ứng dụng web đến máy chủ đều là do người dùng thực sự khởi tạo. Nó hoạt động dựa trên việc so sánh một token bí mật được lưu trữ trên client (ví dụ: trong cookie) với một token khác được gửi trong header của yêu cầu.
Khi hai token này khớp nhau, yêu cầu được coi là hợp lệ. Mục tiêu là ngăn chặn các cuộc tấn công mà kẻ tấn công có thể lừa trình duyệt của người dùng gửi các yêu cầu trái phép đến máy chủ.
Lỗi Logic Xác Định Nguồn Gốc Yêu Cầu
Điểm yếu của **lỗ hổng Angular** này nằm ở việc Angular xác định liệu một yêu cầu có an toàn hay không. Hệ thống kiểm tra các URL đích để quyết định có nên đính kèm token bí mật này hay không.
Thật không may, logic đã nhận diện không chính xác các URL bắt đầu bằng **//** (URL giao thức tương đối) là các yêu cầu “cùng nguồn gốc” hoặc cục bộ. Điều này tạo ra một **CVE nghiêm trọng** cần được khắc phục.
Nếu một nhà phát triển vô tình sử dụng một URL giao thức tương đối (ví dụ: **//attacker.com**) trong một yêu cầu HTTP, Angular sẽ nhầm lẫn coi đó là một URL hợp lệ và gửi token XSRF bí mật của người dùng đến miền bên ngoài đó.
Việc không phân biệt đúng giữa các yêu cầu nội bộ và bên ngoài là nguyên nhân cốt lõi dẫn đến **lỗ hổng Angular** này. Sự hiểu lầm về nguồn gốc URL mở đường cho việc rò rỉ thông tin nhạy cảm.
Kịch Bản Khai Thác và Tác Động Chiếm Quyền Điều Khiển
Giả sử kẻ tấn công thành công trong việc lừa ứng dụng gửi một yêu cầu đến một miền mà chúng kiểm soát. Trong trường hợp đó, chúng có thể thu thập được token XSRF hợp lệ của người dùng.
Với khóa bị đánh cắp này, kẻ tấn công có thể vượt qua hoàn toàn cơ chế bảo vệ CSRF. Điều này cho phép chúng thực hiện các hành động trái phép thay mặt nạn nhân, chẳng hạn như thay đổi cài đặt tài khoản, gửi các giao dịch gian lận hoặc thực hiện bất kỳ thao tác nào khác mà người dùng có quyền.
Khả năng chiếm quyền điều khiển tài khoản thông qua việc đánh cắp token XSRF biến **lỗ hổng Angular** này thành một rủi ro bảo mật cao, ảnh hưởng trực tiếp đến tính toàn vẹn và bảo mật của dữ liệu người dùng.
Các Phiên Bản Bị Ảnh Hưởng và Yêu Cầu Bản Vá Bảo Mật Khẩn Cấp
**Lỗ hổng Angular** này ảnh hưởng đến nhiều phiên bản của framework. Các nhóm phát triển sử dụng Angular cần nâng cấp lên các phiên bản đã được vá lỗi ngay lập tức để đảm bảo ứng dụng của họ an toàn.
Việc áp dụng **bản vá bảo mật** là bước quan trọng nhất để loại bỏ rủi ro do **CVE-2025-66035** gây ra. Không nâng cấp sẽ khiến ứng dụng tiếp tục dễ bị tấn công.
Thông tin chi tiết về các phiên bản bị ảnh hưởng và các bản cập nhật cần thiết có thể được tìm thấy trong thông báo bảo mật chính thức của Angular. Để biết thêm thông tin chi tiết về các phiên bản bị ảnh hưởng và khuyến nghị nâng cấp, hãy tham khảo GitHub Security Advisory GHSA-58c5-g7wp-6w37.
Biện Pháp Giảm Thiểu Tức Thời Cho Lỗ Hổng Angular
Nếu việc nâng cấp ngay lập tức không khả thi, có một biện pháp khắc phục tạm thời có sẵn để giảm thiểu rủi ro từ **lỗ hổng Angular** này. Các nhà phát triển phải đảm bảo rằng mã của họ tránh sử dụng URL giao thức tương đối (bắt đầu bằng **//**).
Thay vào đó, tất cả các yêu cầu backend nên sử dụng đường dẫn tương đối (bắt đầu bằng **/**) hoặc URL tuyệt đối đủ tiêu chuẩn (bắt đầu bằng **https://**). Việc tuân thủ quy tắc này sẽ ngăn chặn việc Angular gửi token XSRF đến các miền bên ngoài không mong muốn.
Biện pháp phòng ngừa này giúp hạn chế nguy cơ rò rỉ token do **lỗ hổng Angular** gây ra trong khi chờ đợi việc áp dụng **bản vá bảo mật** chính thức. Điều này đặc biệt quan trọng để bảo vệ các ứng dụng khỏi nguy cơ bị chiếm quyền điều khiển.







