vấn đề
Mã gọi string_interpret_escape() phân bổ bộ đệm cho cống dựa trên kích thước thực tế và con trỏ hiển thị sẽ kết thúc ở một khu vực bên ngoài giới hạn của bộ đệm. Theo đó, khi cố gắng xử lý một chuỗi đầu vào, sẽ xảy ra tình huống khi đọc dữ liệu từ một khu vực nằm ngoài giới hạn của bộ đệm được phân bổ và việc cố gắng ghi một chuỗi không thoát có thể dẫn đến việc ghi vượt quá giới hạn của bộ đệm.
Trong cấu hình mặc định, lỗ hổng có thể bị khai thác bằng cách gửi dữ liệu được thiết kế đặc biệt tới SNI khi thiết lập kết nối an toàn tới máy chủ. Vấn đề cũng có thể bị khai thác bằng cách sửa đổi các giá trị ngang hàng trong cấu hình được định cấu hình để xác thực chứng chỉ ứng dụng khách hoặc khi nhập chứng chỉ. Có thể tấn công thông qua SNI và pedn từ khi phát hành
Một nguyên mẫu khai thác đã được chuẩn bị cho cuộc tấn công thông qua SNI, chạy trên kiến trúc i386 và amd64 trên hệ thống Linux với Glibc. Việc khai thác sử dụng lớp phủ dữ liệu trên vùng heap, dẫn đến ghi đè lên bộ nhớ nơi lưu trữ tên tệp nhật ký. Tên tệp được thay thế bằng "/../../../../../../../etc/passwd". Tiếp theo, biến có địa chỉ của người gửi sẽ được ghi đè, biến này lần đầu tiên được lưu vào nhật ký, cho phép bạn thêm người dùng mới vào hệ thống.
Cập nhật gói với các bản sửa lỗi lỗ hổng được phát hành bởi các nhà phân phối
Để khắc phục lỗ hổng này, bạn có thể tắt hỗ trợ TLS hoặc thêm
Phần ACL “acl_smtp_mail”:
điều kiện từ chối = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
điều kiện từ chối = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Nguồn: opennet.ru