
Раскрытие конфиденциальной информации через задания в LearnDash.
Раскрытие конфиденциальной информации через задания в LearnDash. Неаутентифицированные посетители могут просматривать и скачивать загруженные задания.
Любой, включая неаутентифицированных посетителей, может увидеть все загруженные задания LearnDash. Поскольку задания общедоступны, любой, кто знает об этой уязвимости, может прочитать загруженные документы (что может привести к инцидентам, связанным с GDPR). Уязвимость может быть использована без наличия учётной записи на сайте.
LearnDash — это плагин системы управления обучением для WordPress.
Затронутые версии LearnDash (<=4.10.1) хранят загруженные файлы заданий в папках без защиты доступа. Когда пользователь загружает файл задания, LearnDash помещает его в /wp-content/uploads/assignments/. Файл сохраняет своё исходное имя, хотя ему добавляется префикс с ID записи, с которой он был загружен, и временной меткой Unix.
LearnDash имеет три REST API: /wp/v2/, /ldlms/v1/ и /ldlms/v2/ (в настоящее время в бета-версии). Все API, включая бета-версию, включены по умолчанию. API /ldlms/v1/ и /ldlms/v2/ можно отключить для определённых типов записей с помощью фильтра learndash_rest_api_enabled (см. class-ld-rest-api.php).
Любой, включая неаутентифицированных посетителей, может скачать любой загруженный файл задания, просто зная его имя.
LearnDash добавляет временную метку к имени каждого загруженного файла, чтобы усложнить его угадывание, но временные метки можно подобрать перебором. К сожалению, неаутентифицированному посетителю, желающему прочитать загруженные задания, даже не нужно перебирать имена файлов. Затронутые версии LearnDash (<=4.10.1) публикуют все отправленные задания для неаутентифицированных посетителей через REST API. Всё, что нужно сделать посетителю — вызвать конечную точку для sfwd-assignment через REST API /wp/v2/. Ответ содержит пути к загруженным файлам, и посетитель может скачать их без входа в систему.
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2 был выпущен 2024-01-08. Он решил проблему утечки путей к файлам заданий через REST API. CVE-2024-1208 и CVE-2024-1210 остались.
LearnDash 4.10.3 был выпущен 2024-01-31. Он переместил место хранения файлов в защищённую папку и ввёл динамические ссылки для загрузки, чтобы запретить несанкционированный доступ.
LearnDash хорошо отреагировала на отчёт об уязвимости и устранила её в течение 90-дневного окна ответственного раскрытия.