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 Remove debug prints 2022-06-25 18:43:19 +01:00
feed Don't strip newlines in the Atom feed 2024-03-11 12:50:14 +01:00
mailer Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
mastodon_api Fix voters count field 2024-06-27 18:29:45 +02:00
media_proxy Use uppercase HTTP HEAD method for media preview proxy request (#128) 2022-07-30 21:58:14 +00:00
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 Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
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 Pleroma.Web.Params --> Pleroma.Web.Utils.Params 2021-06-08 12:50:47 -05:00
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 Fix incorrect fallback when English is set to first language 2022-06-29 20:47:10 +01:00
instance_document.ex Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
manifest_controller.ex Expose /manifest.json for PWA 2021-11-24 17:50:55 -06:00
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 Add configurable theme color (#53) 2022-07-06 20:00:43 +00:00
o_auth.ex Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
pipelines.ex Remove precompiled javascript (#55) 2022-07-08 13:03:18 +00:00
plug.ex Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
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 remove anonymous function from plug 2022-07-14 11:17:14 +01:00
telemetry.ex Formatting 2024-04-16 08:02:13 +02:00
translation_helpers.ex Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
uploader_controller.ex Bump Copyright to 2021 2021-01-13 07:49:50 +01:00
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