Full Disclosure: A Third (and Fourth) Azure Sign-In Log Bypass Found
180 points
11 hours ago
| 12 comments
| trustedsec.com
| HN
kjellsbells
8 hours ago
[-]
Puts me in mind of this scathing report from CISA on how a state-sponsored group broke into Microsoft and then into the State Department and a bunch of other agencies. Reads like a heist movie.

https://www.cisa.gov/sites/default/files/2024-03/CSRB%20Revi...

What I found most incredible about the story is that it wasn't Microsoft who found the intrusion. It was some sysadmin at State who saw that some mail logs did not look right and investigated.

reply
int0x29
7 hours ago
[-]
Don't worry CISA and any other involved regulator were gutted by DOGE.
reply
grosswait
6 minutes ago
[-]
Thanks for sharing your insight
reply
isodev
6 hours ago
[-]
Ah yes, back when the US actually had cyber defence and experts capable of working in their respective fields.
reply
throwoutway
9 hours ago
[-]
Yesterday ProPublica and ArsTechnica published a takedown of Azure: "Federal cyber experts called Microsoft’s cloud a “pile of shit,” approved it anyway" ...

https://arstechnica.com/information-technology/2026/03/feder...

reply
charles_f
8 hours ago
[-]
In which one expert called the documentation provided "a pile of shit", which propublica took the liberty of extending to Azure itself
reply
hsbauauvhabzb
7 hours ago
[-]
And they weren’t wrong
reply
bulbar
5 hours ago
[-]
They still lied, because they didn't say "X is shit" but "Z said that X is shit", however Z apparently never said that.

I have become very cautious of such stories for this very reason. Who gets how much blame has a lot to do with "culture" or momentum. Bashing Microsoft for example is always super fine, but at multiple occasions I found the facts to be much more nuanced.

reply
rithdmc
11 minutes ago
[-]
Titles are editorialised and space limited. The first couple lines in the article linked above make the nuance pretty clear.

[edit: 'pretty' instead of 'perfectly']

reply
benterix
2 hours ago
[-]
It's true, they lied. But, paradoxically, in this case, while they lied about details, the conclusion is still true: Azure is very far from AWS and GCP as far as security is concerned. I have my own suspicions why it is so, but the reasons are not important, what counts is the final conclusion: if you really care for security, you'd better chose one of the other two.
reply
bigfatkitten
3 hours ago
[-]
In this case, it’s just yet another design-level vulnerability in Microsoft cloud’s services. There isn’t much room for nuance.
reply
hsbauauvhabzb
5 hours ago
[-]
If a slop engine calls a slop company slop, has anyone really lost?
reply
int0x29
7 hours ago
[-]
Ars just republished it under license
reply
DetroitThrow
7 hours ago
[-]
Every security engineer I know working at Azure is on the verge of self-harm because of the current situation, or is the dumbest IC I've ever met and somebody I think should have never become a security engineer. Sample size ~12.
reply
jacquesm
2 hours ago
[-]
That is quite the indictment.
reply
g-b-r
7 hours ago
[-]
Bloomberg and CNBC don't seem to have reported about this, maybe someone with contacts could make them aware?
reply
vaylian
3 hours ago
[-]
> Having done a fair bit of logging to databases with various scripts, I believe this was a simple matter of overflowing the SQL column length for a field, causing the entire INSERT to fail. This is a common beginner mistake when you first start to work with databases.

I'm not sure if I understand this part. I'm trying to put it into my own words. Is the following correct? The attacker provided an input that was so long, that it was rejected by the database. And the program that submitted the SQL query to the database did not have any logic for handling a query failure, which is why there is no trace of the login attempt in the log or elsewhere.

reply
mrweasel
1 hour ago
[-]
That was my understanding. You have two services, one validates, another logs. The validation triggers a failure, and requests that to be inserted into the audit database, but the audit log services fails and that apparently doesn't block the validator from sending a response back to the attacker.

Reading through the article I can't help but think that many of these authentication/authorization flows are entirely to complex. I understand that they need to be, for some use cases, but those are probably not the majority.

