forgejo/release-notes
Mathieu Fenniak 78d92aafd7 feat: strip EXIF information from uploaded avatars (#9638)
Strips EXIF information from uploaded avatars (excluding the orientation tag), affecting both user & repo avatars.  Adds a new subcommand `forgejo admin avatar-strip-exif` to perform a retroactive update of avatar files.

Fixes #9608.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [x] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Features
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/9638): <!--number 9638 --><!--line 0 --><!--description VXBsb2FkZWQgYXZhdGFyIGltYWdlcyBjYW4gc29tZXRpbWVzIGNvbnRhaW4gdW5leHBlY3RlZCBtZXRhZGF0YSBzdWNoIGFzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgaW1hZ2Ugd2FzIGNyZWF0ZWQsIG9yIHRoZSBkZXZpY2UgdGhlIGltYWdlIHdhcyBjcmVhdGVkIHdpdGgsIHN0b3JlZCBpbiBhIGZvcm1hdCBjYWxsZWQgRVhJRi4gRm9yZ2VqbyBub3cgcmVtb3ZlcyBFWElGIGRhdGEgd2hlbiBjdXN0b20gdXNlciBhbmQgcmVwb3NpdG9yeSBpbWFnZXMgYXJlIHVwbG9hZGVkIGluIG9yZGVyIHRvIHJlZHVjZSB0aGUgcmlzayBvZiBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBiZWluZyBsZWFrZWQgdW5leHBlY3RlZGx5LiBBIG5ldyBDTEkgc3ViY29tbWFuZCBgZm9yZ2VqbyBkb2N0b3IgYXZhdGFyLXN0cmlwLWV4aWZgIGNhbiBiZSB1c2VkIHRvIHN0cmlwIEVYSUYgaW5mb3JtYXRpb24gZnJvbSBhbGwgZXhpc3RpbmcgYXZhdGFyczsgd2UgcmVjb21tZW5kIHRoYXQgYWRtaW5pc3RyYXRvcnMgcnVuIHRoaXMgY29tbWFuZCBvbmNlIGFmdGVyIHVwZ3JhZGUgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhpcyByaXNrIGZvciBleGlzdGluZyBzdG9yZWQgZmlsZXMu-->Uploaded avatar images can sometimes contain unexpected metadata such as the location where the image was created, or the device the image was created with, stored in a format called EXIF. Forgejo now removes EXIF data when custom user and repository images are uploaded in order to reduce the risk of personally identifiable information being leaked unexpectedly. A new CLI subcommand `forgejo doctor avatar-strip-exif` can be used to strip EXIF information from all existing avatars; we recommend that administrators run this command once after upgrade in order to minimize this risk for existing stored files.<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9638
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>
2025-10-13 23:16:17 +02:00
..
3139.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3285.md
3307.md
3334.md
3337.md
3363.md docs(release-notes): proofread multiline release-notes files 2024-07-15 21:22:56 +02:00
3383.md
3414.md
3430.md
3434.md
3442.md
3642.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3654.md
3723.md
3724.md
3729.md
3752.md
3791.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3808.md
3811.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3830.md
3836.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3838.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3847.md
3870.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3886.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
3917.md
3934.md
3952.md chore(release-notes): fix release notes of chroma update in v8.0.0 2025-10-05 17:10:38 +05:00
3985.md
3989.md
4026.md
4027.md Adjust codespell config + make it fix few typos which sneaked in since addition of codespell support (#4857) 2024-08-08 16:07:35 +00:00
4072.md
4083.md
4095.md
4125.md [Feat]Add link to show all Issues/PullRequests (#4125) 2024-10-09 04:56:40 +00:00
4134.md
4136.md
4139.md
4143.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4145.md
4160.md
4189.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4201.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4212.md
4218.md docs(release-notes): fix artifact range requests 2024-07-10 08:52:06 +02:00
4222.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4240.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4253.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4262.md
4266.md
4291.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4367.md
4375.md docs(release-notes): for pull requests #4400, #4375 [skip ci] (#4442) 2024-07-10 05:14:16 +00:00
4400.md docs(release-notes): for pull requests #4400, #4375 [skip ci] (#4442) 2024-07-10 05:14:16 +00:00
4427.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4429.md docs(release-notes): display URLs in .sh-session files 2024-07-09 08:24:46 +02:00
4439.md docs(release-notes): flatten release-notes files 2024-07-11 14:20:34 +02:00
4487.md
4506.md [CHORE] Use github.com/ProtonMail/go-crypto 2024-07-15 17:27:37 +02:00
4547.md
4595.md added release notes for pr 4595 2024-07-23 18:47:42 +02:00
4605.md feat: allow .webp attachments by default 2024-07-21 13:01:08 +05:00
4607.md
4635.md [SECURITY] Notify users about account security changes 2024-07-23 18:31:47 +02:00
4684.md Forgejo v9.0 is GPLv3+ 2024-08-22 09:09:29 +02:00
4716.md
4724.md
4801.md
4819.md
4907.md add release notes 2024-08-13 22:14:46 +01:00
4924.md
4941.md [CHORE] Drop go-git support 2024-08-12 19:11:09 +02:00
4998.md chore(release-notes): weekly cherry-pick week 2024-34 2024-08-19 09:27:37 +02:00
5065.md chore(release-notes): workflow_dispatch parsing error fix 2024-08-23 08:37:00 +02:00
5090.md [CHORE] Move to new sessioner library 2024-08-25 03:47:08 +02:00
5109.md chore(release-notes): weekly cherry-pick week 2024-35 2024-08-26 07:44:20 +02:00
5120.md chore(release-notes): Update module github.com/go-enry/go-enry/v2 to v2.8.9 2024-08-26 09:54:03 +02:00
5149.md [SEC] Ensure propagation of API scopes for Conan and Container authentication 2024-08-28 10:33:32 +02:00
5195.md chore(release-notes): weekly cherry-pick week 2024-36 2024-09-01 08:39:30 +02:00
5205.md chore(release-notes): Update dependency mermaid v11.2.0 2024-09-14 10:55:08 +02:00
5325.md [gitea] week 2024-38 cherry pick (gitea/main -> forgejo) (release notes) 2024-09-20 07:11:08 +02:00
5372.md chore(release-notes): weekly cherry-pick week 2024-39 2024-09-27 08:47:23 +02:00
5416.md chore(release-notes): weekly cherry-pick week 2024-40 2024-09-29 11:35:18 +02:00
5459.md chore(release-notes): Update dependency mermaid to v11.3.0 2024-10-04 08:53:11 +02:00
5477.md chore(release-notes): weekly cherry-pick week 2024-41 2024-10-06 08:21:41 +02:00
5515.md chore(release-note): Fix bug when a token is given public only 2024-10-10 16:00:16 +03:00
5543.md chore(release-notes): weekly cherry-pick week 2024-42 2024-10-13 14:17:08 +03:00
5601.md chore(release-notes): Update module github.com/go-enry/go-enry/v2 to v2.9.1 2024-10-18 10:12:06 +02:00
5621.md chore(release-notes): notes for week 2024-43 weekly cherry pick 2024-10-22 18:14:27 +02:00
5677.md feat: Add partial quoting 2024-10-26 19:15:43 +02:00
5714.md chore(release-notes): notes for the week 2024-44 weekly cherry pick 2024-10-27 11:27:40 +01:00
5718.md security: add permission check to 'delete branch after merge' 2024-10-28 05:48:10 +01:00
5719.md fix(sec): use constant time check for internal token 2024-10-28 06:25:52 +01:00
5751.md chore(release-notes): Update dependency mermaid to v11.4.0 2024-10-31 07:15:14 +01:00
5778.md chore(release-notes): related pull requests workflow fixes 2024-11-04 12:10:15 +01:00
5789.md chore(release-notes): notes for the week 2024-45 weekly cherry pick 2024-11-05 09:39:24 +01:00
5974.md chore(release-notes): 15 November 2024 security fixes 2024-11-15 11:17:14 +01:00
5988.md chore(release-notes): notes for the week 2024-46 weekly cherry pick 2024-11-16 15:25:37 +01:00
5997.md chore(release-notes): notes for the week 2024-47 weekly cherry pick 2024-11-18 19:20:54 +01:00
6062.md chore(release-notes): notes for the week 2024-48 weekly cherry pick 2024-11-24 15:43:19 +00:00
6110.md chore(release-notes): notes for the week 2024-49 weekly cherry pick 2024-12-03 10:21:20 +01:00
6200.md chore(release-notes): notes for the week 2024-50 weekly cherry pick 2024-12-08 09:10:58 +01:00
6271.md chore(release-notes): notes for the week 2024-51 weekly cherry pick 2024-12-15 10:16:04 +01:00
6351.md Release-note and file rename for Alt Linux Apt-RPM support (#6656) 2025-01-23 07:22:05 +00:00
6445.md add release notes 2025-01-01 19:50:39 +01:00
6471.md chore(release-notes): notes for the week 2025-02 weekly cherry pick 2025-01-05 13:47:27 +00:00
6523.md feat(ui): create a comment aggregator to reduce noise in issues (#6523) 2025-03-05 17:24:51 +00:00
6553.md chore(release-notes): add chroma update to v10.0.0 release notes 2025-10-05 17:24:51 +05:00
6639.md fix: teach the doctor about orphaned two_factor rows (#6639) 2025-01-21 17:30:08 +00:00
6763.md chore(release-notes): notes for the week 2025-06 weekly cherry pick 2025-02-02 12:05:46 +01:00
6813.md Reimplement editor Tab handling with accessibility safeguards (#6813) 2025-05-25 19:17:03 +02:00
6933.md Show if commit is signed in activity feed and unify sha box (#6933) 2025-05-03 10:54:52 +00:00
7251.md fix: discard v25 secrets migrations errors instead of failing (#7251) 2025-03-17 16:25:37 +00:00
7459.md chore(release-notes): add chroma update to v12.0.0 release notes 2025-10-05 17:43:06 +05:00
7607.md chore(release-notes): add chroma update to v12.0.0 release notes 2025-10-05 17:43:06 +05:00
7738.md chore(release-notes): add chroma update to v12.0.0 release notes 2025-10-05 17:43:06 +05:00
7890.md chore(release-notes): add chroma update to v12.0.0 release notes 2025-10-05 17:43:06 +05:00
8035.md chore(upgrade): urfave/cli from v2 to v3 (#8035) 2025-06-01 22:16:37 +02:00
8393.md chore(release-notes): add chroma update to v13.0.0 release notes 2025-10-05 17:50:35 +05:00
8502.md Update module code.forgejo.org/forgejo/act to v1.32.0 (forgejo) (#8502) 2025-07-23 01:01:31 +02:00
8783.md chore(release-notes): add chroma update to v13.0.0 release notes 2025-10-05 17:50:35 +05:00
9023.md fix!: use run ID instead of run Index in artifacts download web views 2025-08-27 08:53:20 +02:00
9362.md fix: do not display the title of unsubscribed issues or pull requests in the notification web page (#9362) 2025-09-19 22:32:06 +02:00
9373.md feat: add foreign keys to stopwatch & tracked_time tables (#9373) 2025-10-01 00:31:38 +02:00
9458.md fix!: detect extra cmdline args and emit errors (#9458) 2025-10-08 18:20:28 +02:00
9513.md fix!: prevent forked .profile repositories from displaying profile content (#9513) 2025-10-07 18:53:57 +02:00
9638.md feat: strip EXIF information from uploaded avatars (#9638) 2025-10-13 23:16:17 +02:00