If anyone from Microsoft security reads this, could you please do something about login.microsoftonline.com/XXX/v2.0/adminconsent?
The callback you're redirecting the user to at the end of that flow is forgeable if an attacker knows an azure tenant ID of a different customer, and putting a "Never use the tenant ID value of the tenant parameter to authenticate or authorize users" warning in the docs is only helpful as long as a way to authenticate users exists.
They'll see it, tell a manager, it'll get added as a ticket to an Azure Devops board under the initiative for this month under the epic for employee suggestions, which will be reviewed & prioritised by Copilot and sent to a different middle manager as a weekly summary email and then automatically closed when no human ever interacts with the ticket after three months.
speaking as a FTE at Microsoft... yup
Glad to know the frozen middle exists among the hyperscalers. High confidence you can swap the entire leadership team and nothing will change.
> frozen middle
That’s the best new term I’ve learned in months!
See also "defensive bureaucracy"
I spent 6 months working as a contractor in MS’ Chicagoland data centers. Nothing worked — phones on the walls ran Windows and did not give dial tone. Security systems unable to function because of Windows updates. Personnel more concerned with their required LinkedIn updates than their jobs. Not one FTE liked their role — everyone had a foot out the door.
When they offered to make me FTE I declined and moved on. Because it was an obvious absolute shit-show.
Sorry for those that are currently employed by MS.
It’s not all bad. When I was there, the Washington campus had a restaurant with a three course menu for $15, designed by a Seattle celebrity chef.
Come for the paycheck... stay for the food!
I'm sure one of the 60,000 employees who have been told they're welcome not to work there anymore, because the line must go up infinitely, will be chomping at the bit to do so.
That's me. But I don't understand your comment. Could you expand on it, either in a reply or preferably by email or via an MSRC case? You can reply with the vuln number so I can fast route it.
> The callback you're redirecting the user to at the end of that flow is forgeable
The redirect_uri is checked against the app registration. There's a general OAuth problem called "open registration redirects" that applies here, about which we've [blogged](https://www.microsoft.com/en-us/security/blog/2026/03/02/oau...) - but frankly, none of the industry solves this well.
In general, "I can create a link that goes to malware via X endpoint" isn't very interesting - you can also just create a direct link to the malware. Web browsers won't reliably show you the real destination of a link anyhow and even if they did, it's mostly just us hackers who understand URLs at all.
> as long as a way to authenticate users exists.
I'm lost. Entra supports [OpenID Connect](https://learn.microsoft.com/en-us/entra/identity-platform/v2...) for authentication. Most portals that surface admin consent authenticate the user with an OpenID Connect request either immediately before or after the admin consent request.
I love that this is the most reliable way to actually contact an actual human working at Microsoft
Reaching an actual human at Microsoft isn't enough. You have to reach the correct humans which is a much harder task. For example, you might have an idea. What if azure devops had a field for date component only, not date time, just the date because it would help you in an internal project. Can you find out who to reach? Even if you work at Microsoft, I would bet you cannot. Even when you find a defect in an internal product you are using, getting to a human requires you to go through layers of nonsense. I distinctly remember my manager telling me to not even bother explaining myself to the first support chat and to simply ask them to escalate. I was impressed at how they managed to make security a part of your review though. I never thought getting buy-in to update Newtonsoft.Json would be as easy as it was but a CVE meant you had to update it to whatever made the security flags happy.
Once I could reach the actual engineering team to look at the internal tool to look at the bug I had to report though, they were very responsive. The tool for communicating was cumbersome and made me feel like a vendor / customer relationship even though you are supposed to be the same team but once they realized it was an actual defect and not some harebrained feature request, they fixed it relatively quickly.