Lỗi DNS-rebinding TOCTOU trong bộ bảo vệ SSRF của mealie-recipes Mealie

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-71210 là gì?

Lỗ hổng CVE-2026-71210 là lỗ hổng Time-of-check Time-of-use (TOCTOU) Race Condition ảnh hưởng tới mealie (phiên bản bị ảnh hưởng: 0). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.3. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Bộ bảo vệ SSRF AsyncSafeTransport của Mealie (mealie/pkgs/safehttp/transport.py) phân giải hostname đích một lần, kiểm tra IP đã phân giải against các quy tắc dải mạng riêng, nhưng sau đó thực hiện request HTTP outbound thực tế bằng hostname ban đầu, khiến underlying async transport tự phân giải lại độc lập.

Sản phẩm và phạm vi ảnh hưởng

  • CNA record xác định vendor mealie-recipes, product mealie và đánh dấu version 0 là affected; default_status là unknown.
  • GitHub Advisory Database liệt kê affected versions và patched versions là unknown.
  • Chưa có range theo branch, điều kiện deployment bổ sung hoặc fixed release nào được xác nhận. Không nên suy ra rằng các version hoặc branch khác an toàn chỉ từ các dữ kiện hiện có.

Chi tiết kỹ thuật

Lỗi nằm trong AsyncSafeTransport tại mealie/pkgs/safehttp/transport.py. Khi nhận hostname do người dùng kiểm soát, transport phân giải hostname một lần rồi kiểm tra địa chỉ IP đã nhận được against các quy tắc chặn dải mạng riêng. Tuy nhiên, request HTTP tiếp theo vẫn dùng hostname ban đầu, để underlying async transport tự phân giải lại thay vì ghim kết nối vào địa chỉ IP đã được kiểm tra. Kẻ tấn công kiểm soát DNS có thể trả về địa chỉ công khai trong lần kiểm tra và trả về địa chỉ nội bộ hoặc địa chỉ metadata trong lần kết nối thực tế, qua đó vượt qua SSRF guard. GitHub Advisory Database cho biết đường đi này có thể được gọi bởi user đã đăng nhập qua /api/recipes/create/url, /api/recipes/test-scrape-url và /api/recipes/{slug}/image; nội dung được fetch được phản hồi lại cho requester. Chi tiết về thời điểm phân giải DNS và điều kiện mạng cụ thể cần để điều khiển hai lần phân giải không được mô tả đầy đủ trong các nguồn hiện có.

Khả năng khai thác

Lỗi có thể bị khai thác từ xa qua mạng bởi user đã xác thực, không cần user interaction thêm. Độ phức tạp được đánh giá là cao vì cần điều khiển hoặc phối hợp phản hồi DNS giữa lần kiểm tra và lần kết nối thực tế. Available evidence identifies the affected recipe URL and image operations, but does not document a working public exploit or a named campaign. Record được cung cấp đánh dấu public_exploit là false và known_exploited là null; đánh giá CISA được hiển thị trong nguồn nghiên cứu ghi nhận exploitation là none và automatable là no. Các trạng thái này không chứng minh rằng việc khai thác là không thể.

Tác động kỹ thuật

Kết quả kỹ thuật trực tiếp là SSRF guard có thể bị vượt qua bằng DNS rebinding, khiến Mealie kết nối tới địa chỉ private hoặc metadata dù lần kiểm tra ban đầu thấy địa chỉ public. User cần có tài khoản Mealie, nhưng không cần user interaction bổ sung. Tác động được giới hạn trong phạm vi tài nguyên mà máy chủ Mealie có thể truy cập và nguồn phản hồi cho requester; nguồn không chứng minh quyền truy cập luôn có thể vượt qua xác thực của dịch vụ đích. Hậu quả tổ chức có thể gồm lộ dữ liệu nội bộ, thông tin định danh workload hoặc credential cloud tạm thời. Không có bằng chứng trong nguồn cho thấy lỗi này trực tiếp cho phép sửa đổi dữ liệu hoặc gây mất tính sẵn sàng.

Tác động đến tổ chức

Một user đã xác thực có thể khiến máy chủ Mealie gửi request tới các dịch vụ chỉ có thể truy cập từ mạng nội bộ của máy chủ. Nội dung từ dịch vụ nội bộ hoặc cloud metadata có thể được phản hồi về requester, làm lộ thông tin nhạy cảm nếu các endpoint đó trả về dữ liệu có giá trị. Rủi ro có thể bao gồm khám phá dịch vụ nội bộ, đọc giao diện quản trị không public và truy cập thông tin nhận dạng hoặc credential tạm thời trong môi trường cloud, nhưng nguồn không xác nhận một vụ rò rỉ cụ thể. Record không mô tả khả năng sửa đổi dữ liệu hoặc làm gián đoạn dịch vụ.

Cách khắc phục

  1. Chưa có fixed release được xác nhận trong record hoặc các nguồn đã kiểm tra. Theo dõi advisory của Mealie và chỉ kết thúc xử lý sau khi có release cụ thể bao gồm sửa lỗi và đã xác minh trên từng branch đang triển khai.
  2. Trước khi có bản sửa được xác nhận, áp dụng egress filtering ở tầng mạng để máy chủ Mealie không thể truy cập các mạng private, loopback, link-local và cloud metadata không cần thiết. Đây là biện pháp bù trừ, không phải vendor patch đã được xác nhận.
  3. Hạn chế quyền truy cập tới các chức năng scrape URL và tải image từ URL cho tới khi có thể xác minh transport đã ghim kết nối vào địa chỉ đã kiểm tra.
  4. Sau khi cập nhật, kiểm tra lại component AsyncSafeTransport để bảo đảm địa chỉ được xác thực được dùng cho chính kết nối outbound và không bị underlying transport phân giải lại độc lập.

Cách phát hiện

  1. Kiểm kê các deployment của Mealie và xác định instance nào cho phép user đã đăng nhập sử dụng các chức năng import recipe hoặc tải image từ URL.
  2. Kiểm tra component mealie/pkgs/safehttp/transport.py và việc sử dụng AsyncSafeTransport; không coi việc một deployment đang dùng branch hiện tại là bằng chứng đã được vá vì nguồn chưa cung cấp fixed release.
  3. Rà soát lưu lượng outbound và truy vấn DNS phát sinh từ máy chủ Mealie trong các request tới /api/recipes/create/url, /api/recipes/test-scrape-url và /api/recipes/{slug}/image, đặc biệt khi đích là mạng private, loopback, link-local hoặc dịch vụ cloud metadata.
  4. Đối chiếu các request bị chặn hoặc các kết nối tới địa chỉ nội bộ với user, thời điểm và URL đầu vào. Đây là kiểm tra phòng ngừa dựa trên hành vi có thể xảy ra, không phải IOC được nguồn xác nhận.
  5. Việc không thấy log hoặc kết nối phù hợp không chứng minh deployment an toàn.
Nguồn (24)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.

Khám phá CyStack VulnScan