Lỗi XSS trong jQuery của jquery có thể thực thi mã không đáng tin cậy

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2020-11022 là gì?

Lỗ hổng CVE-2020-11022 là lỗ hổng Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') ảnh hưởng tới jQuery (phiên bản bị ảnh hưởng: >= 1.12.0, < 3.5.0). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 6.9. Lỗ hổng này đã có mã hoặc bằng chứng khai thác công khai, nhưng điều đó chưa xác nhận việc khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Trong jQuery bắt đầu từ phiên bản 1.12.0 và trước phiên bản 3.5.0, việc truyền HTML từ các nguồn không đáng tin cậy, ngay cả sau khi đã được sanitize, vào một trong các phương thức thao tác DOM của jQuery, tức là.html(),.append() và các phương thức khác, có thể thực thi mã không đáng tin cậy. Vấn đề này đã được vá trong jQuery 3.5.0.

Sản phẩm và phạm vi ảnh hưởng

Các facts của CNA xác định jQuery bị ảnh hưởng trong phạm vi >= 1.12.0, < 3.5.0. jQuery 3.5.0 là phiên bản đã được xác nhận là đã vá cho thư viện này. GitHub advisory cũng ánh xạ một số downstream package với ranh giới riêng: jquery-rails < 4.4.0, đã vá tại 4.4.0; maximebf/debugbar < 1.19.0, đã vá tại 1.19.0; và org.webjars.npm:jquery >= 1.12.0, < 3.5.0, đã vá tại 3.5.0. Bằng chứng được cung cấp cũng có CPE enrichment của NVD bắt đầu từ 1.2, rộng hơn phạm vi CNA và không hoàn toàn nhất quán; vì vậy trạng thái của jQuery từ 1.2.x đến 1.11.x không được xác nhận bởi product facts của CNA.

Chi tiết kỹ thuật

htmlPrefilter cũ của jQuery dùng regular expression để chuyển đổi các thẻ tự đóng theo kiểu XHTML trước khi chuỗi được xử lý bởi các phương thức thao tác DOM. Nhóm jQuery xác nhận rằng một số trường hợp biên trong phép chuyển đổi này có thể làm biến đổi HTML đã được sanitize, khiến mã không đáng tin cậy được thực thi khi chuỗi kết quả được truyền vào các phương thức như .html() và .append(). Bản vá thay đổi htmlPrefilter để trả về nguyên trạng đầu vào, loại bỏ bước chuyển đổi gây rủi ro. Điều kiện khai thác phụ thuộc vào việc ứng dụng đưa HTML do người dùng kiểm soát hoặc HTML từ nguồn không đáng tin cậy vào các luồng xử lý này; route cụ thể và payload của từng ứng dụng không được xác định trong bằng chứng hiện có. Bản ghi được cung cấp cho thấy việc khai thác có thể thực hiện qua mạng, không yêu cầu quyền xác thực và cần user interaction.

Khả năng khai thác

  • Lỗi có thể được tiếp cận qua mạng khi ứng dụng web đưa HTML không đáng tin cậy vào các phương thức thao tác DOM bị ảnh hưởng.
  • Không yêu cầu attacker có quyền xác thực, nhưng người dùng phải tương tác hoặc tải trang theo luồng phù hợp để mã được thực thi.
  • CNA mô tả attack complexity là cao, trong khi một đánh giá khác trong bản ghi mô tả là thấp; khả năng khai thác thực tế phụ thuộc vào cách ứng dụng tiếp nhận và truyền HTML.
  • Bản ghi chuẩn hóa đánh dấu public exploit là có, nhưng không nêu tên exploit cụ thể, chiến dịch, nạn nhân hoặc sự cố khai thác thực tế đã được xác nhận.

Tác động kỹ thuật

Khi điều kiện xử lý phù hợp xảy ra, attacker-controlled HTML có thể dẫn đến script execution trong context của trang web. Hậu quả có thể gồm đọc dữ liệu mà trang truy cập được, thay đổi nội dung hoặc trạng thái trang, và thực hiện hành động trong phạm vi quyền của người dùng đang tương tác. Bản ghi chỉ ra scope có thể lan từ thư viện sang ứng dụng sử dụng nó và không chỉ ra tác động đến availability; lỗi này không tự nó chứng minh server-side code execution. Khả năng bị ảnh hưởng bị giới hạn ở các ứng dụng thực sự đưa HTML không đáng tin cậy vào các đường xử lý liên quan.

Tác động đến tổ chức

  • Script độc hại có thể chạy trong browser context của trang bị ảnh hưởng, từ đó có khả năng đọc dữ liệu mà trang được phép truy cập hoặc thay đổi trạng thái giao diện.
  • Tùy quyền của trang và người dùng, mã được thực thi có thể thực hiện các thao tác thay mặt người dùng trong phạm vi ứng dụng.
  • Doanh nghiệp có thể phải điều tra các bản sao jQuery được vendoring hoặc bundling trong nhiều ứng dụng, cũng như kiểm thử các thay đổi tương thích khi nâng cấp.
  • Bằng chứng hiện có không xác nhận breach, mất dữ liệu cụ thể hoặc gián đoạn dịch vụ; tác động thực tế phụ thuộc vào dữ liệu và quyền của trang sử dụng jQuery.

