Windows PowerShell hiện đưa ra cảnh báo khi chạy các tập lệnh Invoke-WebRequest.

Microsoft cho biết Windows PowerShell hiện cảnh báo khi chạy các tập lệnh sử dụng cmdlet Invoke-WebRequest để tải xuống nội dung web, nhằm ngăn chặn việc thực thi mã có khả năng gây rủi ro.

Như Microsoft giải thích, điều này giúp giảm thiểu lỗ hổng thực thi mã từ xa nghiêm trọng trong PowerShell (CVE-2025-54100), chủ yếu ảnh hưởng đến môi trường doanh nghiệp hoặc do CNTT quản lý sử dụng các tập lệnh PowerShell để tự động hóa, vì các tập lệnh PowerShell không được sử dụng phổ biến bên ngoài các môi trường đó.

Cảnh báo này đã được thêm vào Windows PowerShell 5.1, phiên bản PowerShell được cài đặt mặc định trên hệ thống Windows 10 và Windows 11, và được thiết kế để bổ sung quy trình phân tích cú pháp web an toàn tương tự như trong PowerShell 7.

PowerShell sẽ cảnh báo bạn rằng, nếu không có biện pháp phòng ngừa, các tập lệnh chứa trong các trang web được tải xuống bằng lệnh “Invoke-WebRequest” có thể được thực thi trên hệ thống của bạn. Theo mặc định, nếu bạn nhấn ‘Enter’ hoặc chọn ‘Không’, thao tác sẽ bị hủy và PowerShell sẽ đề xuất chạy lại lệnh với tham số ‘-UseBasicParsing’ để xử lý an toàn hơn.

Khi chọn ‘Có’, PowerShell sẽ phân tích trang bằng phương pháp cũ hơn (phân tích HTML đầy đủ), cho phép nội dung và các tập lệnh nhúng tải như trước. Tóm lại, chọn ‘Có’ có nghĩa là bạn chấp nhận rủi ro, trong khi chọn ‘Không’ sẽ dừng hành động để bảo vệ hệ thống của bạn.

“Windows PowerShell 5.1 hiện hiển thị lời nhắc xác nhận bảo mật khi sử dụng lệnh Invoke-WebRequest để tải các trang web mà không có tham số đặc biệt,” Microsoft giải thích trong một thông báo hôm thứ Ba.

“Lời nhắc này cảnh báo rằng các tập lệnh trong trang có thể chạy trong quá trình phân tích cú pháp và khuyên nên sử dụng tham số an toàn hơn -UseBasicParsing để tránh bất kỳ việc thực thi tập lệnh nào. Người dùng phải chọn tiếp tục hoặc hủy bỏ thao tác.”

Sau khi cài đặt bản cập nhật KB5074204 (cho Windows 11, phiên bản 24H2 và 25H2), bản cập nhật KB5074204 (cho Windows Server 2025) hoặc KB5074353 (cho Windows Server 2022), quản trị viên CNTT sẽ thấy lời nhắc xác nhận sau cảnh báo về nguy cơ thực thi mã tập lệnh:

Security Warning: Script Execution Risk
Invoke-WebRequest parses the content of the web page. Script code in the web page might be run when the page is parsed.
      RECOMMENDED ACTION:
      Use the -UseBasicParsing switch to avoid script code execution.
      Do you want to continue?
			```
 
For additional details, see [KB5074596: PowerShell 5.1: Preventing script execution from web content](https://support.microsoft.com/help/5072034).

Để tránh tình trạng các tập lệnh tự động hóa bị treo cho đến khi được xác nhận thủ công, quản trị viên nên cập nhật các tập lệnh của mình để sử dụng tham số an toàn UseBasicParsing một cách rõ ràng.

Điều quan trọng cần lưu ý là trong PowerShell, lệnh ‘curl’ được gán bí danh cho cmdlet Invoke-WebRequest, vì vậy bạn cũng sẽ thấy những cảnh báo mới này khi chạy các tập lệnh gọi lệnh curl.

“Hầu hết các tập lệnh và lệnh PowerShell sử dụng lệnh Invoke-WebRequest sẽ tiếp tục hoạt động mà không cần hoặc chỉ cần sửa đổi rất ít,” Microsoft lưu ý.

“Ví dụ, các tập lệnh chỉ tải xuống nội dung hoặc làm việc với phần thân phản hồi dưới dạng văn bản hoặc dữ liệu sẽ không bị ảnh hưởng và không cần thay đổi.”