Notion leaks email addresses of all editors of any public page
Posted by Tiberium 1 day ago
Comments
Comment by Tiberium 1 day ago
> When you publish a Notion page to the web, the webpage’s metadata may include the names, profile photos, and email addresses associated with any Notion users that have contributed to the page.
Comment by EMM_386 1 day ago
The flaw itself is absurd but then just accepting it as "by design" makes it even worse.
Comment by chinathrow 1 day ago
Comment by varenc 1 day ago
Conceptually, I agree it should be easy, but I suspect they're stuck with legacy code and behaviors that rely on the current system. Not breaking anything else while fixing this is likely the time consuming part.
Comment by reactordev 1 day ago
if (metadata.is_public)
Simple fix.Comment by varenc 1 day ago
The trouble is the UUID->email endpoint has no idea what the context is and that endpoint alone can't decide if it should expose email or not. And then public Notion docs publicly expose author UUIDs.
Their mistake was architecting things this way. From day 1 they should have cleanly separated public identifiers from privileged ones. Or have more bespoke endpoints for looking up a UUID's email for each of the narrow contexts in which this is allowed. They didn't do this, and they certainly should have, but fixing this mess is likely a non-trivial amount of work. Though I bet it could be done immediately if they really cared and didn't mind other things breaking.
I'm absolutely not defending their choice to expose emails in this way. They should have addressed this years ago when it was first reported, and I want them shamed for failing to care. But just trying to say it's likely not a one line fix.
Comment by reactordev 1 day ago
It is not a public marker, it’s PII.
Comment by canarias_mate 18 hours ago
Comment by chinathrow 1 day ago
They can easily withold information they put out intenionally.
Comment by csallen 1 day ago
Comment by chinathrow 22 hours ago
Comment by markdown 1 day ago
If you can't easily architect around it, then don't do what you're trying to do.
"Oh I needed to disclose user data in order to make more money" isn't an acceptable excuse.
Comment by csallen 1 day ago
Comment by chinathrow 22 hours ago
Comment by sysguest 1 day ago
hmm maybe they should've paywalled?
Comment by UqWBcuFx6NV4r 1 day ago
Comment by chinathrow 1 day ago
Comment by ArchieScrivener 1 day ago
Comment by sph 1 day ago
Comment by protocolture 1 day ago
Comment by gib444 1 day ago
Comment by huflungdung 1 day ago
Comment by mikae1 1 day ago
Comment by lioeters 1 day ago
Comment by cm11 1 day ago
Anyways, I think Notion has a learning curve that is a little longer than one expects. I can believe that with some dedicated learning time I could be turned into a believer. But I also distinctly had the impression that it was one of those things where it saved a ton of time for a few narrow-visioned people (the people who championed it), but added meaningful time to everyone else's. Those people were largely project managers or operations folks, and transitively the leaders they reported to. It heavily threw the switch towards "legibility" over reality.
It's like when someone new to a messy project, creates a spreadsheet, and says, "Let not overthink this, everybody just fill in your project details in your row". If your work, which you are the expert on, doesn't fit nicely into the person's columns, it's not easy for you to fill out. Meanwhile, the person who created the spreadsheet, gets what looks like a neat and orderly answer to everything. All the messy things—which are or at least have in them the correct status of the thing—will be masked under a clean and simple, but rather incorrect, thing. That spreadsheet will also travel far specifically because it's neat and therefore portable. There aren't a bunch of "it depends" in it.
Comment by thatxliner 1 day ago
Comment by homeonthemtn 1 day ago
Comment by ksidosjcosjcisj 1 day ago
It never meant anything. Motion has always tried to be everything, do everything and work for absolutely everyone and that has always meant it was just a jumbled mess of pure waste of computing cycles. Notion has always been a disgrace of an app and a service—shoving AI into it is just the natural next step for a “whatever” company such as this.
Comment by ternaryoperator 1 day ago
Comment by ngold 1 day ago
Comment by argee 1 day ago
What does this mean?
Comment by unconed 1 day ago
Like every other AI tool it mainly seems to exist to produce productivity porn. Summarize the meetings nobody could be bothered to summarize. Write the docs nobody can be bothered to read or write. Communicate as an end, not a means, because the company your work for has transitioned into the dead-weight phase.
Comment by skydhash 1 day ago
Comment by mschoening 1 day ago
First: This is documented and we also warn users when they publish a page. But, that’s not good enough!
Second: We don’t like this and are looking at ways to fix this either by removing the PII from the public endpoints or by replacing it with an email proxy similar to GitHub’s equivalent functionality for public commits.
P.S: Some folks here have speculated that this should be a 1 minute fix. Unfortunately that is not the case. :(
Comment by aucisson_masque 1 day ago
4 years.
Comment by blitzar 1 day ago
Comment by wferrell 1 day ago
Comment by mschoening 1 day ago
https://cleanshot.com/share/trYdqYFZ
This is pretty meh. We will deploy more explicit messaging while we mitigate this properly.
Comment by janalsncm 1 day ago
Comment by halJordan 1 day ago
Comment by reddalo 1 day ago
Comment by nashashmi 1 day ago
There is a way to mitigate this. Re-hash and cache the page to be meta-less for public URLs. I guess that requires a huge amount of coding for a team that has not built the product from the ground up. But I feel like a "copy and paste" could fix that (remove author data).
Comment by cm11 1 day ago
Comment by dspillett 1 day ago
Ignoring the “the bug was raised four years ago” part and assuming you just mean it isn't as easy as that and might break other things: what other things could resolving this potentially break? If the issue is that the PII needs to be present for private/authenticated views, would not making it unavailable everywhere including there, and fixing that later, be the better option over leaving the PII present for public views for a second longer?
Comment by ktallett 1 day ago
Comment by mschoening 1 day ago
Comment by _kl 1 day ago
Comment by andrelaszlo 1 day ago
Comment by gib444 1 day ago
Comment by popalchemist 1 day ago
Comment by hluska 1 day ago
Comment by markdown 1 day ago
Nonsense! It is a 1 minute fix. You just don't want to take a $ hit from inconveniencing users by breaking another part of your app.
Pull your thumb out and do the right thing. Implement the 1 minute fix, and then spend the rest of the week or month fixing the other parts of your app that might break as a result of fixing this.
Comment by danpalmer 1 day ago
What are you doing to address the support issues that allowed such a privacy issue to remain after being reported?
What are you doing to address the issues with the company's prioritisation framework that allowed such a privacy issue to remain for 4 years?
Which authorities are you reporting the privacy issue to in line with local requirements?
Comment by Akuehne 2 hours ago
Yes, some users probably didn't realize their edits to public pages were saved publicly, and that's a legitimate UX complaint. But some of the responsibility has to sit with the user. Otherwise we'd be running daily headlines about Meta "leaking" user data to every advertiser with a checkbook.
Comment by RomanPushkin 1 day ago
Comment by matheusmoreira 1 day ago
Comment by sph 1 day ago
The sad thing is that people are used by now that anything they enter on a website is sooner or later going to be leaked, if not sold as if often happens with email addresses.
Comment by varispeed 1 day ago
Comment by matheusmoreira 1 day ago
Comment by d0mine 1 day ago
You even may be called freedom fighter from the start if you are trying to displace government in the right country. There are plenty of examples.
Comment by matheusmoreira 1 day ago
Only those who are willing to die have the power to truly change the world. Those who don't want to die are dominated by those who do. The average citizen of a civilized society has a lot to lose. They don't want to die over nothing. They want to get even richer and enjoy an even better life. It's the people who have nothing to lose and everything to gain who are radicalized.
Comment by steve1977 1 day ago
Also at least in democracies you can reject the government without physical violence.
Comment by matheusmoreira 1 day ago
Extreme, yet I can't deny its effectiveness. How do you radicalize a decadent, apathetic population? People who literally do not give a shit about important issues because they have too much to lose, because they'd have to give up their comfortable lifestyles? Terrorists attack them directly, breaking the illusion that their almighty governments can protect them. They gave up all those freedoms, paid all those taxes, sacrificed their principles, all in the name of security... Only to discover they aren't safe at all. Quite ironic, really. No wonder governments worldwide are willing to pull out all the stops against terrorists.
> Also at least in democracies you can reject the government without physical violence.
Doubt. To me it seems democracies exist just to give people the illusion of choice, not to give them any real power. The reality is people are manipulated by the mass media, their very wants and desires are shaped by it. Censorship is growing world wide, even in "democratic" governments, because they want to reserve the right to shape the population's collective mind. And when even that fails, it turns out every politician answers to the corporations anyway. They literally buy laws via lobbyists. If by some miracle some law gets passed to benefit people at the expense of corporations, the lobbyists swoop in and neuter it with hidden loopholes and fine print.
Comment by coliveira 1 day ago
No, you cannot. You can reject the current party, but the government is much more than that. In the US, for example, the government is a set of institutions that were put in power in the American revolution. If you try to reject this your own life is at risk.
Comment by janalsncm 1 day ago
The U.S. government is confident enough in their appearance of legitimacy that they allow pretty broad liberty to criticize it. This is in contrast to other governments like China or Russia or even Singapore which are much less secure about their legitimacy.
Comment by steve1977 1 day ago
Comment by varispeed 1 day ago
Comment by linsomniac 1 day ago
Comment by freedomben 1 day ago
Comment by zaggle 1 day ago
Comment by cldwalker 1 day ago
Comment by rchaud 1 day ago
Comment by Saris 1 day ago
Comment by linsomniac 1 day ago
Comment by amaccuish 1 day ago
Comment by hresvelgr 1 day ago
Comment by kepano 1 day ago
Comment by requilence 1 day ago
Comment by vovavili 1 day ago
Comment by freedomben 1 day ago
Comment by holoduke 1 day ago
Comment by soundnote 1 day ago
I'm not saying it's the most likely project to survive, but they've been working in quiet mode for a good while now.
Comment by linsomniac 1 day ago
Notion looks to be pretty capable in that regard, so the knowledge graph options really fell short (Logseq, Obsidian, Joplin, Trilium, Craft). They are likely good if your use case is in their lane.
Anynote looks like a good option, except it doesn't have a web client, just the Android/iOS (and MacOS I guess?).
Milanote sounds like a possible option if my use were more inspiration-board heavy.
I'll probably give Anynote a try, but Notion really does seem to be a compelling product if it weren't for the jackassery that lead to this thread to begin with.
Comment by linsomniac 22 hours ago
I was just trying to get a list of building supplies, one of which was the doors I wanted to use, to have a page where I could put a link to the product page for the doors I found.
Anynote looks promising, if I could understand why I didn't have what look to be the "standard objects" in a new space.
Comment by bryanhogan 1 day ago
I kinda dislike where Notion is heading though, forcing more and more things on their users without any ways to disable them. But yes, it's capable to do what you are looking for.
Maybe Affine could also work though, you can self-host it and it's more customizable: https://affine.pro/
Comment by kirubakaran 1 day ago
Comment by supriyo-biswas 1 day ago
Comment by weberer 1 day ago
Comment by zaggle 1 day ago
Comment by Kye 1 day ago
Comment by DropDead 1 day ago
Comment by steve1977 1 day ago
Comment by bitmasher9 1 day ago
We’ll also see more token heavy services like dependabot, sonar cube, etc that specialize in providing security related PR Reviews and codebase audits.
This is one of the spaces where a small team could build something that quickly pulls great ARR numbers.
Comment by contractlens_hn 1 day ago
Comment by dgb23 1 day ago
Comment by delecti 1 day ago
Comment by phyzome 1 day ago
Comment by autoexec 1 day ago
Comment by subscribed 1 day ago
The reason for it is very simple: big companies bribe politicians and.... buy ads in media.
Comment by resident423 1 day ago
Comment by fnoef 1 day ago
Comment by estetlinus 1 day ago
Comment by estimator7292 1 day ago
We need laws and a competent government to force these companies to care by levying significant fines or jail time for executives depending on severity. Not fines like 0.00002 cents per exposed customers, existential fines like 1% of annual revinue for each exposed customer. If you fuck up bad enough, your company burns to the ground and your CEO goes to jail type consequences.
Comment by rafram 1 day ago
Comment by knome 1 day ago
Comment by hluska 1 day ago
If you read more you’d know that (and you would use capitals).
Comment by knome 1 day ago
if true, your claim of the inability of the financial worker sector to absorb masses of workers dumped from a company going under due to fraud committed by the company sounds like exactly something that a social safety net would assist with, giving the workers a larger space to safely transition from one position to another.
an emotional appeal to insist on allowing a company engaged in criminal acts to persist because it might have a negative impact on those working for it isn't logical. if the company valued its employees, it shouldn't have engaged in fraud and been folded under as it deserved.
Comment by rafram 1 day ago
Comment by wry_durian 1 day ago
Comment by matheusmoreira 1 day ago
Comment by folkrav 1 day ago
Comment by drstewart 1 day ago
If we also make the penalty for every crime the death penalty we'll have no more crime. Very simple solution no one has thought of.
Comment by amelius 1 day ago
Comment by amelius 1 day ago
Comment by hluska 1 day ago
Comment by ksidosjcosjcisj 1 day ago
Comment by hluska 1 day ago
Comment by amazingamazing 1 day ago
some problems I've identified:
1. suppose you have x users and y groups, of which require some subset of x. joining the data on demand can become expensive, O(x*y).
2. the main usefulness of such an architecture is if the data itself is stored with the user, but as group sizes y increase, a single user's data being offline makes aggregate usecases more difficult. this would lend itself to replicating the data server side, but that would defeat the purpose
3. assuming the previous two are solved, which is very difficult to say the least, how do you secure the data for the user such that someone who knows about this architecture can't just go to the clients and trivially scrape all of the data (per user)?
4. how do you allow for these features without allowing people to modify their data in ways you don't want to allow? encryption?
a concrete example of this would be if HN had it so that each user had a sqlite database that stored all of the posts made per user. then, HN server would actually go and fetch the data for each of the posters to then show the regular page. presumably here if a data of a given user is inaccessible then their data would be omitted.
Comment by requilence 1 day ago
Premise: treat it as certain that the server will eventually be compromised, subpoenaed, or misconfigured. So the server must hold nothing that can be decrypted or linked to a specific user's content. Users hold their own encryption keys, the server stores ciphertext, and there is no UUID→identity mapping at the sync layer. Sync runs over any-sync, which is peer-to-peer-capable; intermediate nodes see ciphertext.
On your four problems:
1. O(x*y) joins - pushed to the client, because the server can't decrypt enough to do them.
2. Offline members - eventual-consistency sync and CRDT.
3. Client-side theft - if an attacker has the user's keys, they have the data. Intentional: no server-side gate to break means no server-side gate to exfiltrate at scale. We're considering optional 2FA at the infrastructure layer as an additional barrier to data retrieval.
4. Unwanted modifications - content is signed with user keys and validated on read.
Real cost is on the product side: no server-side AI over your notes, no server-side full-text search, slower cold-start, and harder to build product analytics (no access to user data). Granular ACLs are also harder — permissions are enforced by key possession, so revoking access often requires key rotation rather than a permission-flag change.
But the exact bug this post is about (a server endpoint that maps a public UUID to an email) is structurally impossible in this model, because there's no such mapping on our servers to misuse.
any-sync and our data format (any-block) are MIT, if you want to poke at how it works: https://github.com/anyproto
Comment by yellow_postit 1 day ago
Comment by jdgiese 1 day ago
Comment by VladVladikoff 1 day ago
Comment by georgespencer 1 day ago
Comment by ksidosjcosjcisj 1 day ago
These apps are a disease and no one should be using services that offer them.
Comment by uxjw 1 day ago
Comment by rvz 1 day ago
Comment by breakfastduck 1 day ago
Comment by O4epegb 1 day ago
Here's a Reddit post just as confirmation: https://www.reddit.com/r/Notion/comments/hqyxid/possible_sec.... I also reported it privately two months prior, of course.
Comment by skissane 1 day ago
I don’t love Confluence, but at least it doesn’t do this to me.
Comment by e-dant 1 day ago
Comment by hohithere 1 day ago
Comment by bryanhogan 1 day ago
Obsidian is built on-top of just markdown files, so you can do whatever you want with them. E.g. if you need multiplayer editing you could use 3rd party solutions or even something like HedgeDoc.
Affine is more closer to Notion and self-hostable.
Obsidian: https://obsidian.md/
Affine: https://affine.pro/
Comment by Pi9h 1 day ago
It’s open-source, easy to self-host and feature-packed.
GitHub: https://github.com/docmost/docmost.
Comment by bryanhogan 1 day ago
I'm always disappointed by note-taking tools calling themselves a Notion alternative when they do not provide an alternative to Notion and are instead just another note-taking tool with a simple UI.
If you want to be a Notion alternative provide the things that make Notion great, e.g. the database functionality. It's okay to be a simple colaborative notes tool, but that is not a Notion alternative.
Comment by Pi9h 1 day ago
We have support for team-spaces, permissions, diagrams, real-time collaboration, comments, page verification workflows, AI, SSO/LDAP, search, audit logs, API, public sharing, and a lot more.
Btw, we have plans to introduce a database-like feature.
Comment by tweetle_beetle 1 day ago
Comment by Throwaway838333 1 day ago
Comment by staticassertion 1 day ago
Comment by rvz 1 day ago
Tells me everything I need to know about this industry. No regard or seriousness to security at all.
Comment by shojivr 2 hours ago
Comment by colesantiago 1 day ago
Comment by Grappelli 1 day ago
Comment by ibrahimhossain 1 day ago
Comment by qotgalaxy 1 day ago
Comment by SadErn 1 day ago