Commit Graph
41 Commits
Author SHA1 Message Date
Erki AasandClaude Opus 4.8 910f2c56d0 Rotate gitea SECRET_KEY into its own claim, drop gitea-random
Completes the post-breach (CVE-2026-59774) secret split. SECRET_KEY moves
from the shared gitea-random claim to a dedicated gitea-secret-key claim
with a fresh value, and the now-unused gitea-random claim is removed
(ArgoCD prunes it).

The earlier concern that rotating SECRET_KEY breaks the 2 push mirrors was
wrong: their gitlab.com credentials live in each repo's on-disk git config,
not in SECRET_KEY-encrypted storage. Blast radius here is negligible: 0 TOTP
2FA, 0 Actions secrets, 0 runner tokens, pull mirrors are public. SECRET_KEY
has no length constraint (Gitea hashes it to derive the AES key), so unlike
JWT_SECRET size 32 is fine and is not regenerated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 23:01:54 +03:00
Erki AasandClaude Opus 4.8 e17b0e0b41 Make gitea OAuth2 JWT_SECRET a valid, stable 43-char key
GITEA__OAUTH2__JWT_SECRET must base64url-decode to 32 bytes. The size-32
claim decoded to 24 bytes, so 1.27 rejected it and generated its own key
on each boot; since app.ini lives on an emptyDir that regenerated every
restart and logged out all OAuth2 clients. size 43 decodes to 32 bytes,
so the rotated key is accepted and stays stable across restarts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 22:38:10 +03:00
Erki AasandClaude Opus 4.8 18034b7cd9 Rotate gitea INTERNAL_TOKEN and JWT_SECRET into separate claims
Post-breach (CVE-2026-59774) rotation. All three security secrets shared
one generated value via the gitea-random SecretClaim, and the file-read
exploit leaked it. Split INTERNAL_TOKEN and JWT_SECRET into their own
claims (gitea-internal-token, gitea-oauth2-jwt) with fresh distinct
values and repoint the StatefulSet at them.

INTERNAL_TOKEN is the secret the attacker actually used against the
still-internet-reachable /api/internal, so this closes reuse of any saved
copy. Rotating JWT_SECRET invalidates gitea-issued OAuth2 and LFS tokens,
so the OAuth2 integrations (Woodpecker, tea, credential helpers) need one
re-login.