Cách khắc phục

  1. Nâng cấp jQuery lên phiên bản 3.5.0, là phiên bản đã được xác nhận sửa lỗi, sau khi kiểm thử các thay đổi liên quan đến cách xử lý thẻ tự đóng và HTML không hợp lệ.
  2. Kiểm tra tất cả bản sao được vendoring, bundling, phân phối qua CDN hoặc kéo vào thông qua downstream package. Không chỉ cập nhật dependency manifest nếu asset thực tế vẫn chứa bản jQuery cũ.
  3. Nếu chưa thể nâng cấp, advisory cung cấp workaround bằng cách đặt jQuery.htmlPrefilter = function( html ) { return html; };. Workaround này chỉ phù hợp với các phiên bản hỗ trợ cách ghi đè đó, được advisory mô tả là ít nhất jQuery 1.12 hoặc 2.2 trở lên, và phải được kiểm thử riêng trong ứng dụng.
  4. Không khôi phục legacy htmlPrefilter như một giải pháp bảo mật thay thế. Hướng dẫn nâng cấp của jQuery cảnh báo rằng việc khôi phục hành vi cũ sẽ làm mất security fix và regular HTML sanitizing có thể không đủ.
  5. Sau khi thay đổi, rà soát các sanitizer và mọi luồng truyền HTML vào phương thức thao tác DOM, đồng thời kiểm thử hồi quy các component phụ thuộc vào thẻ tự đóng.

Cách phát hiện

  • Kiểm kê các file JavaScript được triển khai, SBOM, lockfile và dependency manifest để xác định jQuery được tải trực tiếp hoặc được đóng gói trong ứng dụng.
  • Kiểm tra các package và deployment liên quan như jquery, components/jquery, jquery-rails, maximebf/debugbar và org.webjars.npm:jquery, sau đó đối chiếu phiên bản thực tế với phạm vi bị ảnh hưởng.
  • Rà soát mã nguồn để tìm .html(), .append() và các phương thức thao tác DOM khác nhận HTML từ request, dữ liệu người dùng hoặc nguồn bên ngoài, kể cả sau bước sanitize.
  • Kiểm tra việc ghi đè jQuery.htmlPrefilter hoặc khôi phục legacy prefilter, vì các thay đổi này có thể làm thay đổi hiệu quả của bản vá hoặc cách jQuery xử lý HTML.
  • Có thể xem CSP violation reports và browser telemetry để phát hiện script execution bất thường như một biện pháp giám sát bổ sung. Không có IOC cụ thể được xác lập trong bằng chứng hiện có, và việc không thấy log không chứng minh hệ thống an toàn.
Nguồn (80)
GitHub_M (CNA)
lists.apache.org
r49ce4243b4738dd763caeb27fa8ad6afb426ae3e8c011ff00b8b1f48@<issues.flink.apache.org>r54565a8f025c7c4f305355fdfd75b68eca442eebdb5f31c2e7d977ae@<issues.flink.apache.org>r564585d97bc069137e64f521e68ba490c7c9c5b342df5d73c49a0760@<issues.flink.apache.org>r706cfbc098420f7113968cc377247ec3d1439bce42e679c11c609e2d@<issues.flink.apache.org>r8f70b0f65d6bedf316ecd899371fd89e65333bc988f6326d2956735c@<issues.flink.apache.org>rbb448222ba62c430e21e13f940be4cb5cfc373cd3bce56b48c0ffa67@<dev.flink.apache.org>rdf44341677cf7eec7e9aa96dcf3f37ed709544863d619cca8c36f133@<commits.airflow.apache.org>re4ae96fa5c1a2fe71ccbb7b7ac1538bd0cb677be270a2bf6e2f8d108@<issues.flink.apache.org>rede9cfaa756e050a3d83045008f84a62802fc68c17f2b4eabeaae5e4@<issues.flink.apache.org>ree3bd8ddb23df5fa4e372d11c226830ea3650056b1059f3965b3fce2@<issues.flink.apache.org>r0483ba0072783c2e1bfea613984bfb3c86e73ba8879d780dc1cc7d36@<issues.flink.apache.org>r49ce4243b4738dd763caeb27fa8ad6afb426ae3e8c011ff00b8b1f48@<issues.flink.apache.org>r54565a8f025c7c4f305355fdfd75b68eca442eebdb5f31c2e7d977ae@<issues.flink.apache.org>r564585d97bc069137e64f521e68ba490c7c9c5b342df5d73c49a0760@<issues.flink.apache.org>r706cfbc098420f7113968cc377247ec3d1439bce42e679c11c609e2d@<issues.flink.apache.org>r8f70b0f65d6bedf316ecd899371fd89e65333bc988f6326d2956735c@<issues.flink.apache.org>rbb448222ba62c430e21e13f940be4cb5cfc373cd3bce56b48c0ffa67@<dev.flink.apache.org>rdf44341677cf7eec7e9aa96dcf3f37ed709544863d619cca8c36f133@<commits.airflow.apache.org>re4ae96fa5c1a2fe71ccbb7b7ac1538bd0cb677be270a2bf6e2f8d108@<issues.flink.apache.org>rede9cfaa756e050a3d83045008f84a62802fc68c17f2b4eabeaae5e4@<issues.flink.apache.org>ree3bd8ddb23df5fa4e372d11c226830ea3650056b1059f3965b3fce2@<issues.flink.apache.org>
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.

Khám phá các giải pháp khác liên quan