CVE-2021-29474 in HedgeDocthông tin

Tóm tắt

Bởi VulDB • 26/08/2026

HedgeDoc (trước đây được biết đến với tên CodiMD) là một trình soạn thảo markdown cộng tác mã nguồn mở. Một kẻ tấn công có thể đọc các tệp `.md` tùy ý từ hệ thống tệp của máy chủ do lỗi xác thực đầu vào không đúng cách, dẫn đến khả năng thực hiện thao tác duyệt đường dẫn tương đối (relative path traversal). Để kiểm tra xem bạn có bị ảnh hưởng hay không, bạn có thể thử mở URL sau: `http://localhost:3000/..%2F..%2FREADME#` (thay thế `http://localhost:3000` bằng base-URL của phiên bản instance của bạn, ví dụ: `https://demo.hedgedoc.org/..%2F..%2FREADME#`). Nếu bạn thấy trang README được hiển thị, nghĩa là bạn đang chạy một phiên bản bị ảnh hưởng. Cuộc tấn công này hoạt động do bộ định tuyến nội bộ chuyển alias đã mã hóa URL sang hàm `noteController.showNote`. Hàm này truyền đầu vào trực tiếp cho tiện ích `findNote()`, sau đó chuyển nó đến hàm `parseNoteId()`; hàm này cố gắng phân tích noteId/alias, kiểm tra xem ghi chú có tồn tại hay không và nếu có, thì kiểm tra xem tệp tương ứng trên đĩa đã được cập nhật chưa. Nếu không có ghi chú nào tồn tại, hàm tạo ghi chú sẽ được gọi, chuyển alias chưa được xác thực (có thêm `.md` vào cuối) vào hàm `path.join()`, sau đó đọc từ hệ thống tệp trong quy trình tiếp theo và cung cấp nội dung điền sẵn cho ghi chú mới. Điều này cho phép kẻ tấn công không chỉ đọc các tệp `.md` tùy ý từ hệ thống tệp mà còn quan sát được những thay đổi đối với chúng. Mức độ hữu ích của cuộc tấn công này có thể được coi là hạn chế, vì chủ yếu các tệp markdown sử dụng phần mở rộng `.md` và tất cả các tệp markdown nằm trong dự án hedgedoc, như README, đều đã là công khai. Nếu các biện pháp bảo vệ khác như chroot hoặc container hoặc quyền tệp phù hợp đang được áp đặt, thì mức độ hữu ích của cuộc tấn công này khá hạn chế. Ở cấp độ reverse-proxy, người ta có thể buộc giải mã URL (URL-decode), điều này sẽ ngăn chặn cuộc tấn công vì bộ định tuyến sẽ không chấp nhận đường dẫn như vậy.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

chịu trách nhiệm

GitHub, Inc.

Đặt trước

30/03/2021

Tiết lộ

27/04/2021

Kiểm duyệt

được chấp nhận

EPSS

0.01599

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you need the next level of professionalism?

Upgrade your account now!