Skip to content

Commit 3530525

Browse files
authored
Merge pull request #305 from arichiv/patch-1
Preventing Issuer Exhaustion
2 parents ae07cb5 + 344d11f commit 3530525

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,11 @@ We have a number of mitigations against this attack:
235235

236236
When the issuer detects a site is attacking its token supply, it can fail redemption (before the token is revealed) based on the referring origin, and prevent browsers from spending tokens there.
237237

238+
### Issuer Exhaustion
239+
240+
Given a cap on the issuers usable per top-level origin, there might be a race between third-party scripts to call `hasPrivateToken(issuer)` to ensure their preferred issuer is available.
241+
The top-level document can control this process by calling `hasPrivateToken(issuer)` for its preferred issuers before any other scripts are loaded.
242+
This would ensure the availability of the desired issuers and prevent a race to determine availability.
238243

239244
### Double-Spend Prevention
240245

spec.bs

+9
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,15 @@ operations. In the context of a given origin, two redemptions are allowed initia
11321132
the third redemption is only allowed once more than an [=implementation-defined=] amount of time,
11331133
usually 48 hours, have elapsed since the first redemption.
11341134

1135+
Preventing Issuer Exhaustion {#issuer-exhaustion}
1136+
-----------------------------------------------
1137+
Competing scripts might race to call <code>hasPrivateToken(issuer)</code> to ensure their |issuer|
1138+
enters the [=issuerAssociations=] [=map=] before the |issuer| of others given a limit of two per
1139+
[=environment/top-level origin=]. To control this process, the [=environment/top-level origin=]
1140+
could call <code>hasPrivateToken(issuer)</code> up to twice before any other JavaScript is included
1141+
to ensure their preferred |issuer|s are available.
1142+
1143+
11351144
Preventing Double Spending {#preventing-double-spend}
11361145
-----------------------------------------------------
11371146

0 commit comments

Comments
 (0)