cross-posted from: https://lemmy.world/post/49778353
Also
/c/modabuse. Also/c/yepowertrippinbastards. Alsolemmy.ml/c/worldnews,comrade,ACAB, and 552 individual accounts across 67 instances, about half of them on lemmy.world.None of this is in the source code. It’s downloaded at runtime from a file nobody has ever looked at.
If you’re just tuning in
Tesseract is a third-party web frontend for Lemmy, maintained by asimons04 and licensed AGPL-3.0. Admins deploy it on their own servers alongside or instead of lemmy-ui, and there are public instances of it people use to browse Lemmy generally. If you’ve used a Lemmy site that didn’t look like stock Lemmy, there’s a fair chance it was this.
Last week db0 posted a PSA: Tesseract contains a blacklist of instance domains compiled directly into the application. 32 of them. Admins can’t see it, can’t configure it, and aren’t told it’s there. Connect to a listed instance and the app tells you it’s “incompatible,” which is not true.
I went through the code to see how that was implemented. The hardcoded list turns out to be the small half of the system.
There’s a second filter policy fetched over HTTP every time the app loads. It isn’t in the git repository. It’s unauthenticated and world-readable, so anyone can pull it. Right now it carries 552 user accounts, 2,275 username patterns, 54 instances, 97 communities, 289 keyword patterns and 351 domains, with every category set to hide matches rather than flag them. Not collapsed behind a click. Simply absent, with no indication anything was removed.
Verify all of it in ten seconds
curl -s https://tesseract.dubvee.org/tesseract/api/system/policy \ | base64 -d | gunzip > policy.jsonThat’s the live policy, base64-wrapped gzip, 111KB of JSON when it unpacks. There’s a stale fallback copy at
/data/policy.datas well.It filters criticism of moderators
lemmy.sdf.org/c/modabuse— listedlemmy.dbzer0.com/c/yepowertrippinbastards— listedlemmy.dbzer0.com/c/YPTBcirclejerk— listed- community regex
power ?tripping?- keyword
censoring meCall the rest of it whatever you like. This part is not spam defence.
It filters words
The 32 community name patterns include
Communis(t|m),Conservativ(e|es|ism),Leftis(t|m),Libertarian(ism)?,^Green Part(y|ies),Zionis(t|m),(Police|Cops),guillotineandbillionaire.Keywords include
comrade,ACAB,neoliberal,proletaria(n|t)anddeath to.Filtered communities on instances that aren’t blocked:
lemmy.ml/c/worldnews,lemmy.today/c/news,lemmy.ca/c/politicalnewscanada,lemmy.ca/c/usa,infosec.pub/c/strategic_unions.The 552 users aren’t bots
67 instances. 272 on lemmy.world alone, 40 on sh.itjust.works, 19 on lemmy.ca, and 28 instances contributing exactly one person each.
355 of the 552 usernames are plain alphabetic, twelve characters or under, median length eight. Only 36 look like spam registrations. A bot list looks like the opposite of that.
Seven of them aren’t even Lemmy. There are Mastodon and Friendica accounts in there: people who have never used Lemmy, hidden by a Lemmy frontend, with no possible way of finding out.
I have the list and I’m not posting it. Most of these are ordinary people who got pattern-matched, and 552 names on this comm is a harassment target inside an hour. Run the command above and grep for yourself.
And it lies about it
When the instance block fires you get: “Incompatible Instance. Not Supported. $instance is not compatible with Tesseract.”
Nothing is incompatible. It’s a policy decision dressed as an API error, and it’s what had db0 chasing a version mismatch that never existed.
For the hidden users, communities and keywords, you get no message at all.
Admins can’t switch it off
Tesseract has env vars for
PUBLIC_DOMAIN_BLACKLIST,PUBLIC_FAKE_NEWS_BLACKLISTand the shortener lists. There is none for either blocklist.enableToxicModebypasses the other filters and explicitly not this one.Self-host it and you cannot disable this, nothing in your config admits it exists, and the contents can change without you pulling a commit.
Before someone says it
A lot of that domain list is real spam defence. It filters conservatism as well as communism. “It targets the left” doesn’t survive the data and I’m not going to pretend it does.
The problem is that spam filtering and political editorial got welded into one undocumented, remotely-updatable blob, shipped hidden, to admins who’ve never read it and users who don’t know it’s there. The spam work is what makes the rest unauditable: “it’s a spam list” answers every individual question and none of the whole.
And
/c/modabuseis not spam.Asks
- Publish the runtime policy in the repo, or kill the endpoint.
- Stop reporting a policy block as a technical incompatibility.
- Tell users when something’s been hidden. One line.
- Give operators an off switch, like every other blacklist in the codebase has.
It’s AGPL-3.0 and db0 already forked it. That’s the licence working as designed. But forking isn’t disclosure, and the admins who need this are precisely the ones with no reason to go looking.
If you run Tesseract, you are relaying a 111KB moderation policy you have never read, under your instance’s name, to users who don’t know it exists.
Full contents of every list, unedited, in the comments.
"enableKeywordFiltering": true, "hideKeywordMatches": true, "keywords": [ "🥺?👉👈", "0811( |-)?4555588", "@juicypinkrose", "^Article is paywalled.?$",???
"software": [ "goofed" ],what the fuck is goofed
You done goofed. I’ve already backtraced your IP.
"(freedom|hamburger|murica) unit","^Paywall(ed|s|\"d)?(…|\\.+)?$", "^Paywalled,? ?sorry?\\.? Can’t read it\\.?$", "pedophile", "Perchance", "pis+rael",
"usgreenlandwar", "^worldnewsnonus", "^Yuri|^WholesomeYuri", "Zionis(t|m)"
Oh god, I’m in the user regexes. Should this be an achievement of mine?
probably gonna get shit on for not using a VPN for literally everything all the time but I didn’t realize that I was going to need to attach my terminal to a VPN to download that file! All that and I’m not even on the list as far as I can tell. I’m almost offended that I haven’t offended this person.
Wow, I’m famous enough to have made the list. Nice!
I kinda wonder if I wasn’t on the list, but now I am because of my previous comment on this post.
I noticed this a few weeks ago. I blocked the domain and purged the hardcoded ones.
Tons of political shit on that list and then midway through it just decides to ban yuri. Not porn, not furry content, and not hentai. Just yuri
Seems to dislike women who don’t need men in their life. Par for the course.
I’ll gladly take the downvotes of shame for my previous comment on another thread. Tesseract dev has gone looney
Don’t care about your ideological bent, engaging this clearly in bad faith with the fediverse should be unwelcome here.
Its blatantly dishonest. That is unacceptable; this project and the people building it should have no home here.
Here here. Freedom of speech online, combined with the ability to control what you see, is the absolute core of a free internet, and this fucker has violated that.
It’s a solo project by @AdmiralPatrick@dubvee.org who has currently taken their instance offline to hide.
Another badmiral. Typical.
Had a feeling it was AdmiralPatrick the second I opened this thread, as I saw he blocked me from communities with zero reason or explanation within my first months on Lemmy.
Yep and this case is exactly the strength of the fediverse: transparency and choice for the users and the admins. And those developers tried to break both.
Why is
"^Yuri|^WholesomeYuri"in the community name filter? Why are anime lesbians hard blocked, while ani.social is just in the default user filter?Filtered communities on instances that aren’t blocked: lemmy.ml/c/worldnews
ml is in the instance filter?
So a system named after a hypothetical, hyper-dimensional solid turns out to have hidden depths, secret facets that we can’t see from our universe?
And this is why I run my own instance and use Summit…
The developer behind Tesseract is the same user who has displayed the habit of preemptively banning users who have never participated in or even visited his communities, particularly those that were on dubvee.org. Apparently for ideological reasons, or simply for being associated with a particular Lemmy instance.
So at the risk of stirring up even more Fediverse drama by saying it, it seems like the findings above are squarely on brand.
Not to come over all Graham Chapman about it or anything, but I always found that type of behavior to be very silly.
Edit!
I got curious and pulled down the data to have a look. If you want to do this on Windows (don’t @ me about it, alright?)
spoiler
you can just point your browser to https://tesseract.dubvee.org/tesseract/api/system/policy and save it someplace or, if you insist on doing it from a commandline,
curl --output [filename] https://tesseract.dubvee.org/tesseract/api/system/policy.Then to decode from base64:
certutil -decode [inputfile] policy.gzAnd extract:
tar -xf policy.gzOr, you know, just open it in Explorer. The resultant file is just plain text.
Anyway, guess what! I’m on the list. I’m a celebrity, ma! I ought to be on TV.
I’m somewhat disappointed that i am not on the list. But i rarely post even if i do comment on the regular, and i tend to be not attracting drama (deserved or not) while doing so.
Still, i would have found it great if a leftist chump like me made the list lol. I am in awe of your popularity mate ;-)
dubvee has insane ban policies. Like they find people to ban based on posts in coms that have nothing to do with them. It’s almost like SRS on reddit.
This tells me the project cannot be trusted at all. The dev is clearly willing to ship undisclosed block lists… What’s next, a crypto miner? Credential harvesting? Who knows.
Yeah that’s what I was thinking. I wonder what his track record on open source is.
Libs love betrayal and being evil for no fucking reason.
censoring me
Is your account just for this sort of trolling? I’d hate to think you were being honest, but trolls tend to be a tiny bit subtler.
No I just have a grudge against unselfaware cryptofascists. Personal stuff.
Lmao I think the majority of users who regularly talk politics are on that block list. You can go into any post in a political com and search usernames at random and most of them will be on there. I went to a random post on politics@lemmy.world and 5 out of 6 of the top 6 top level comments were users on the block list.














