4 lỗ hổng vượt ra khỏi kiểm soát an ninh của OpenVPN

By | 5:31 pm | 22/06/2017

openvpntech_logo

OpenVPN là một trong những giải pháp phần mềm mã nguồn mở phổ biến và được sử dụng rộng rãi nhất được sử dụng cho các nhu cầu kết nối khác nhau.

Nhà nghiên cứu Guido Vranken của Hà Lan đã sử dụng kỹ thuật fuzzer phát hiện ra 4 lỗ hổng bảo mật trong OpenVPN vượt ra khỏi kiểm soát an ninh, đó là:

  • CVE-2017-7521: được đưa vào danh sách bảo mật OpenVPN ngày 13 tháng 5
  • CVE-2017-7520: được đưa vào danh sách bảo mật OpenVPN ngày 19 tháng 5
  • CVE-2017-7508: được đưa vào danh sách bảo mật OpenVPN ngày 20 tháng 5
  • CVE-2017-7522: được đưa vào danh sách bảo mật OpenVPN ngày 22 tháng 5

Ba trong số bốn lỗ hổng mà nhà nghiên cứu phát hiện là về phía server, hai trong số đó khiến server bị crash, lỗ hổng còn lại là lỗi ở phía client cho phép kẻ tấn công đánh cắp mật khẩu để truy cập vào proxy.

CVE-2017-7521: Gây “Double-free” trong –x509-alt-username

Lỗ hổng này nằm ở hàm extract_x509_extension() liên quan đến chứng thư SSL. OpenVPN không kiểm tra giá trị trả về của ASN1_STRING_to_UTF8() ở trong hàm extract_x509_extension(). Việc bỏ qua các lỗi như vậy có thể dẫn đến lỗi double-free, và gây crash server.

CVE-2017-7520: Pre-authentication remote gây crash hoặc tiết lộ thông tin của client

Nếu client sử dụng HTTP proxy với xác thực NTLM (Ví dụ: “–http-proxy <server> <port> [<authfile>|’auto’|’auto-nct’] ntlm2”), một kẻ tấn công MITM giữa client và proxy có thể làm cho client bị crash hoặc gây rò rỉ 96 byte stack memory. Stack memory bị rò rỉ có thể chứa mật khẩu proxy. Nếu mật khẩu proxy không được sử dụng lại, điều này sẽ không ảnh hưởng đến tính bảo mật của đường hầm OpenVPN. Client không sử dụng tuỳ chọn –http-proxy với xác thực ntlm2 cũng sẽ không bị ảnh hưởng.

CVE-2017-7508: Hàm ASSERT() có thể kích hoạt từ xa bằng cách gửi các gói tin IPv6 bị thay đổi đến máy chủ OpenVPN.

Lỗ hổng này có tính chất nghiêm trọng: Kẻ tấn công có thể sử dụng lỗ hổng này để shudown từ xa một OpenVPN server hoặc client nếu IPv6 và –mssfix được kích hoạt và các mạng IPv6 được sử dụng bên trong VPN được biết đến.

CVE-2017-7522

asn1_buf_to_c_string() trả về một chuỗi string nếu đầu vào ASN.1 chứa một ký tự NULL. Kẻ tấn công mong sẽ cố gắng thay đổi chuỗi này nhằm gây crash server, bằng cách gửi một chứng thư số với ký tự NULL được nhúng bên trong.

Kết luận:

Để khắc phục, người dùng nên cập nhật cài đặt lên phiên bản mới nhất càng sớm càng tốt.

Để tìm hiểu chi tiết về lỗ hổng và cách khai thác, hãy đọc thêm bài nghiên cứu của Guido Vranken tại blog cá nhân của ông.