Live data from Hacker News

Klarna users are being signed in to random accounts

twitter.com

231–240 of 517 posts

Re: Klarna users are being signed in to random accounts

#231
post #222

Earlier quoted context omitted.

My first job at a consulting company out of uni I had to to an IQ test that could also indicate if I had rabies. It had questions like "are you afraid of water", "have you showered in the last three weeks", "have you felt more aggressive lately"...

I'm sorry what?

It’s a joke about the pattern of questions

Re: Klarna users are being signed in to random accounts

#232
At a large site I used to work for circa 2011, before everyone had gone fully HTTPS, we received similar panicked reports from users: "I'm logged in as someone else!" Turns out an ISP in the Philippines decided to just ignore `cache-control` and `vary` headers and forcibly started caching logged-in responses along with auth cookies. Bad times. Made it clear to me why the whole web would have to go HTTPS.

Re: Klarna users are being signed in to random accounts

#234
post #204

Earlier quoted context omitted.

Wow, first time i hear that. Aren't those IQ test horribly biased?

not only that, but they aren't a great predictor of actual job performance

Depends on the job actually. (I know this will be unpopular but in my experience hiring for certain roles it is correlated)

Re: Klarna users are being signed in to random accounts

#235

I'm just guessing, but... "developer gets a great idea - let's push an update to the API as a GET request so we can cache this on the CDN... forgetting that the JWT token is potentially returned in the call. Now, whoever makes the call first gets their JWT token stored for everyone else to load instead when the API call is made." Ta-da, Klarna.

I introduced a similar bug into one of my products in the past (Be honest, who hasn't?). But I'm surprised here because Klarna is a quite mature product and something like this shouldn't really happen at that stage.

Re: Klarna users are being signed in to random accounts

#236

Earlier quoted context omitted.

1) Caching: a cache is used in front of the API for things like product listings, it uses a pattern match like /api/products/*, and caches routes which match. Someone accidentally configures it to cache /api/*, and thus login responses from /api/session return another recent user session, potentially including the cookie such that subsequent requests are authenticated as that user. 2) Mentioned elsewhere in this thre…

Why do users get multiple other users instead of one then, if it's a global variable? I assume because Klarna is running on many servers?

It could also be that new logins overwrite the cache/global

Re: Klarna users are being signed in to random accounts

#237

Does Klarna still do the IQ test as part of their hiring process?

tangential thought, but related: I am, in general, a proponent of nuclear energy as a green alternative to whatever the hell we are doing today. But when I see such stories that humans manage to fuck up simple payment processing apps, still make errors while maintaining bridges, still manage to do hugely negligent screw-ups (most likely corrupt) in *cable cars maintenance*, I immediately think that it is imminent, th…

There are also plenty of services with really incredible uptime. You just don't hear about them because they're deep in whatever stack you're using and haven't broken publicly in decades.

It's all about good engineering practice and architecture.

Re: Klarna users are being signed in to random accounts

#238

Earlier quoted context omitted.

It's not a web system but Mac OS messed it up once: https://objective-see.com/blog/blog_0x24.html Caching could be an issue, if they added a cache for a microservice call of /get/user?id=$USER and ignored the id parameter, /get/user?id=ipsin fetches data for the user ipsin, the system sees the next call /get/user?id=bellyfullofbac and thinks, "Wait, I have the results of /get/user in cache" and returns the data for i…

Besides having the HTTP verb in the URL (GET -> /get/), why would you put the id in the query? Why not just use GET /user/1234 instead of duplicating things by using GET /get/user?id=1234 . What does GET /get/user then even return, all users, no user, ...? Edit: typo

It's just an example...

Re: Klarna users are being signed in to random accounts

#239

I'm just guessing, but... "developer gets a great idea - let's push an update to the API as a GET request so we can cache this on the CDN... forgetting that the JWT token is potentially returned in the call. Now, whoever makes the call first gets their JWT token stored for everyone else to load instead when the API call is made." Ta-da, Klarna.

I remember something similar when there was a load balancing issue with some website where it would randomly assigning a user with someone else's account.

Re: Klarna users are being signed in to random accounts

#240

Earlier quoted context omitted.

Debit cards is more common in quite a few places. My impression has always been that paying everything with a credit card is a U.S. thing. Here in Finland, It's not uncommon to have no debt apart from the mortage on one's home.

Mortgages are 70% of debt in the US. It is like saying I got perfect on a test except for the 70% I got wrong.

Not really. Mortgages are secured against the property, and attract low interest rates compared to unsecured debt like a credit card.
Post reply on HN