▲ | Lovense: The Company That Lies to Security Researchers(bobdahacker.com) | |||||||||||||||||||||||||||||||||||||||||||||||||
60 points by campuscodi 3 days ago | 21 comments | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | chmod775 3 days ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Am I crazy or does all of that look ridiculously over engineered for what they actually provide? It looks like the 4-5 devs wanted to build something fancy like the big boys would, without having the manpower to deal with the overhead. These kinds of issues usually arise because complex technologies are introduced, mostly by following some basic tutorials and light googling, without anyone actually understanding what that random NPM package (speaking a protocol of which they have at best a rudimentary understanding) actually does to communicate with the rust crate the other guy pulled. I don't doubt their entire service could be a monolithic, small, and easily comprehensible node app running on some consumer PC hardware at the company HQ. You're never going to outgrow that in their business. It'd likely run off a macbook with some engineering discipline. Instead it's probably a confusing mess of microservices in a Kubernetes cluster, each running in its own Docker container for "isolation", glued together with some YAML magic and a few bash scripts, tunneling XMPP over gRPC "because it's faster", behind an Istio mesh someone half-configured, talking to a bunch of managed cloud services across AWS and GCP "for redundancy", with Redis caches scattered around "just in case", logs streaming into three different observability tools (none of them fully set up), CI/CD powered by GitHub Actions triggering Terraform deployments through a Slack bot, autoscaling turned on "with default settings", and of course there's a blockchain component for audit logs - though no one remembers why - and a colocated 96-core fifteen-thousand dollar server running a cron job that updates a config file in S3 every hour "to keep things in sync". Too bad the entire thing relies on those JIDs containing PII now, which everyone is afraid of changing. The solution? Slap another micro-service in front that translates them to something else. Devs have been unsuccessfully trying to get exactly that deployed for weeks now. But cut them some slack: getting shit done is hard when you're overqualified for your job. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | BobDaHacker 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Hi HN, I'm the researcher who found these vulnerabilities. Happy to answer questions. A few clarifications on the technical side: The XMPP issue wasn't just about JIDs containing emails - it was that their roster sync actively linked internal IDs to real email JIDs. Even their "v2" endpoints that tried to hide emails were useless because the XMPP layer still exposed everything. Regarding the "14 months to fix" claim - they actually had the fix ready (they admitted they could do it in 1 month) but chose not to deploy it for "legacy support." The fix they implemented after public pressure was exactly what I suggested months ago: just use the internal IDs they already had. The most frustrating part was discovering other researchers reported these exact bugs in 2022 and 2023. Lovense told them it was "fixed" while paying them peanuts ($350 vs the $3000 they paid me for the same bugs). Also, to address the over-engineering comment by chmod775 - you're spot on. They had internal user IDs (ofId) the whole time but maintained this complex dual system. The "architectural complexity" was self-inflicted. | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | ykonstant 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
That is beyond bad; some models using lovense have high privacy needs and probably don't know their equipment is so insecure. Even leaving account takeover aside, it is hard enough to fend off stalkers without them having your email. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | breakingcups 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
This is crazy bad, malpractice-level bad if this were a regulated profession. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | dizhn 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Like the author I would expect a lot more attention to privacy and security from a remote operated vibrating dong company. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | noboostforyou 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Assuming everything you reported is true (I'm not doubting you, I just don't have the time to test everything myself atm) this is actually insane behavior from the company. | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | jterrys 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
https://web.archive.org/web/20250728145153/https://bobdahack... hugged to death | ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | JohnMakin 3 days ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
Why even have a bounty system in the first place if you're going to do this kind of thing? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | tristor 3 days ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
This type of behavior should honestly get the leaders of the company criminally charged, this is willful negligence. Assuming this is true (and it the blog post has enough receipts to assume that it is), this company should be forcibly dissolved by the government and the leadership criminally charged. This is absolutely ridiculous behavior in response to a security report. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|