You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mastodon/app
Eugen Rochko 21ad21cb50
Improve signature verification safeguards (#8959)
* Downcase signed_headers string before building the signed string

The HTTP Signatures draft does not mandate the “headers” field to be downcased,
but mandates the header field names to be downcased in the signed string, which
means that prior to this patch, Mastodon could fail to process signatures from
some compliant clients. It also means that it would not actually check the
Digest of non-compliant clients that wouldn't use a lowercased Digest field
name.

Thankfully, I don't know of any such client.

* Revert "Remove dead code (#8919)"

This reverts commit a00ce8c92c.

* Restore time window checking, change it to 12 hours

By checking the Date header, we can prevent replaying old vulnerable
signatures. The focus is to prevent replaying old vulnerable requests
from software that has been fixed in the meantime, so a somewhat long
window should be fine and accounts for timezone misconfiguration.

* Escape users' URLs when formatting them

Fixes possible HTML injection

* Escape all string interpolations in Formatter class

Slightly improve performance by reducing class allocations
from repeated Formatter#encode calls

* Fix code style issues
6 years ago
..
chewy Get rid of Chewy order/limit warning (#8355) 7 years ago
controllers Improve signature verification safeguards (#8959) 6 years ago
helpers Add dns-prefetch if using different host for assets or uploads (#8942) 6 years ago
javascript Do not push DMs into the home feed (#8940) 6 years ago
lib Improve signature verification safeguards (#8959) 6 years ago
mailers Fix low-hanging rubocop gripes (#8458) 7 years ago
models rubocop issues - Cleaning up (#8912) 6 years ago
policies Allow mods to disable login, improve message when login disabled (#8329) 7 years ago
presenters Replace SVG asset with Custom mascot (#8766) 6 years ago
serializers Add conversations API (#8832) 6 years ago
services Do not push DMs into the home feed (#8940) 6 years ago
validators Limit the number of people that can be followed from one account (#8807) 6 years ago
views Add description meta tag additionally to og:description (#8941) 6 years ago
workers Track historical space stats in PgHero to determine PostgreSQL growth (#8906) 6 years ago