
Эксплойт proof-of-concept для CVE-2026-73314 — обход проверки подписи вебхука PayPal REST в XenForo до версии 2.3.13, позволяющий несанкционированное завершение покупки.
XenForo до версии 2.3.13 не отклоняет запрос, когда PayPal REST webhook указывает неподдерживаемый алгоритм подписи.
Обработчик webhook сопоставляет PAYPAL-AUTH-ALGO с небольшим списком разрешённых значений. Если значение неизвестно, сопоставленный алгоритм становится null. Вместо отклонения запроса путь проверки регистрирует, что алгоритм недоступен, и возвращает успех. Получение сертификата и openssl_verify() никогда не выполняются.
При активном регулярном обновлении PayPal REST покупатель может получить ключ запроса на покупку из собственных элементов управления регулярным обновлением. Поддельный обратный вызов PAYMENT.CAPTURE.COMPLETED, содержащий этот ключ, отображаемую сумму/валюту и неподдерживаемый алгоритм, может достичь обычного завершения покупки без действительной подписи PayPal.
Я воспроизвёл продление права доступа на 30 дней на XenForo 2.3.12 (сборка 2031270). PoC не нацелен на реальный платёжный аккаунт и должен использоваться только с одноразовым обновлением в изолированной установке. XenForo 2.3.13 содержит исправление.
python poc.py https://xenforo.example DISPOSABLE_REQUEST_KEY 10.00 USD
Скрипт создаёт одно синтетическое событие и сообщает только HTTP-статус. Исправленная установка должна отклонить его.
Обнаружено Марко Пачиарони (BomboBombone).