[P1 security] Browser actor network.fetch permits arbitrary private-network requests and unbounded reads #134
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-review
quasar
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/quasar-ui#134
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
src/lib/actors.jsexposes this service to actors with thenetwork.fetchcapability:The service currently allows:
The runtime’s
maxResponseBytescheck happens only afterresponse.text()/response.json()has already allocated and parsed the complete body. A large response can therefore exhaust browser memory even when the returned value is later rejected.credentials: "omit"is useful but does not prevent local-service side effects, CSRF-like unauthenticated actions, DNS rebinding, or actor-supplied authorization headers.Required fix
Do not expose raw browser
fetchas a capability. Use the validated external-fetch gateway from the private-network issue, plus explicit actor policy.Read through a bounded stream rather than
text()/json():Actor manifests should declare narrow grants, not only a Boolean capability:
Until granular grants and a safe gateway exist, disable
network.fetchfor imported/generated actors.Acceptance criteria