Apache CouchDB là một phiên bản khác của NoSQL. CouchDB được tạo ra vào năm 2005 bởi IBM Lotus Notes, lưu trữ dữ liệu dạng JSON và dùng Javascript như các câu truy vấn để lấy dữ liệu. Đây là một hệ quản trị cơ sở dữ liệu mã nguồn mở định hướng tài liệu (document-oriented), xếp thứ 28 trong hơn 300 hệ thống phổ biến nhất theo DB-Engines.
Nhà nghiên cứu Max Justicz đã phát hiện ra một lỗ hổng trong CouchDB khi tìm kiếm các lỗi trên máy chủ chịu trách nhiệm phân phối các gói npm tại địa chỉ registry.npmjs.org. Lỗ hổng này được định danh CVE-2017-12635, cho phép kẻ tấn công có thể khai thác, chiếm quyền quản trị và thực thi mã tùy ý.
Trong thông tin khuyến cáo tới người dùng, nhà phát triển CouchDB cho biết: “Do sự khác biệt giữa JSON parser dựa trên Erlang của CouchDB và JSON parser dựa trên JavaScript, có thể đưa vào các tài liệu _users bằng các phím trùng lặp cho các vai trò được sử dụng để kiểm soát truy cập trong cơ sở dữ liệu, kể cả trường hợp đặc biệt có vai trò _admin chỉ ra người dùng có quyền quản trị”.
Trong trường hợp của registry npm, việc khai thác lỗi có thể cho phép kẻ tấn công sửa đổi các gói phục vụ người dùng.
Bên cạnh đó, khi phân tích CVE-2017-12635, một thành viên nhóm bảo mật CouchDB đã phát hiện thêm lỗ hổng CVE-2017-12636, cho phép khai thác khi kết hợp với lỗ hổng leo thang đặc quyền để thực thi các lệnh shell tùy ý trên máy chủ.
Quản trị viên của CouchDB có thể cấu hình máy chủ cơ sở dữ liệu thông qua giao thức HTTP/HTTPS. Một số tùy chọn cấu hình bao gồm các đường dẫn để chạy các chương trình nhị phân mức hệ thống. Điều này cho phép người quản trị CouchDB thực hiện các lệnh shell tùy ý như người dùng, bao gồm tải và thực hiện các kịch bản từ Internet. Các lỗ hổng đã được vá lỗi trong các phiên bản 2.1.1 và 1.7.0/1.7.1.