
Подробное раскрытие уязвимостей CVE-2024-1208 и CVE-2024-1210: раскрытие конфиденциальной информации через REST API в плагине LearnDash для WordPress, позволяющее неавторизованный доступ к тестам и вопросам.
Раскрытие конфиденциальной информации через API в LearnDash. Неаутентифицированные посетители могут просматривать тесты и вопросы тестов, не будучи записанными на связанный курс.
Любой желающий, даже неаутентифицированные посетители, может просматривать все тесты LearnDash и вопросы тестов LearnDash. Поскольку вопросы тестов являются общедоступными, их нельзя использовать для проверки знаний учащихся.
LearnDash — это LMS-плагин для WordPress. Он поддерживает два различных типа тестов. Более старый тип тестов называется sfwd-quiz и использует связанные вопросы (sfwd-question). Более новый тип тестов хранит тест вместе с его вопросами в виде записей ld-exam.
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 (<=4.10.2) публикуют все тесты и вопросы тестов для неаутентифицированных посетителей. Посетитель может просматривать (читать) все вопросы, обращаясь к конечным точкам sfwd-question и ld-exam через REST API /wp/v2/. Этот API включён по умолчанию.
https://example.com/wp-json/wp/v2/sfwd-question
https://example.com/wp-json/wp/v2/ld-exam
Посетитель также может просматривать (читать) все тесты, обращаясь к конечной точке sfwd-quiz через API /ldlms/v1/. Этот API включён по умолчанию.
https://example.com/wp-json/ldlms/v1/sfwd-quiz
Посетитель также может получить доступ к тестам через API /ldlms/v2/, если знает ID записи теста (который представляет собой просто увеличивающееся целое число).
API /ldlms/v1/ и /ldlms/v2/ можно отключить с помощью фильтра learndash_rest_api_enabled, но это открывает новую утечку данных. Если администратор отключает API /ldlms/v1/ и /ldlms/v2/ для любого типа записей, LearnDash публикует весь контент LearnDash, доступный через REST API, через API /wp/v2/ для неаутентифицированных посетителей, включая уроки и темы.
LearnDash 4.10.2 был выпущен 2024-01-08. Он не устранил утечки данных, хотя и позволил отключить API /ldlms/v1/ и /ldlms/v2/ без раскрытия ещё большего объёма информации через API /wp/v2/.
LearnDash 4.10.3 был выпущен 2024-01-31 и устранил уязвимости.
LearnDash хорошо обработал отчёты об уязвимостях и устранил уязвимости в течение 90-дневного периода ответственного раскрытия.