SECRET_KEY is deliberately left on gitea-random: rotating it would break
the 2 push mirrors (encrypted creds) and must be done in a window that
re-enters those credentials.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 22:23:56 +03:00
Erki AasandClaude Opus 5 bcb637685a Pin gitea SSH_LISTEN_PORT to 2222
The rootless image defaulted SSH_LISTEN_PORT to SSH_PORT until 1.26; in
1.27 docker-setup.sh leaves it empty, so Gitea fell back to SSH_PORT=22
and crash-looped with "listen tcp :22: bind: permission denied" as uid
1000. The Service already maps 22 -> 2222, so pin the listen port
explicitly rather than depending on an image default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:07:01 +03:00
Erki AasandClaude Opus 5 c525300036 gitea v1.27.3
Fixes CVE-2026-59774, an unauthenticated arbitrary file read in the
Org-mode renderer (POST /{owner}/{repo}/markup, #+INCLUDE directive)
affecting 1.22.1-1.27.0. It was used against this instance on 2026-09-10
to read app.ini, steal INTERNAL_TOKEN and plant an uploadpack
packObjectsHook that ran a Monero miner on every clone. The 1.25 branch
never received the fix, so this skips 1.26.

Env-var config still works: the rootless image's environment-to-ini is
now a shim for `gitea config edit-ini --in-place --apply-env`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:04:34 +03:00
rasmus c8262cec6a gitea to minimal kustomize
to track the secrets
2026-01-05 06:26:23 +02:00
rasmus dab8b990a8 gitea v1.25.3 2026-01-05 06:06:14 +02:00
Erki Aas 98f934b705 Migrate gitea to dedicated mariadb 2025-11-27 21:20:58 +02:00
rasmus 5961739b07 gitea v1.25.0 2025-11-01 11:53:39 +02:00
rasmus cd633fed02 gitea v1.24.7
pls auto-update where
2025-11-01 11:31:31 +02:00
rasmus c32c84f6ed mariadb: move hardcoded IP to DNS 2025-08-07 16:26:21 +03:00
rasmus 7adbf2476d gitea v1.24.3 2025-07-26 11:43:11 +03:00
rasmus db935de1a5 gitea does not go through traefik 2025-06-18 19:48:53 +03:00
rasmus 885f4b505e revert 28daa56bad 2025-06-18 18:46:06 +03:00
rasmus 28daa56bad cert-manager: rename to default-cluster-cert-issuer
much easier, vs ctrl-f for 'default'
2025-06-18 17:53:28 +03:00
rasmus cf9d686882 mirror.gcr.io
and explicit latest tag
2025-04-20 19:01:39 +03:00
rasmus 5bd0a57417 explicitly use docker library 2025-04-20 19:01:39 +03:00
rasmus 37a8031bc4 minor version updates 2025-04-20 19:01:39 +03:00
rasmus a33d0d12b0 gitea: also disable passkeys ot enforce OIDC 2025-04-18 14:46:58 +03:00
rasmus dc42a9612a gitea: update and disable passwd login
Closes k-space/kube#11
2025-04-18 14:38:49 +03:00
eaas ae525380b1 fix gitea oidc reg 2024-10-18 18:44:27 +03:00
lauri dbebb39749 gitea: Bump version 2024-10-02 08:15:20 +03:00
lauri 0eec1fde8b gitea: Add revisionHistoryLimit 2024-08-20 12:21:36 +03:00
eaas fbe4a55251 migrate gitea to new passmower 2024-07-27 22:57:01 +03:00
lauri 27eb0aa6cc Bump Gitea to 1.22.1 2024-07-04 16:26:06 +03:00
rasmus a95f00aaf2 gitea: try fixing registration 2024-02-12 05:41:17 +02:00
rasmus b88165d2b3 fixup: int must be str 2024-02-12 03:40:21 +02:00
rasmus 13d1f7bd88 gitea: upgrade
rm ENABLE_XORM_LOG: effectively replaced by LOG_SQL
MAILER: follow env deprecation
2024-02-12 03:38:21 +02:00
lauri b11ac8bcae Updates and cleanups 2023-08-29 09:29:36 +03:00
lauri 4fa554da57 gitea: Allow access for k-space:friends 2023-08-28 21:11:43 +03:00
lauri 9dae1a832b gitea: Set imagePullPolicy to IfNotPresent 2023-08-20 08:04:13 +03:00
lauri 6adcb53e96 gitea: Disable releases and wiki 2023-08-16 10:41:43 +03:00
lauri 46677df2a3 gitea: Switch to rootless image 2023-08-15 08:08:46 +03:00
lauri ca4ded3d0d gitea: Cleanup config and rotate secrets 2023-08-14 23:38:01 +03:00
lauri 612e788d9b gitea: Disable third party OIDC login 2023-08-11 15:02:36 +03:00
lauri ade71fffad gitea: Bump to 1.20.2 2023-08-11 14:10:40 +03:00
lauri 7a92a18bba gitea: Fix HTTP to HTTPS redirect and Git URI format 2023-08-11 14:05:05 +03:00
lauri 222ba974e6 Direct OIDC login link for Gitea 2023-07-30 20:59:13 +03:00
lauri fe662dc408 More Gitea cleanups 2023-07-29 10:51:18 +03:00
lauri 5259a7df04 gitea: Restore s6 init because of git zombie processes 2023-07-29 09:13:27 +03:00
lauri b56376624e Migrate Gitea 2023-07-28 18:00:48 +03:00