reply
deathanatos
8 hours ago
[-]
IIRC, (& I don't remember if I reported it), but Azure's audit logs don't reflect reality when you delete a client secret from the UI, either.

If I remember the issue right, we lost a client secret (it just vanished!) and I went to the audit logs to see who dun it. According to the logs, I had done it. And yet, I also knew that I had not done it.

I eventually reconstructed the bug to an old page load. I had the page loaded when there were just secrets "A" & "B". When I then clicked the delete icon for "B", Azure deleted secrets "B" and "C" … which had been added since the page load. Essentially, the UI said "delete this row" but the API was "set the set of secrets to {A}". The audit log then logged the API "correctly" in the sense of, yes, my credentials did execute that API call, I suppose, but utterly incorrectly in the sense of any reasonable real-world view as to what I had done.

Thankfully we got it sorted, but it sort of shook my faith in Azure's logs in particular, and a little bit of audit logs in general. You have to make sure you've actually audited what the human did. Or, conversely, if you're trying to reason with audit logs, … you'd best understand how they were generated.

I don't think I would ever accept audit logs in court, if I were on a jury. Audit logs being hot lies is within reasonable doubt.

reply
ndespres
32 minutes ago
[-]
There is so much goofiness happening in those web portals (and also the New Portal, and the Legacy Portal) that issues like this don’t surprise me. Every time I click a button in there I worry that the wrong thing will happen to a different object. Sometimes the display reflects the worst possible outcome, like adding a user to a group will show you the new group membership as just containing that 1 new user and nobody else. Quite a few moments of panic.
reply
jacquesm
2 hours ago
[-]
That's why I'm a great fan of positive confirmation steps before such changes with possibly large implications. The whole change needs to be shown to the user with all changes marked and then you confirm once more that that is what you want and then that and only that gets executed. All these 'video game' interfaces with implicit saves and underwater API calls are super dangerous.
reply
bulbar
5 hours ago
[-]
That's crazy and a pretty good point.

The human in the loop doesn't really control what gets done, it only expresses intend to the frontend.

reply
ralferoo
1 hour ago
[-]
Only watched a little of the video, until I saw one of the requests returned an access token with lots of repeated data. Was very surprised when I base64 decoded that and found it was just "\uDFFF\uDBFF" repeating over and over. Maybe that was data coming from his exploit, seems a bit weird for that to be in an access token anyway. I had the sound muted, so maybe he mentioned that.
reply
ronbenton
9 hours ago
[-]
Bypassing logging feels relatively unimportant compared to some of the recent EntraID vulns we’ve seen
reply
ares623
8 hours ago
[-]
It takes a village of exploits to raise a successful and undetected attack.
reply
BoredPositron
5 hours ago
[-]
Microsoft standpoint is probably: If it's undetected was there really an attack?
reply
epistasis
6 hours ago
[-]
There's a big tradeoff here though: IT admins really love buying Microsoft. And when the dog tries to complain about the dogfood, the dogfood purchaser tends to not understand very well.
reply
marcyb5st
5 hours ago
[-]
Isn't it an age thing mostly? Younger admins hate Microsoft with a passion it seems to me. Or is just my circle of acquaintances?
reply
CalRobert
56 minutes ago
[-]
Europeans bizarrely love Azure.
reply
raverbashing
1 hour ago
[-]
More an issue of procedures and processes, MS selling turn-key solutions and how things work on big companies

Try managing a directory service even on RedHat and see how it goes.

reply
jojobas
2 hours ago
[-]
You don't get promoted to positions with power to choose for hating Microsoft.
reply
Asmod4n
59 minutes ago
[-]
Depends on the field you are in. There are jobs where you can’t get apps that run on anything but windows.
reply
owebmaster
4 hours ago
[-]
Well, as far as my experience, we the old generation despise Microsoft even more
reply
mapotofu
1 hour ago
[-]
Classic to pat yourself on the back, push blame, and have no evidence to show you made any kind of change about it. Classic!
reply
AdamN
3 hours ago
[-]
I was gonna say people have been hating on M$FT for decades. It started for me 20+ years ago. I'm glad to see that Azure is creating a whole new cohort of haters - just like good ol' Vista.
reply
jiggawatts
58 minutes ago
[-]
Silicon Valley likes to pretend Microsoft doesn't exist.

I... get it.

The FAANGS needed to scale to a level where paying per-core licensing fees for an operating system was simply out of the question, not to mention the lack of customisability.

As a consequence, they all adopted Linux as their core server operating system.

Then, as their devs made millions in share options, they all scattered and made thousands of little startups... each one of which cloned the assumption that only Linux was a viable operating system for servers.

The mistake here is the same one that caused "Only MongoDB is Web Scale" and "Microservices are necessary for two devs and a PC as our server".

Just because a trillion dollar corporation decides on a thing, it does not mean it applies universally.

Outside of this bizarre little bubble, Windows is everywhere and Windows Server is still about 50% of the overall server market.

reply
adrian_b
27 minutes ago
[-]
That may have been the story, but avoiding paying per-core licensing fees for an operating system is the only sane decision.

Operating systems and other applications that demand per-core licensing fees exist only because the people who buy them do not use their own money for this, so they do not care how much money they are wasting.

Most companies waste huge amounts of money not only for software, but for many other things, because those who have the power to make purchasing decisions have personal interests that are not aligned with what is really optimum for the company, while those who might have the best interests of the company in mind do not have the knowledge that would allow them to evaluate whether such purchasing decisions are correct.

The survival of Windows Server is not justified by any technical advantages. A few such advantages exist, but they do not compensate the huge PITA caused by licensing. I worked at a few companies where Windows Server was used and replacing it with either Linux or FreeBSD was always a great improvement, less by removing the payments for the licensing fees, but by providing complete freedom to make any changes in the environment without the friction caused by the consequences that such changes could have in modified licensing fees.

reply
bell-cot
53 minutes ago
[-]
You don't get too far up the career ladder if you don't understand "Nobody ever got fired for buying X".
reply
strbean
7 hours ago
[-]
Maybe I can use one of these to get in to my organization azure account from my alma mater. The email was deleted right after I graduated, but Microsoft has been trying to bill me (for a reserved IP or something) for close to a decade. Support is useless of course.
reply
dfedbeef
6 hours ago
[-]
> It's not often that you see a demo of an actual Azure vulnerability, as they get patched and are gone forever. However, because Microsoft was having trouble replicating this complicated bypass, and asked for a video, I come bearing receipts.

Absolutely savage lol

[If you didn't read the thing, it's one curl command.]

reply
cyberax
6 hours ago
[-]
Azure Entra is an example of making a system so complex that nobody can understand it entirely. I'm fairly experienced in access control systems, OIDC, crypto, etc. but I was not able to understand how it all fits together.

Google Cloud is simplistic in comparison. AWS is full of legacy complexity (IAM policies, sigh) but it's fairly self-contained and can be worked around by splitting stuff into accounts.

I have not looked at Oracle cloud yet. Is it any better than MS?

reply
fuckinpuppers
6 hours ago
[-]
It is shocking how absolutely garbage azure is.
reply
jiggawatts
5 hours ago
[-]
Reminds me of an Azure Support ticket I submitted a few years ago when some developer clicked the "Fix this now" button in Application Insights, which then proceeded to double the scale of an already too-large App Service Plan. [1]

The Audit log showed the service identity of Application Insights, not the user that pressed the button! The cloud ops team changed the size back, and then the mysterious anonymous developer... changed it back. We had to have an "all hands" meeting to basically yell at the whole room to cut that out. Nobody fessed up, so we still don't know who it was.

The Azure Support tech argued with me vehemently that this was by design, that Azure purposefully obscures the identity of users in audit logs!!! He mumbled something about GDPR, which is nonsense, because we're on the opposite side of the planet from Europe.

At first I was absolutely flabbergasted that anyone even remotely associated with a security audit log design could be this stupid, but then something clicked for me and it all started making sense:

    Entra Id logs are an evolution of Office 365 logs.
Microsoft developed Entra ID (original Azure Active Directory) initially for Microsoft 365, with the Azure Public Cloud platform a mere afterthought.

They have a legitimate need to protect customer PII, hence the logs don't contain their customers' private information when this isn't strictly necessary. I.e.: Microsoft's subcontractors and outsourced support staff don't need and shouldn't see some of this information!

The problem was that they re-used the same code, the same architecture decisions, the same security tradeoffs for what are essentially 100% private systems. We need to see who on our payroll is monkeying around with our servers! There is NO expectation of privacy for staff! GDPR does NOT apply to non-European government departments! Etc...

To this day I still see gaps in their logging where some Microsoft dev just "oops" forgot to log the identity of the account triggering the action. The most frustrating one for me is that Deployments don't log the identity of the user. It's one of only three administrative APIs that they have!

[1] As an aside: The plan had a 3-year Reservation on it, which meant that we were now paying for the original plan and something twice the size and non-Reserved! This was something like 5x the original cost, with no warning and no obvious way to see from the Portal UI that you're changing away from a Reserved size.

reply
PunchyHamster
2 hours ago
[-]
> There is NO expectation of privacy for staff! GDPR does NOT apply to non-European government departments! Etc...

There is just... not for this. This is literally the case allowed by GDPR, only thing that GDPR requires is making sure those logs can only be accessed by people designated in organisation to parse it

reply
Freak_NL
4 hours ago
[-]
> He mumbled something about GDPR, which is nonsense, because we're on the opposite side of the planet from Europe.

It was also nonsense because the GDPR is crystal clear about where PII may be used. Audit logs are one of those exceptions where the goal of identifying users simply permits storing usernames and associated attributes (certainly in the case of upgrading a paid plan).

This wasn't about the GDPR; you were being told to sod off.

reply
PunchyHamster
2 hours ago
[-]
> This wasn't about the GDPR; you were being told to sod off.

Vast misunderstanding of GDPR by the clowns implementing it is also possible; or just "can't be arsed so hide it all"

reply
jiggawatts
1 hour ago
[-]
More generously, they were applying GDPR rules in the correct manner, but to a different scenario: Microsoft customers being supported by Microsoft subcontractors that don't need to know the customer PII to do their job.

Most businesses using a public cloud need to log the activities of their staff accessing their own systems, which has an entirely different set of policies.

A similar example is Azure Application Insights. Microsoft uses it internally, so they keep removing features that log PII to be "GDPR compliant". Again, they're logging the activities of the general public across the entire world population, so GDPR legitimately applies. To them! Not us. Most of our scenarios are internal staff or partner organisations accessing private systems. Not only do we not do business with anyone from Europe, our systems are either privately networked or geo region locked. Europeans can't access anything in our local state government's internal staff portal even if they wanted to! Unless they hack us... but then we would very much like to log that.

reply