akkoma/lib/pleroma/web
Oneric 8243fc0ef4 federation: strip internal fields from incoming updates and history
When note editing support was added, it was omitted to strip internal
fields from edited notes and their history.

This was uncovered due to Mastodon inlining the like count as a "likes"
collection conflicting with our internal "likes" list causing validation
failures. In a spot check with likes/like_count it was not possible to
inject those internal fields into the local db via Update, but this
was not extensively tested for all fields and avenues.

Similarly address normalisation did not normalise addressing in the
object history, although this was never at risk of being exploitable.

The revision history of the Pleroma MR adding edit support reveals
recusrive stripping was intentionally avoided, since it will end up
removing e.g. emoji from outgoing activities. This appears to still
be true. However, all current internal fields ("pleroma_interal"
appears to be unused) contain data already publicised otherwise anyway.
In the interest of fixing a federation bug (and at worst potential data
injection) quickly outgoing stripping is left non-recursive for now.

Of course the ultimate fix here is to not mix remote and internal data
into the same map in the first place, but unfortunately having a single
map of all truth is a core assumption of *oma's AP doc processing.
Changing this is a masive undertaking and not suitable for providing
a short-term fix.
2025-02-21 19:37:27 +01:00
..
activity_pub federation: strip internal fields from incoming updates and history 2025-02-21 19:37:27 +01:00
admin_api Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
akkoma_api add selection UI 2023-03-28 12:44:52 +01:00
api_spec Fix voters count field 2024-06-27 18:29:45 +02:00
auth Support elixir1.15 2023-08-03 17:44:09 +01:00
common_api Don't try to handle non-media objects as media 2024-05-22 20:30:23 +02:00
fallback ensure we send the right files for preferred fe 2023-03-12 23:59:10 +00:00
federator
feed Don't strip newlines in the Atom feed 2024-03-11 12:50:14 +01:00
mailer
mastodon_api Fix voters count field 2024-06-27 18:29:45 +02:00
media_proxy
metadata check if data is visible before embedding it in OG tags 2024-04-12 05:16:47 +01:00
mongoose_im argon2 password hashing (#406) 2022-12-30 02:46:58 +00:00
nodeinfo Fix NodeInfo content-type 2024-11-19 19:25:31 +01:00
o_auth update tests for oauth consumer 2023-12-17 21:48:19 +00:00
o_status Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
pleroma_api mix format 2024-06-15 15:06:28 +01:00
plugs http_signatures: tweak order of route aliases 2025-02-21 19:37:27 +01:00
preload/providers
push Support elixir1.15 2023-08-03 17:44:09 +01:00
rich_media cosmetic/rich_media/parser: fix typo 2025-02-14 22:10:25 +01:00
static_fe Fix Twitter metadata 2024-02-19 21:09:43 +00:00
templates static_fe: fix HTML quotation for upload alt text 2025-02-14 18:49:51 +01:00
twitter_api Accept body parameters for /api/pleroma/notification_settings 2024-04-09 04:11:28 +02:00
utils
views Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
web_finger giant massive dep upgrade and dialyxir-found error emporium (#371) 2022-12-14 12:38:48 +00:00
api_spec.ex update references to pleroma in docs 2022-12-30 03:43:35 +00:00
common_api.ex Support elixir1.15 2023-08-03 17:44:09 +01:00
controller_helper.ex giant massive dep upgrade and dialyxir-found error emporium (#371) 2022-12-14 12:38:48 +00:00
embed_controller.ex Add embed controller tests 2023-07-17 19:18:21 +01:00
endpoint.ex Fix swagger-ui 2024-06-27 18:29:45 +02:00
federator.ex Protected against counterfeit local docs being posted 2025-02-14 22:10:25 +01:00
gettext.ex
instance_document.ex
manifest_controller.ex
masto_fe_controller.ex Migrate to phoenix 1.7 (#626) 2023-08-15 10:22:18 +00:00
media_proxy.ex Only proxy HTTP and HTTP urls via Media Proxy 2024-12-16 20:35:12 -06:00
metadata.ex
o_auth.ex
pipelines.ex
plug.ex
preload.ex remove unused variable 2022-12-16 12:36:34 +00:00
push.ex Support elixir1.15 2023-08-03 17:44:09 +01:00
rel_me.ex Add more information about failed verifications 2023-03-10 03:51:24 +00:00
router.ex Allow unsigned fetches of a user's public key 2024-10-26 05:05:48 +01:00
streamer.ex Enforce unauth restrictions for public streaming endpoints 2023-06-14 22:45:19 +00:00
swagger.ex
telemetry.ex Formatting 2024-04-16 08:02:13 +02:00
translation_helpers.ex
uploader_controller.ex
web_finger.ex Merge remote-tracking branch 'oneric-sec/media-owner' into develop 2024-05-22 19:36:10 +01:00
xml.ex make xmerl shut up about markup 2024-04-16 10:19:30 +01:00