cross-posted from: https://lemmy.world/post/49778353

Also /c/modabuse. Also /c/yepowertrippinbastards. Also lemmy.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.json

That's the live policy, base64-wrapped gzip, 111KB of JSON when it unpacks. There's a stale fallback copy at /data/policy.dat as well.

It filters criticism of moderators

  • lemmy.sdf.org/c/modabuse — listed
  • lemmy.dbzer0.com/c/yepowertrippinbastards — listed
  • lemmy.dbzer0.com/c/YPTBcirclejerk — listed
  • community regex power ?tripping?
  • keyword censoring me

Call 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), guillotine and billionaire.

Keywords include comrade, ACAB, neoliberal, proletaria(n|t) and death 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_BLACKLIST and the shortener lists. There is none for either blocklist. enableToxicMode bypasses 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/modabuse is not spam.

Asks

  1. Publish the runtime policy in the repo, or kill the endpoint.
  2. Stop reporting a policy block as a technical incompatibility.
  3. Tell users when something's been hidden. One line.
  4. 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.

top 89 comments

sorted by: hot top controversial new old
[–] 291 points 3 months ago (19 children)

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.

  • source
  • hideshow 19 child comments
  • [+] -112 points 3 months ago (17 children)

    Libs love betrayal and being evil for no fucking reason.

  • source
  • parent
  • hideshow 17 child comments
  • [–] 47 points 3 months ago (7 children)

    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.

  • source
  • parent
  • hideshow 7 child comments
  • [+] -37 points 3 months ago (6 children)

    No I just have a grudge against unselfaware cryptofascists. Personal stuff.

  • source
  • parent
  • hideshow 6 child comments
  • [–] 9 points 3 months ago (5 children)
  • [+] -26 points 3 months ago (4 children)

    Yes, I am another user on the same server. Thank you for noticing. My reasons for doing this shall remain inscrutable.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 4 points 3 months ago (4 children)

    Libs are cryptofascists?

    You need an internet break, your brain is currently melting.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 4 points 3 months ago (3 children)

    I think he just doesn’t know the difference between liberal and libertarian

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 3 months ago (1 child)

    I'm always confused when someone knee jerks "liberal". Are they trying to talk about leftists? Or pro corporate free market people? Or...?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 0 points 3 months ago

    Most people on here, outside of the far-right of lemmy.world, use liberal to mean... liberals. and neoliberals. Aka most democrat and republican politicians, and the current status quo of the western world; aka the single most destructive force in world history.

  • source
  • parent
  • load more comments (-1 replies)
  • [–] 121 points 3 months ago

    Hilarious. Well, I never used Tesseract, but now I'll make sure never to recommend it

  • source
  • [–] 106 points 3 months ago* (last edited 3 months ago) (11 children)

    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?)

    spoileryou 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.gz

    And extract:

    tar -xf policy.gz

    Or, 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.

  • source
  • hideshow 11 child comments
  • [–] 9 points 3 months ago (2 children)

    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 ;-)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 11 points 3 months ago (1 child)

    Yes, I have no idea what the rationale is. My posts are largely about silly knives, birds, motorcycles, and occasionally cameras. Other than very occasionally engaging with idiots in the comments until I inevitably remember that it's a waste of time, I don't think I've incited or attracted too much if any drama around here.

    My site itself does not have a hardcoded ban in the list, though!

  • source
  • parent
  • hideshow 1 child comment
  • [–] 5 points 3 months ago* (last edited 3 months ago)

    Other than very occasionally engaging with idiots in the comments until I inevitably remember that it’s a waste of time,

    awwww you remember meeeeee :3333

    WAIT silly knives? hold on

    edit i think i might have just talked the wife into a gardening sword. she is pretty cool.

  • source
  • parent
  • [–] 6 points 3 months ago (3 children)

    is the same user

    Which user specifically

  • source
  • parent
  • hideshow 3 child comments
  • [–] 94 points 3 months ago (5 children)

    Censoring the phrase ACAB is just wild. Way to tell on yourselves.

  • source
  • hideshow 5 child comments
  • [–] 81 points 3 months ago (16 children)

    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

  • source
  • hideshow 16 child comments
  • [–] 53 points 3 months ago (13 children)

    Seems to dislike women who don't need men in their life. Par for the course.

  • source
  • parent
  • hideshow 13 child comments
  • [–] 17 points 3 months ago (12 children)

    "Don't need men" is such a weird thing to say though. I don't need men in my life but that's not going to stop me from having men in my life.

  • source
  • parent
  • hideshow 12 child comments
  • [–] 22 points 3 months ago* (10 children)

    Lets define it clearer: are not sexually dependent on someone with a penis. That's probably what his subconscious problem is.

  • source
  • parent
  • hideshow 10 child comments
  • [–] 6 points 3 months ago (2 children)

    To the people who reported this comment as transphobic... Tripping over phrasing is not transphobia. People need a chance to learn, I will not be removing this comment. If people are trying to advocate for gender neutral or trans inclusive language don't be dicks about it to the person who made a mistake. This person was willing to rephrase but kept getting shit on. This is not the way to handle this.

    My daughter is trans so don't come at me with your shit.

  • source
  • parent
  • hideshow 2 child comments
  • [+] -2 points 3 months ago (2 children)
  • [–] 1 point 3 months ago (1 child)

    Yeah, just ignore the rest of the comment.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (-1 replies)
  • load more comments (-1 replies)
  • [+] 12 points 3 months ago* (last edited 3 months ago) (7 children)
  • [–] 12 points 3 months ago* (5 children)

    Btw i started out with saying "man" - that wasn't good enough for mirshafie@europe.pub, so i went with "someone with a penis", and that wasn't good enough either (interestingly, since we are talking about yuri, which is specifically WLW content).

    I sincerely await your response what i should use to not upset anyone - i am neither transphobic or against homosexuality (i think love has no preference regarding body parts and expressed gender, it's simply personal preference), but articulating these things is not my forte, since i am personally pretty isolated and don't have any contact with people who move in these circles. (i don't have contact with straight/cis people too, just to make that clear lol)

  • source
  • parent
  • hideshow 5 child comments
  • [–] 13 points 3 months ago (2 children)

    'Not attracted to men' is probably what you're trying to say. Lesbians can still have men in their lives that they depend on, just not in a romantic/sexual sense.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 9 points 3 months ago (1 child)

    Some people will get upset with you no matter what term you use. I saw some mod get upset recently about the term 'human'. Blocked and noped out of THAT comm in a hurry.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (-1 replies)
  • load more comments (-1 replies)
  • [+] 69 points 3 months ago (6 children)
  • [–] 69 points 3 months ago (6 children)

    Oh god, I'm in the user regexes. Should this be an achievement of mine?

  • source
  • hideshow 6 child comments
  • [–] 34 points 3 months ago (1 child)

    I don't know who you are but if you made it into their filters you're probably a very well-rounded person who should treat yourself to something nice.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 17 points 3 months ago

    I'm pretty sure he went by making the broad lists of banned shit, and then ran a query on all the users that came up with saying that stuff.

    I'm also on there, so I feel significant.

    Or, he hates modern heavy metal, Devin Townsend and Colin Marston in particular.

  • source
  • parent
  • load more comments (-1 replies)
    [–] 59 points 3 months ago (2 children)

    I took a look at it earlier today and the addition of instances to be blocked was super shady and sloppy on part of the maintainer. Some high profile instances were added to the blocklist alongside unrelated changes and not mentioned in the git commit message, for example this commit: https://github.com/asimons04/tesseract/commit/fcd71e01e9f64d5ff40dbee9b815971bc00e9a2a

    Also apparently the error you'd get when going to the blocked instance was a generic error which makes the user think there's a network issue or incompatibility with the API or something and the idea of a hard coded blocklist is never presented to the user as the source of the issue.

  • source
  • hideshow 2 child comments
  • [–] 68 points 3 months ago* (last edited 3 months ago)

    Some high profile instances were added to the blocklist alongside unrelated changes and not mentioned in the git commit message… Also apparently the error you'd get when going to the blocked instance was a generic error…

    Yeah, the combination of those two issues are exactly why the hidden blocklist was noticed in the first place. The site admin for db0 noticed that their frontend was broken after they updated their Lemmy stack. But the “incompatible” version of Lemmy they had just updated to was supported. So what was causing the incompatibility? Maybe an API issue? Nope, API is fine.

    After some digging, they eventually realized that it was happening due to an instance block at the frontend’s level. But they didn’t have their own instance blocked in the frontend, so why was it being blocked? Turns out, it was because they were previously running an old version of Tesseract from before the blocklist was implemented. When they updated their stack (which also updated Tesseract), the new version suddenly included the hidden blocklist code. So when they tried to start their stack after updating, the new version of Tesseract quietly downloaded the hidden blocklist (which can’t be disabled) and blocked the instance it was currently running on. This effectively broke the frontend for db0, which is what led to the investigation and subsequent hidden blocklist discovery.

  • source
  • parent
  • [–] 163 points 3 months ago (6 children)

    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.

  • source
  • hideshow 6 child comments
  • [–] 104 points 3 months ago (4 children)

    It's a solo project by @AdmiralPatrick@dubvee.org who has currently taken their instance offline to hide.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 55 points 3 months ago (3 children)

    I was having a genuinely good day until i saw i wasn't on the list. jesus fucking christ to completion in the hand holes and then wiping himself off in the spear wound what kind of blasphemy does a dude have to commit to get on a list nowadays

  • source
  • hideshow 3 child comments
  • [–] 18 points 3 months ago* (last edited 3 months ago) (2 children)

    ... well that's some damn fine blasphemy right there, if I do say so myself.

    I'm apparently on the list.

    Honestly, surprised the file is still up for me to pull, t+24 or t+48 hours on.

    They bothered to end cap the regex with an $... can't have anything with 'sp3ctr4l' anywhere in the name... I don't have alts, so... I don't know what the point of that is...

    Oh well.

    Not my first time.

    I got shadow banned and also just actually banned from half of reddit for calling out mods on their bullshit despite being one of the earliest/oldest users there. Obligatory fuck Spez.

    I'm reasonably confident that the twitter account I created soley to scream insults and baseless threats at Elon, when he accidentally bought it, ... reasonably confident he personally banned me, as ... there weren't really any other actual support staff at that point time, Elon had revoked their credentials.

    I like to think I contributed, at least in a small way, to his subsequent insane crashout telling advertisers to 'go fuck yourselves'.

    ... this?

    This reminds me of literal petty children running Gmod servers, hardcoding steamid blocklists in hashed files... the hilarious part about that is that they actually bothered to properly encrypt them, so you couldn't read them without a valid server key.

    So this? Actually laughable, I've literally seen 14 year olds do this in a more clever way.

    Fuckin oi vei, man.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 14 points 3 months ago* (1 child)

    I'm so envious, dude. I am not sure how to explain this drama to my wife. She just knows I've been giggling into my coffee all day. The best analogy I could think up was kids running Minecraft servers.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 8 points 3 months ago*

    Minecraft servers are often extremely, extremely similar, that is a very close comparison, both technically, and in terms of uh... lets say the 'character' of those involved.

    Yep.

    This is where we're at.

    ... trying real hard right now to not go get a pack of smokes, god damnit.

    EDIT: Modded Mincraft servers, I should say, are very similar to custom GMod servers/communities.

  • source
  • parent
  • load more comments
    view more: next ›