Họ đã phát hiện ra một lỗ hổng trong Spring Framework

Gần đây tin tức đã phá vỡ rằng một lỗ hổng nghiêm trọng thuộc loại zero day đã được phát hiện trong mô-đun Spring Core được vận chuyển như một phần của Spring Framework, cho phép kẻ tấn công từ xa, chưa được xác thực thực thi mã của chúng trên máy chủ.

Theo một số ước tính, mô-đun Spring Core được sử dụng trong 74% ứng dụng Java. Nguy cơ về lỗ hổng bảo mật được giảm bớt do chỉ có các ứng dụng sử dụng chú thích "@RequestMapping" đểBằng cách kết nối các trình xử lý yêu cầu và sử dụng liên kết tham số biểu mẫu web ở định dạng “name = value” (POJO, Plain Old Java Object), thay vì JSON / XML, chúng dễ bị tấn công. Hiện vẫn chưa rõ các ứng dụng và khuôn khổ Java nào bị ảnh hưởng bởi sự cố này.

Lỗ hổng này, được đặt tên là "Spring4Shell", lợi dụng việc tiêm lớp dẫn đến RCE đầy đủ và rất nghiêm trọng. Tên "Spring4Shell" được chọn vì Spring Core là một thư viện phổ biến, tương tự như log4j đã tạo ra lỗ hổng Log4Shell khét tiếng.

Chúng tôi tin rằng người dùng chạy JDK phiên bản 9 trở lên dễ bị tấn công RCE. Tất cả các phiên bản của Spring Core đều bị ảnh hưởng.

Có các chiến lược để giảm thiểu cuộc tấn công và chúng tôi tin rằng không phải tất cả các máy chủ Spring đều dễ bị tấn công, tùy thuộc vào các yếu tố khác được thảo luận bên dưới. Điều đó nói rằng, chúng tôi hiện khuyên tất cả người dùng áp dụng các biện pháp giảm nhẹ hoặc nâng cấp nếu họ đang sử dụng Spring Core.

Việc khai thác lỗ hổng chỉ có thể thực hiện được khi sử dụng Java / JDK 9 hoặc phiên bản mới hơn. Lỗ hổng bảo mật chặn danh sách đen các trường "lớp", "mô-đun" và "classLoader" hoặc sử dụng danh sách trắng rõ ràng các trường được phép.

Vấn đề là do khả năng bỏ qua bảo vệ chống lại lỗ hổng CVE-2010-1622, Đã sửa lỗi trong Spring Framework năm 2010 và được liên kết với việc thực thi trình xử lý classLoader khi phân tích cú pháp các tham số yêu cầu.

Hoạt động của việc khai thác được giảm xuống để gửi một yêu cầu cvới các tham số "class.module.classLoader.resources.context.parent.pipeline.first. *", việc xử lý tham số, khi sử dụng "WebappClassLoaderBase", dẫn đến một cuộc gọi đến lớp AccessLogValve.

Lớp được chỉ định cho phép bạn định cấu hình trình ghi nhật ký để tạo tệp jsp tùy ý trong môi trường gốc của Apache Tomcat và viết mã do kẻ tấn công chỉ định vào tệp này. Tệp được tạo sẵn có cho các yêu cầu trực tiếp và có thể được sử dụng như một trình bao web. Để tấn công một ứng dụng dễ bị tấn công trong môi trường Apache Tomcat, chỉ cần gửi một yêu cầu với các tham số nhất định bằng tiện ích curl là đủ.

Vấn đề đang được xem xét trong Spring Core không bị nhầm lẫn với các lỗ hổng mới được xác định CVE-2022-22963 và CVE-2022-22950. Vấn đề đầu tiên ảnh hưởng đến gói Spring Cloud và cũng cho phép thực hiện (khai thác) mã từ xa. CVE-2022-22963 được sửa trong bản phát hành Spring Cloud 3.1.7 và 3.2.3.

Sự cố thứ hai CVE-2022-22950 có trong Spring Expression, có thể được sử dụng để khởi chạy các cuộc tấn công DoS và được khắc phục trong Spring Framework 5.3.17. Đây là những lỗ hổng cơ bản khác nhau. Các nhà phát triển Spring Framework vẫn chưa đưa ra bất kỳ tuyên bố nào về lỗ hổng mới và cũng chưa đưa ra bản sửa lỗi.

Như một biện pháp bảo vệ tạm thời, bạn nên sử dụng danh sách đen các tham số truy vấn không hợp lệ trong mã của mình.

Vẫn không rõ hậu quả có thể thảm khốc đến mức nào về vấn đề đã xác định và liệu các cuộc tấn công có quy mô như trong trường hợp lỗ hổng trong Log4j 2. Lỗ hổng này có tên mã là Spring4Shell, CVE-2022-22965 và các bản cập nhật Spring Framework 5.3.18 và 5.2.20 đã được phát hành hay không để giải quyết lỗ hổng bảo mật.

Bản vá hiện có sẵn kể từ ngày 31 tháng 2022 năm 5.3.18 trong các phiên bản Spring phát hành mới nhất 5.2.20 và XNUMX. Chúng tôi khuyến nghị tất cả người dùng nâng cấp. Đối với những người không thể nâng cấp, có thể thực hiện các biện pháp giảm thiểu sau:

Dựa trên bài đăng của Praetorian xác nhận sự hiện diện của RCE trong Spring Core, phương pháp được khuyến nghị hiện tại là vá DataBinder bằng cách thêm vào danh sách đen các mẫu trường dễ bị tổn thương cần khai thác.

Cuối cùng là có bạn muốn biết thêm về nó về ghi chú, bạn có thể kiểm tra chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.