OpenSSH 9.9p2 sửa hai lỗ hổng MITM nghiêm trọng

OpenSSH cung cấp một loạt các khả năng đào hầm an toàn

Vài ngày trước, Damian Miller (một trong những nhà phát triển của OpenSSH), làm cho nó được biết đến, thông qua danh sách gửi thư, Bản phát hành bảo trì OpenSSH 9.9p2 sửa hai lỗ hổng nghiêm trọng được Qualys phát hiện, có thể bị khai thác để thực hiện các cuộc tấn công Man-in-the-Middle (MITM).

Người ta đề cập rằng những lỗi này cho phép kẻ tấn công chặn các kết nối SSH và lừa khách hàng chấp nhận khóa của máy chủ độc hại thay vì khóa hợp lệ của máy chủ mục tiêu.

CVE-2025-26465: Bỏ qua xác minh khóa SSH

Lỗ hổng bảo mật đầu tiên được khắc phục trong phiên bản sửa lỗi này là CVE-2025-26465. Lỗ hổng này là do lỗi logic trong tiện ích ssh, cho phép kẻ tấn công bỏ qua xác minh khóa máy chủ và thực hiện thành công cuộc tấn công MITM.

Khi một máy khách cố gắng kết nối đến máy chủ SSH, Kẻ tấn công có thể chuyển hướng lưu lượng truy cập đến một máy chủ giả mạo và khiến máy khách chấp nhận khóa không chính xác mà không có cảnh báo, vì tin rằng máy khách được kết nối với máy chủ hợp lệ.

Ngoài ra, lỗ hổng này:

  • Tính năng này đã có trong OpenSSH kể từ phiên bản 6.8p1 (tháng 2014 năm XNUMX).
  • Được kích hoạt khi tùy chọn VerifyHostKeyDNS được bật.
  • Trong cấu hình OpenSSH cơ bản, tùy chọn này bị tắt theo mặc định, nhưng trong FreeBSD, nó được bật cho đến tháng 2023 năm XNUMX.

Về nguyên nhân gây ra sự thất bại này, người ta đề cập rằng Điều này là do hàm verify_host_key_callback() gọi verify_host_key(), nhưng nó chỉ kiểm tra xem mã lỗi trả về có phải là -1 hay không, bỏ qua các mã lỗi khác như -2. Khi verify_host_key() trả về -2 khi không đủ bộ nhớ, nhưng do thiếu mã lỗi, Hệ thống nhầm lẫn cho rằng khóa máy chủ đã được xác minh một cách chính xác.

Do đó, kẻ tấn công có thể khai thác lỗ hổng này bằng cách tạo một máy chủ SSH giả gửi khóa máy chủ lớn (256 KB), gây tốn bộ nhớ quá mức trên máy khách và kích hoạt tình trạng lỗi không xử lý được.

CVE-2025-26466: Rò rỉ bộ nhớ và tiêu thụ CPU quá mức trong SSH

Lỗ hổng thứ hai đã được sửa là CVE-2025-26466 và lỗ hổng này ảnh hưởng đến cả máy khách ssh và máy chủ sshd, từ cho phép cạn kiệt bộ nhớ của quy trình và tạo ra tải CPU cao bằng cách liên tục gửi các gói SSH2_MSG_PING.

Tác động lớn của lỗ hổng này nằm ở thực tế là Nó có thể bị khai thác mà không cần xác thực và ảnh hưởng đến OpenSSH kể từ phiên bản 9.5p1 (tháng 2023 năm XNUMX). Ngoài ra, nó còn cho phép kẻ tấn công sử dụng tài nguyên hệ thống, làm giảm hiệu suất và thậm chí gây ra tình trạng từ chối dịch vụ (DoS).

Về nguyên nhân gây ra lỗi này, có thể nói rằng đó là do thực tế là Mỗi gói SSH2_MSG_PING 16 byte đến sẽ khiến bộ đệm 256 byte được phân bổ trong trí nhớ. Bộ đệm này không được giải phóng cho đến khi quá trình thỏa thuận khóa hoàn tất, dẫn đến rò rỉ bộ nhớ khi nhiều gói PING được gửi.

Giảm thiểu và giải pháp

Để giải quyết, Nên thiết lập các hạn chế trong sshd_config bằng cách sử dụng các chỉ thị sau:

  • Đăng nhậpGraceTime: Điều này giới hạn thời gian chờ xác thực.
  • Công ty khởi nghiệp MaxStartup: hạn chế số lượng kết nối chưa xác thực.
  • Hình phạt của PerSource: áp dụng hình phạt cho những máy khách tạo ra nhiều lần kết nối.

Và đối với giải pháp, Đầu tiên và được khuyến khích nhất là nâng cấp OpenSSH lên phiên bản đã phát hành, “9.9p2” càng sớm càng tốt để khắc phục những lỗ hổng này. Nhưng nếu việc nâng cấp ngay lập tức không khả thi thì nên áp dụng các biện pháp giảm thiểu nêu trên. Ngoài ra, bạn nên tắt VerifyHostKeyDNS trừ khi sử dụng cơ chế xác minh DNSSEC đáng tin cậy.

Nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết sau.

Làm cách nào để cài đặt OpenSSH trên Linux?

Đối với những người quan tâm đến việc có thể cài đặt phiên bản OpenSSH mới này trên hệ thống của họ, bây giờ họ có thể làm điều đó tải xuống mã nguồn của cái này và thực hiện biên dịch trên máy tính của họ.

Điều này là do phiên bản mới vẫn chưa được đưa vào kho của các bản phân phối Linux chính. Để lấy mã nguồn, bạn có thể làm từ liên kết sau.

Đã tải xong, bây giờ chúng ta sẽ giải nén gói bằng lệnh sau:

tar -xvf openssh-9.9p2.tar.gz

Chúng tôi nhập thư mục đã tạo:

cd openssh-9.9p2

Y chúng tôi có thể biên dịch với các lệnh sau:

./configure --prefix = / opt --sysconfdir = / etc / ssh thực hiện cài đặt