Skip to content

Commit 05c61ba

Browse files
committed
2 parents a6fd1e4 + bbab7cf commit 05c61ba

165 files changed

Lines changed: 1032 additions & 1340 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.simplecov

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# frozen_string_literal: true
22

3-
SimpleCov.start 'rails' do
3+
SimpleCov.configure do
44
# During parallel runs, ensure unique names for post-run merge
55
command_name "job-#{ENV['TEST_ENV_NUMBER']}" if ENV['TEST_ENV_NUMBER']
66

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [4.5.11] - 2026-06-03
6+
7+
### Security
8+
9+
- Fix allowed attribution domains spoofing ([GHSA-rwcw-vq68-g34p](https://github.com/mastodon/mastodon/security/advisories/GHSA-rwcw-vq68-g34p))
10+
- Fix uncaught exception in message sanitization causing Denial of Service ([GHSA-qrgq-9fx2-vf2r](https://github.com/mastodon/mastodon/security/advisories/GHSA-qrgq-9fx2-vf2r))
11+
- Update dependencies
12+
13+
### Fixed
14+
15+
- Fix remote statuses with large media descriptions being rejected (#39135 by @ClearlyClaire)
16+
517
## [4.5.10] - 2026-05-20
618

719
### Security

Gemfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ gem 'omniauth-saml', '~> 2.0'
4545

4646
gem 'color_diff', '~> 0.1'
4747
gem 'csv', '~> 3.2'
48-
gem 'discard', '~> 1.2'
48+
gem 'discard', '~> 2.0'
4949
gem 'doorkeeper', '~> 5.6'
5050
gem 'faraday-httpclient'
5151
gem 'fast_blank', '~> 1.0'
@@ -231,6 +231,6 @@ gem 'hcaptcha', '~> 7.1'
231231

232232
gem 'mail', '~> 2.8'
233233

234-
gem 'vite_rails', '~> 3.0.19'
234+
gem 'vite_rails'
235235

236236
gem 'prism'

Gemfile.lock

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ GEM
107107
ast (2.4.3)
108108
attr_required (1.0.2)
109109
aws-eventstream (1.4.0)
110-
aws-partitions (1.1254.0)
110+
aws-partitions (1.1255.0)
111111
aws-sdk-core (3.250.0)
112112
aws-eventstream (~> 1, >= 1.3.0)
113113
aws-partitions (~> 1, >= 1.992.0)
@@ -116,11 +116,11 @@ GEM
116116
bigdecimal
117117
jmespath (~> 1, >= 1.6.1)
118118
logger
119-
aws-sdk-kms (1.125.0)
120-
aws-sdk-core (~> 3, >= 3.247.0)
119+
aws-sdk-kms (1.128.0)
120+
aws-sdk-core (~> 3, >= 3.248.0)
121121
aws-sigv4 (~> 1.5)
122-
aws-sdk-s3 (1.222.0)
123-
aws-sdk-core (~> 3, >= 3.247.0)
122+
aws-sdk-s3 (1.224.0)
123+
aws-sdk-core (~> 3, >= 3.248.0)
124124
aws-sdk-kms (~> 1)
125125
aws-sigv4 (~> 1.5)
126126
aws-sigv4 (1.12.1)
@@ -213,8 +213,8 @@ GEM
213213
devise (>= 4.0.0)
214214
rpam2 (~> 4.0)
215215
diff-lcs (1.6.2)
216-
discard (1.4.0)
217-
activerecord (>= 4.2, < 9.0)
216+
discard (2.0.0)
217+
activerecord (>= 7.0, < 9.0)
218218
docile (1.4.1)
219219
domain_name (0.6.20240107)
220220
doorkeeper (5.9.0)
@@ -362,7 +362,7 @@ GEM
362362
azure-blob (~> 0.5.2)
363363
hashie (~> 5.0)
364364
jmespath (1.6.2)
365-
json (2.19.5)
365+
json (2.19.7)
366366
json-canonicalization (1.0.0)
367367
json-jwt (1.17.0)
368368
activesupport (>= 4.2)
@@ -655,7 +655,7 @@ GEM
655655
base64 (>= 0.1.0)
656656
logger (>= 1.6.0)
657657
rack (>= 3.0.0, < 4)
658-
rack-proxy (0.7.7)
658+
rack-proxy (0.8.2)
659659
rack
660660
rack-session (2.1.2)
661661
base64 (>= 0.1.0)
@@ -763,7 +763,7 @@ GEM
763763
rspec-mocks (~> 3.0)
764764
sidekiq (>= 5, < 9)
765765
rspec-support (3.13.7)
766-
rubocop (1.86.2)
766+
rubocop (1.87.0)
767767
json (~> 2.3)
768768
language_server-protocol (~> 3.17.0.2)
769769
lint_roller (~> 1.1.0)
@@ -787,7 +787,7 @@ GEM
787787
lint_roller (~> 1.1)
788788
rubocop (>= 1.75.0, < 2.0)
789789
rubocop-ast (>= 1.47.1, < 2.0)
790-
rubocop-rails (2.35.2)
790+
rubocop-rails (2.35.3)
791791
activesupport (>= 4.2.0)
792792
lint_roller (~> 1.1)
793793
rack (>= 1.1)
@@ -810,7 +810,7 @@ GEM
810810
ruby-vips (2.3.0)
811811
ffi (~> 1.12)
812812
logger
813-
rubyzip (3.3.0)
813+
rubyzip (3.3.1)
814814
rufus-scheduler (3.9.2)
815815
fugit (~> 1.1, >= 1.11.1)
816816
safety_net_attestation (0.5.0)
@@ -909,7 +909,7 @@ GEM
909909
validate_url (1.0.15)
910910
activemodel (>= 3.0.0)
911911
public_suffix
912-
vite_rails (3.0.20)
912+
vite_rails (3.11.0)
913913
railties (>= 5.1, < 9)
914914
vite_ruby (~> 3.0, >= 3.2.2)
915915
vite_ruby (3.10.2)
@@ -945,7 +945,7 @@ GEM
945945
xorcist (1.1.3)
946946
xpath (3.2.0)
947947
nokogiri (~> 1.8)
948-
zeitwerk (2.7.5)
948+
zeitwerk (2.8.2)
949949

950950
PLATFORMS
951951
ruby
@@ -978,7 +978,7 @@ DEPENDENCIES
978978
devise
979979
devise-two-factor
980980
devise_pam_authenticatable2 (~> 9.2)
981-
discard (~> 1.2)
981+
discard (~> 2.0)
982982
doorkeeper (~> 5.6)
983983
dotenv
984984
fabrication
@@ -1099,7 +1099,7 @@ DEPENDENCIES
10991099
tty-prompt (~> 0.23)
11001100
twitter-text (~> 3.1.0)
11011101
tzinfo-data (~> 1.2023)
1102-
vite_rails (~> 3.0.19)
1102+
vite_rails
11031103
webauthn (~> 3.0)
11041104
webmock (~> 3.18)
11051105
webpush!

app/controllers/admin/custom_emojis_controller.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ class CustomEmojisController < BaseController
55
def index
66
authorize :custom_emoji, :index?
77

8-
# If filtering by local emojis, remove by_domain filter.
9-
params.delete(:by_domain) if params[:local].present?
10-
118
# If filtering by domain, ensure remote filter is set.
129
if params[:by_domain].present?
1310
params.delete(:local)

app/controllers/concerns/settings/export_controller_concern.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,12 @@ def load_export
1919

2020
def send_export_file
2121
respond_to do |format|
22-
format.csv { send_data export_data, filename: export_filename }
22+
format.csv { send_data export_data, filename: "#{controller_name}.csv" }
23+
format.json { send_data export_data, filename: "#{controller_name}.json" }
2324
end
2425
end
2526

2627
def export_data
2728
raise 'Override in controller'
2829
end
29-
30-
def export_filename
31-
"#{controller_name}.csv"
32-
end
3330
end

app/controllers/concerns/signature_verification.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def keypair_refresh_key!(keypair)
157157
end
158158

159159
def check_keypair_validity!(keypair)
160-
raise Mastodon::SignatureVerification, "Key #{signature_key_id} is revoked" if keypair.revoked?
161-
raise Mastodon::SignatureVerification, "Key #{signature_key_id} has expired" if keypair.expired?
160+
raise Mastodon::SignatureVerificationError, "Key #{signature_key_id} is revoked" if keypair.revoked?
161+
raise Mastodon::SignatureVerificationError, "Key #{signature_key_id} has expired" if keypair.expired?
162162
end
163163
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Settings
4+
module Exports
5+
class CustomFiltersController < BaseController
6+
include Settings::ExportControllerConcern
7+
8+
def index
9+
send_export_file
10+
end
11+
12+
private
13+
14+
def export_data
15+
@export.to_custom_filters_json
16+
end
17+
end
18+
end
19+
end

app/helpers/context_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module ContextHelper
2727
memorial: { 'toot' => 'http://joinmastodon.org/ns#', 'memorial' => 'toot:memorial' },
2828
voters_count: { 'toot' => 'http://joinmastodon.org/ns#', 'votersCount' => 'toot:votersCount' },
2929
suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' },
30-
attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@type' => '@id' } },
30+
attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@container' => '@set' } },
3131
profile_settings: {
3232
'toot' => 'http://joinmastodon.org/ns#',
3333
'showFeatured' => 'toot:showFeatured',

app/javascript/flavours/glitch/components/empty_state/empty_state.module.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
.content {
1414
max-width: 370px;
1515

16-
:where(svg, img) {
16+
> :where(svg, img) {
1717
width: 200px;
1818
aspect-ratio: 1;
1919
object-fit: contain;

0 commit comments

Comments
 (0)