generated from martinthomson/internet-draft-template
-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Milestone
Description
This issue was initially reported by @DavidBuchanan314 in bluesky-social/atproto#3396.
In a federated network, in which hosts are known (as are PDS in the atproto network), the fact that OAuth Server will try to GET the client metadata can be used to faking traffic from a bunch of fake IPs, simply by forging authorization requests using the client_id as parameter.
For example, by forging the following requests:
https://<pds_1>/oauth/authorize?client_id=https://example.com/page_1&...https://<pds_2>/oauth/authorize?client_id=https://example.com/page_1&...https://<pds_3>/oauth/authorize?client_id=https://example.com/page_1&...
The website at https://example.com/page_1 will see GET traffic from the IPs of all those hosts.
Possible mitigations:
- Retrieve the metadata document after the user authorized the request (though that could lead to weird UX & DX)
- Add strong constraint on the URI format (eg.
.well-known, "must end with.json", other...) Recommend OAuth servers to remember the origins of previously failed metadata document retrieval, and prevent more call to be made on these origins(redacted: could be abused to cause DoS on legitimate services)- Other
Metadata
Metadata
Assignees
Labels
No labels