#1136: Incubation: FedCM: Support showing third-party iframe origins in the UI
Discussions
Log in to see TAG-private discussions.
Discussed
Sep 8, 2025 (See Github)
Lola: I haven't looked at this yet.
Ehsan: I haven't read it carefuly. Don't have concrete opinion yet.
Lola: Am a bit biased the title doesn't fill me with hope.
Ehsan: It seems like the discussions have been around for a long time (2020?) I see Martin has an interaction so will ask him later for opinion.
Lola: I may be wrong about this but this is one of the proposals related to third-party cookies.
Matthew: What's the diff with https://github.com/w3ctag/design-reviews/issues/1145 ?
Lola: I'll ask them.
Discussed
Sep 29, 2025 (See Github)
Matthew: Any updates? Ehsan: Have read the explainer, preparing review on it, hope to have the review by next week. … Don’t have any critical objections up until now. … Maybe next week we can discuss it in more detail. Matthew: Think we discussed this during the F2F in HK, there was confusion about a potential duplicate between issue #1145 vs. #1136. Let’s discuss this next week.
Discussed
Oct 6, 2025 (See Github)
Ehsan: Review almost ready to post. Main concern is that removing one of the URLs (shwoing 2 instead of 3) may increase the chance of phishing/social engineering attacks. This is becuase they're delegating the task of specifying the iframe to the developer and trusting that they will act in good faith. This seems to be a fundamental question: it seems to reduce user confusion perhaps, but increase the chance of phishing and privacy leakages. I am slightly inclined to oppose it due to that. Whilst the likelihood isn't huge, it does present some risk. (That's a summary of what I'm about to post.)
Lola: Can you post that in the private thread and folks can review it? I have questions but would like to read it.
Ehsan: Yes, sure.
Lola: To Matthew's question yesterday about whether they have any mock-ups. I was looking at the web speech API today and they have a screenshot of what the UI could look like if you're using Web Speech APi - so I dont' think it's out of our remit to ask for something similar on this. Whislt it's up to the UA to decide on the UI, the spec authors could give us an idea.
Ehsan: My main issue is they're removing one of the URLs. If they can find a way to include all 3 It hink it would help.
Discussed
Oct 6, 2025 (See Github)
Matthew: Bump to Breakout C. We thought the picture would be a mock-up of the UI, and it's just a flowchart. They want to minimize the number of domains you need to show. Ehsan has concerns about that. Death of the line of death. They say that sometimes they don't need to show all 3 domains. Where are they proposing to show 3 domains? Address bar, iframe, 3rd???
Lola: They're talking more about implementation than presentation.
Matthew: Get that we avoid talking about UI design, but want some illustration. Even some text.
Discussed
Oct 20, 2025 (See Github)
Lola: +1 to your comment Ehsan
Ehsan: In general I'm in favor; have a couple of qustions about social engineering attacks that apply to the way they're doing it (in proposed comment).
Lola: You can just post - if any of us think of more questions we can add them.
Comment by @toreini Oct 23, 2025 (See Github)
Dear @cbiesinger , @yi-gy, @npm1,
We appreciate your detailed feedback on the proposal. To clarify and address our concerns, we would like to ask the following:
-
Attack Surface: The current proposal might increase the potential attack surface and questioned what triggered its recent reconsideration (especially in malicious RP and social engineering attack vectors). You mentioned a few potential attack scenarios in the Privacy and Security section. Could you elaborate on specific attack vectors you foresee when RP is malicious, and what safeguards could be implemented to minimise the risk of malicious developers?
-
Example attack (Phishing Scenario): an evil site could exploit the specification to deceive users if the iframe URL is not shown. Consider the following:
- An evil site (
kitten.com) could feature a button for authentication ongoogle.com. However, when the user clicks it, the site loadsgogle.com(a domain owned by the evil site). - Following this spec, the user will see
kitten.comdisplayed above the iframe, maintaining trust in the authentication process without suspicion. - It doesn't matter whether the IdP is benign or malicious, or whether the authentication succeeds or fails, because
gogle.comis already in the permission list ofkitten.com, and the user has been presented withkitten.comon the iframe.
- An evil site (
-
If the iframe had displayed all three URLs (
gogle.com,kitten.com,idp.com), the user could have noticed the discrepancy.
-
-
Incognito Mode Behaviour: I am interested to know about the behaviour of the specification in incognito mode and potential information leakage. Could you clarify how the specification should handle private browsing modes to ensure user privacy and security?
We value your input and look forward to your further insights to refine the proposal and address these critical issues effectively.
Comment by @cbiesinger Oct 23, 2025 (See Github)
Was that written by AI? I have a hard time following it.
We appreciate your detailed feedback on the proposal
We were hoping for your feedback on the proposal
questioned what triggered its recent reconsideration
I have no idea what this means
Example attack (Phishing Scenario): an evil site could exploit the specification to deceive users if the iframe URL is not shown. Consider the following:
This proposal allows showing the iframe URL
An evil site (kitten.com) could feature a button for authentication on google.com. However, when the user clicks it, the site loads gogle.com (a domain owned by the evil site).
I can't follow this. Can you describe in more detail what the iframe origin is in this attack?
Are you suggesting that kitten.com embeds an iframe from gogle.com, and a dialog saying "Sign in to gogle.com with google.com. kitten.com embeds content from gogle.com" is a phishing risk (?)
Or alternatively, you are concerned about "Sign in to kitten.com with google.com" showing up (the status quo without the proposal) even though that token will get sent to gogle.com? But this attack requires kitten.com to cooperate with gogle.com, in which case it can skip the entire iframe and just ask the user to sign in to the toplevel frame directly.
It doesn't matter whether the IdP is benign or malicious, or whether the authentication succeeds or fails, because gogle.com is already in the permission list of kitten.com, and the user has been presented with kitten.com on the iframe.
Sorry, why does it not matter if the authentication fails? What is the bad thing that will happen?
If the iframe had displayed all three URLs (gogle.com,kitten.com,idp.com), the user could have noticed the discrepancy.
I assume you mean the fedcm dialog when you say "iframe". This proposal allows showing the iframe. I still don't follow the attack vector that requires the toplevel to conspire with the iframe because in that case the toplevel can skip the iframe entirely.
Incognito Mode Behaviour
That seems entirely unrelated to the specific change, but in general, FedCM will only use the cookies that were set in incognito mode. That is, FedCM does work in incognito, but only if the user signed in to the IDP within incognito mode.
Comment by @toreini Oct 23, 2025 (See Github)
Dear @cbiesinger ,
Thanks for the response. Let me clarify my comments better:
-
The spec you submitted as explainer (which is in fact a comment in an issue) was written almost 3 years ago. Can you please point me to any meeting note/discussion that triggered this reconsideration so I can have better insight?
-
As this is UI spec, I am not concerned about other potential attack scenarios at this stage of review, but I think all three URLs should be shown in the fedcm dialogue and replacing/removing any can be exploited if the RP is malicious. I am not trying to prove my proposed attack scenario is serious or not. I am asking if it is possible.
If
kittens.com(top origin) conspires withgogle.com(as an iframe origin), then replacing thegogle.com signs in with idp.comwithkitten.com signs in with idp.comwill make a potential URL scam possible (of course if the top frame is a matched client to the RP iframe). If all three are shown at all times, at least the user can have a chance to recognise any potential attack.
So now, I ask my question again (regardless of being serious or not): Is the above scenario possible? If yes, then replacing the gogle.com with kitten.com does not really help the user make an informed decision (despite making the user less confused).
- Thanks for the clarification on the incognito mode ceremony.
I hope I am clear enough now.
Regards, Ehsan
Comment by @jyasskin Oct 23, 2025 (See Github)
@toreini I'm pretty sure that the proposed change is to show all 3 origins in some cases, where only 2 are currently shown. The "explainer" implies the opposite, but the title of this issue implies adding an origin.
Comment by @toreini Oct 23, 2025 (See Github)
@jyasskin , yes, you are right. What I am also trying to understand is whether showing 3 URLs at all times is better than only showing 3 in some cases (where RP had not specified a matched client), which is at the heart of this spec?
Comment by @cbiesinger Oct 24, 2025 (See Github)
Dear @cbiesinger ,
Thanks for the response. Let me clarify my comments better:
- The spec you submitted as explainer (which is in fact a comment in an issue) was written almost 3 years ago. Can you please point me to any meeting note/discussion that triggered this reconsideration so I can have better insight?
Apologies for the old explainer. I am also realizing I neglected to link to https://github.com/w3c-fedid/FedCM/issues/725 which is a more up-to-date summary.
I don't have anything public to point to, but we have heard from partners that they wanted their iframe domain to be visible in the dialog. For example, imagine a photo editor embedded inside a website, perhaps a book editor.
The photo editor may want to allow the user to sign in to their photo editor account so that they can access previously stored files. Showing only the toplevel domain would be misleading.
On the other hand, some websites (real example) trigger the fedcm dialog from a foostatic.com iframe. The dialog would show Sign in to foostatic.com with google.com and the subtitle would say foo.com embeds content from foostatic.com, which is not very meaningful to the user.
- As this is UI spec, I am not concerned about other potential attack scenarios at this stage of review, but I think all three URLs should be shown in the fedcm dialogue and replacing/removing any can be exploited if the RP is malicious. I am not trying to prove my proposed attack scenario is serious or not. I am asking if it is possible.>
If
kittens.com(top origin) conspires withgogle.com(as an iframe origin), then replacing thegogle.com signs in with idp.comwithkitten.com signs in with idp.comwill make a potential URL scam possible (of course if the top frame is a matched client to the RP iframe). If all three are shown at all times, at least the user can have a chance to recognise any potential attack.So now, I ask my question again (regardless of being serious or not): Is the above scenario possible? If yes, then replacing the
gogle.comwithkitten.comdoes not really help the user make an informed decision (despite making the user less confused).
Right now we show kitten.com (and the IDP, google.com). With the proposal we may show all three domains ("Sign in to gogle.com with google.com" with a subtitle "kitten.com embeds content from gogle.com"), depending on what the IDP tells us.
Your attack relies on having a harmless-looking toplevel origin that is actually malicious. But in this situation the toplevel frame can just trigger FedCM directly.
If you are imagining a benign toplevel and an evil iframe, this relies on the toplevel allowing the iframe to use FedCM with permissions policy (and CSP). And in this case, the IDP would tell the brower to show all three origins.
Discussed
Oct 27, 2025 (See Github)
Jeffrey: We shoud clarify regarding the polarity mismatch between title and explainer.
Lola: We should decline to review when there isn't an Explainer (document) (rather there is just a comment). Or we should put them in a holding pattern.
Jeffrey: Sometimes a comment is appropriate when it's a small change. But this is above that threshold.
Lola: Martin proposed adding something to the process about AI. Check out Slack.
Matthew: Can we ask for more concrete examples (maybe there's a reason why they can't)? Think that would help a lot. Did appreciate the case they raised about apps within other apps, and signing in.
Lola: We should ask, yes. Leave it to them to let us know if they can't.
Jeffrey: +1 and this is a reason why they should write an explainer rather than comments. I think Ehsan is coming up with attacks based on the 'backwards' understanding of what they're doing (because their explainer had the order backwards). We should write our comments with the threat model they have in mind.
OpenedAug 13, 2025
Explainer
https://github.com/w3c-fedid/FedCM/issues/449#issuecomment-1515631336
The explainer
Where and by whom is the work is being done?
Feedback so far
Major opposition is Mozilla's opposition in the issue mentioned above. I would appreciate the TAG's view on this issue, especially on https://github.com/w3c-fedid/FedCM/issues/725#issuecomment-3053927241
You should also know that...
No response
<!-- Content below this is maintained by @w3c-tag-bot -->Track conversations at https://tag-github-bot.w3.org/gh/w3ctag/design-reviews/1136