Verify external assets without forwarding Gitea credentials
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user