Версии PasswordPusher с 1.45.11 по 2.9.5 содержат уязвимость неправильной авторизации в логике принудительного удаления. Проверка владения сравнивает @push.user с current_user; для анонимно созданного push-уведомления оба значения равны нулю, и Ruby оценивает nil == nil как true, поэтому проверка проходит, и ограничение deletable_by_viewer никогда не применяется. Злоумышленник, которому известен только секретный URL-адрес, может навсегда удалить анонимную отправку, даже если создатель отключил удаление зрителя и даже без парольной фразы.
Это затрагивает только развертывания, которые допускают анонимную отправку данных (по умолчанию). Проблема исправлена в версии 2.9.6.
Показать оригинальное описание (EN)
PasswordPusher versions v1.45.11 through v2.9.5 contain an improper authorization vulnerability in the push deletion logic. The ownership check compares @push.user against current_user; for an anonymously created push both values are nil, and Ruby evaluates nil == nil as true, so the check passes and the deletable_by_viewer restriction is never enforced. An attacker who knows only the secret URL can permanently delete an anonymous push even when the creator disabled viewer deletion and even without the passphrase. Only deployments that allow anonymous pushes (the default) are affected. The issue is fixed in v2.9.6.
Характеристики атаки
Последствия
Строка CVSS v4.0