Unauthenticated transaction read via guessable /api/transactions/:id
HTTP/1.1 200 OK content-type: application/json x-firebase-rules: public-read { "id": "txn_7a93c2", "amount_cents": 14230000, "recipient": "acct_redacted", "status": "settled", "owner_uid": "u_not_requestor" }
$ curl -s https://api.redacted.example/transactions/txn_7a93c2 \ -H "accept: application/json" # → 200 OK, $142,300 record returned with no auth header
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Changed
- Confidentiality
- High
match /transactions/{id} {
allow read: if request.auth != null
&& resource.data.owner_uid
== request.auth.uid;
}open in cursor