Nhà nghiên cứu bảo mật của Legal Hackers Dawid Golunski đã công bố chi tiết về lỗ hổng đặt lại mật khẩu trái phép trong lõi WordPress. Golunski đã chứng minh làm thế nào, trong một số trường hợp nhất định, kẻ tấn công có thể chặn email đặt lại mật khẩu và giành quyền truy cập vào tài khoản của người dùng.

Bằng chứng của nó về khái niệm sử dụng WordPress sử dụng biến TÊN MÁY CHỦ lấy tên máy chủ của máy chủ để tạo tiêu đề Từ / Return-Path gửi lại mật khẩu e-mail.

Các máy chủ web chính như Apache đặt biến SERVER_NAME theo mặc định bằng cách sử dụng tên máy chủ do máy khách cung cấp (trong tiêu đề HTTP_HOST):

Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Vì SERVER_NAME có thể được sửa đổi, kẻ tấn công có thể định cấu hình nó trong một miền tùy ý theo lựa chọn của mình, ví dụ:

Attackers-mxserver.com

Điều này sẽ cung cấp cho WordPress cấu hình $ from_email để

[email được bảo vệ]

Và do đó, gây ra một email gửi đi với đường dẫn Trả về / Trả về trên địa chỉ độc hại đó.

Kết quả của cuộc tấn công cụ thể này sẽ phụ thuộc vào môi trường máy chủ, cấu hình cụ thể của máy chủ thư và trong một số trường hợp sẽ yêu cầu sự tương tác của người dùng. Báo cáo của Golunski bao gồm phân tích cụ thể hơn về các phương pháp khả thi có thể được sử dụng.

Sau khi báo cáo vấn đề với nhóm bảo mật WordPress vào tháng 2016 năm XNUMX và cũng thông qua Website HackerOne, Golunski không thấy tiến triển và quyết định xuất bản chi tiết về lỗ hổng cho công chúng.

Mặc dù vẫn chưa có bản vá chính thức, ngôi sao bảo mật WordPress Aaron Campbell cho biết vấn đề không nghiêm trọng như nó có thể xảy ra.

« Đó là một vấn đề có mức độ ưu tiên thấp hơn, nhưng chúng tôi biết về nó và nó nằm trong hàng đợi của chúng tôi“Campbell nói. Ông giải thích rằng tập hợp các điều kiện duy nhất sẽ được yêu cầu cho điều này là một lỗ hổng nghiêm trọng.

« Để sự cố có ảnh hưởng đến bảo mật, máy chủ phải cho phép ghi đè tiêu đề do người dùng cung cấp $ _SERVER ['SERVER_NAME']“Campbell nói. "Chúng tôi coi cấu hình máy chủ là không đủ (chẳng hạn như 'display_errors' nếu có trên máy chủ sản xuất), điều này rất tiếc nằm ngoài tầm kiểm soát của chúng tôi."

Campbell đã thử nghiệm các máy chủ Apache và nginx cá nhân của mình và không có máy chủ nào được cấp phép cho việc này. Ngoài việc máy chủ bị định cấu hình sai, Campbell nói rằng một trong những hành động sau cũng sẽ xảy ra:

  • Người dùng phải trả lời email đặt lại mật khẩu
  • Thư trả lời tự động phải trả lời email và bao gồm bản gốc
  • Máy chủ email phải bị xâm phạm hoặc quá tải và thư được trả lại cho người gửi cùng với nội dung còn nguyên vẹn

« Nếu máy chủ của bạn dễ bị tấn công và bạn không có khả năng sửa cấu hình máy chủ, bạn vẫn không phải thực hiện bất kỳ thay đổi nào đối với các tệp WordPress để giảm bớt sự cố.“Campbell nói. "Một chút PHP như thế này trong một plugin sẽ xác định một địa chỉ email tĩnh mà bạn chọn:"

add_filter ('wp_mail_from', hàm ($ from_email) {return '[email được bảo vệ]'; });

Campbell cho biết bất kỳ thay đổi hạt nhân nào mà WordPress thực hiện có thể sẽ thông qua một vé hiện đang theo dõi vấn đề mà không có quan điểm bảo mật. Ông cho biết một bản sửa lỗi khó có thể xuất hiện trong bản phát hành bảo mật tiếp theo, nhưng nhóm đang tích cực làm việc với nó. Nếu họ tìm thấy một biện pháp giảm thiểu tốt cho vấn đề, Campbell cho biết họ sẽ chia sẻ nó khi họ tìm ra tất cả các phân nhánh tiềm ẩn.

Còn bạn ? Bạn nghĩ gì về lỗ hổng này?