Verify external assets without forwarding Gitea credentials

This commit is contained in:
2026-10-06 01:01:36 +00:00
parent 8b417760c6
commit 6b777dd861
4 changed files with 60 additions and 28 deletions

View File

@@ -47,9 +47,9 @@ not missing. A failed read-only inspection reports `not_attempted`; if this
invocation already delivered the page, its outcome retains `partial` progress.
Unknown-write outcomes are reserved for unresolved writes. Unrelated attachments are returned separately and are preserved.
Attachment downloads and same-origin redirects carry authorization only when
their scheme, host, and port match the configured Gitea service. Cross-origin
URLs and redirects are left unrequested and reported as unverifiable.
Attachment downloads and redirects carry the Gitea authorization token only
when their scheme, host, and port match the configured service. Cross-origin
content is downloaded without that token and verified by its digest.
The upload operation accepts only an inspection result without conflicts or
unverifiable assets. It uploads missing binaries in filename order and then the

View File

@@ -259,6 +259,8 @@ repository parents and confirm clean worktrees. Affected suites pass.
### R7 — Medium: Attachment origin restrictions exceed credential isolation
Status: Resolved.
Category: Inadvertently strengthened prohibition.
**Evidence:** [downloadHash](../../internal/gitea/assets.go), around lines 164
@@ -281,6 +283,12 @@ network-policy framework.
conflicting bytes rejected. Direct and redirected external requests never
carry the Gitea token; same-origin authenticated downloads continue to work.
**Resolution:** Attachment URLs and redirects may cross origins; the client
sets the Gitea token only on requests to its configured origin. HTTP tests
verify direct and redirected external matches, conflicting external bytes,
absence of authorization on external requests, and continued same-origin
authentication. The Gitea suite passes.
### R8 — Medium: The release wrapper collapses documented exit codes
Category: Executable integration and documentation correctness.