gitforge/models
Mathieu Fenniak 1c696b25e7 fix: prevent mirroring & migrations on unencrypted URL schemes (http://, git://) (#13490)
Requires that all outbound network connections made by migrations & mirroring be performed over encrypted communication channels.  As those communication channels (HTTPS and SSH) have their own built-in protections against DNS rebinding (TLS certificate validation and SSH host key validation), DNS rebinding attacks become ineffective as a means to redirect Forgejo to pull-from or push-to unexpected remotes with mirrors.

`[migrations].ALLOW_UNENCRYPTED` is a new setting which defaults to false, and can be set to `true` to restore access to unencrypted remotes.  The risks associated with it are documented in `app.example.ini` and will be transferred into the docs repo.

**Breaking:** Existing mirrors configured against `http://` and `git://` protocols will fail, with "unencrypted transfer protocol, remote cannot be validated".  It is recommended that those mirrors be changed to encrypted protocols.  `[migrations].ALLOW_UNENCRYPTED` may be set to `true` to revert to the previous behaviour, accepting the risks documented here.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/13490
Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2026-07-18 03:33:54 +02:00
..
actions fix: ensure runners either belong to owner or repo when updated (#13262) 2026-07-01 03:49:07 +02:00
activities feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
admin feat: cache derived keys for faster keying (#10114) 2025-11-16 14:29:14 +01:00
asymkey chore: make use of go1.26 features (#12369) 2026-05-01 22:51:48 +02:00
auth feat: enable auth to git HTTP via authorized integrations (#12715) 2026-05-25 19:33:36 +02:00
avatars feat: serve downsized versions of avatars (#11242) 2026-05-16 12:04:05 +02:00
db feat: make delete repository transcation READ COMMITTED (#12856) 2026-07-07 21:56:18 +02:00
dbfs chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
fixtures feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
forgefed chore(federation): re-enable nilnil lint (#11253) 2026-04-13 22:05:29 +02:00
forgejo/semver chore: move all test blank imports in a single package (#10662) 2026-01-02 05:32:32 +01:00
forgejo_migrations feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
forgejo_migrations_legacy chore: upgrade to https://code.forgejo.org/xorm/xorm v1.4.0 (#12639) 2026-05-20 20:20:08 +02:00
git 2026-06-10 security patches (#13001) 2026-06-10 06:05:01 +02:00
gitea_migrations feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
issues feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
moderation feat: render a link to poster profile next to the ID within shadow copy details (#10194) 2025-12-09 15:19:10 +01:00
organization chore(nilnil lint): resolve low-hanging fruit nilnil lint violations (#13230) 2026-07-03 23:48:03 +02:00
packages fix: Update swift package registry to use the metadata schema from the official Swift docs (#12200) 2026-06-26 04:25:56 +02:00
perm chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
project feat(build): Support go "fmt" format strings as masked usage patterns (#12013) 2026-05-01 02:46:01 +02:00
pull chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
quota chore: move all test blank imports in a single package (#10662) 2026-01-02 05:32:32 +01:00
repo feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
secret fix: secret name-prefix regex (#12213) 2026-04-21 19:55:16 +02:00
shared/types chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
system feat(build): Support go "fmt" format strings as masked usage patterns (#12013) 2026-05-01 02:46:01 +02:00
unit chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
unittest feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
user feat: adds "actor" as a protected / forbidden username (#13077) 2026-07-04 16:01:31 +02:00
webhook chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
error.go fix: prevent mirroring & migrations on unencrypted URL schemes (http://, git://) (#13490) 2026-07-18 03:33:54 +02:00
main_test.go chore: move all test blank imports in a single package (#10662) 2026-01-02 05:32:32 +01:00
org.go feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
org_team.go feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
org_team_test.go chore: split AddRepository and AddTeamMember to return the inserted value (#11342) 2026-03-11 03:40:32 +01:00
org_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo.go feat: granular settings for watched repo units (#10927) 2026-07-09 19:51:10 +02:00
repo_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_transfer.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
repo_transfer_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00