Changetection.io — это бесплатный инструмент обнаружения изменений веб-страниц с открытым исходным кодом. До версии 0.54.8 декоратор @login_optionally_required размещался перед (внешним) @blueprint.route(), а не после него. В Flask @route() должен быть самым внешним декоратором, поскольку он регистрирует получаемую функцию.
Когда порядок меняется на обратный, @route() регистрирует исходную недекорированную функцию, и оболочка аутентификации никогда не оказывается в цепочке вызовов. Это автоматически отключает аутентификацию на этих маршрутах. Эта уязвимость исправлена в версии 0.54.8.
Показать оригинальное описание (EN)
changedetection.io is a free open source web page change detection tool. Prior to 0.54.8, the @login_optionally_required decorator is placed before (outer to) @blueprint.route() instead of after it. In Flask, @route() must be the outermost decorator because it registers the function it receives. When the order is reversed, @route() registers the original undecorated function, and the auth wrapper is never in the call chain. This silently disables authentication on these routes. This vulnerability is fixed in 0.54.8.
Характеристики атаки
Последствия
Строка CVSS v3.1