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.

  • hendu@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 months ago

    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.

  • Cris_Citrus (he/him <3)@piefed.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago

    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.

      • TheGoldenGod@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        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.

        • aaaa@piefed.world
          link
          fedilink
          English
          arrow-up
          0
          arrow-down
          1
          ·
          3 months ago

          Admiral Patrick was never a real admiral in the first place! He was a genetically modified man with severe social issues

    • Wrufieotnak@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 months ago

      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.

    • teslekova@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      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.

  • irelephant [he/him]@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago
    "enableKeywordFiltering": true,
      "hideKeywordMatches": true,
      "keywords": [
        "🥺?👉👈",
        "0811( |-)?4555588",
        "@juicypinkrose",
        "^Article is paywalled.?$",
    

    ???

  • MinnesotaGoddam@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago

    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

    • sp3ctr4l@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      3 months ago

      … 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.

      • MinnesotaGoddam@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 months ago

        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.

  • Juniperus@infosec.pub
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago

    Tesseract and asimons04 are also protecting pedophiles with this shadowlist. Literally covering up any and all references to them or their crimes. This is from the keyword list.

      • Dave@lemmy.nz
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        3 months ago

        It was a spam bot a while back. And people (like you) keep getting banned on our instance (and probably others) by our automod for saying it 😅

          • Dave@lemmy.nz
            link
            fedilink
            English
            arrow-up
            0
            ·
            3 months ago

            Haha looks like you got done by the lemmy.world automod.

            screen shot of mod log showing B0rax being bannd by automod@lemmy.world from various communities

            I have actually posted in a chat to ask people (including lemmy.world) to review their recent automod bans, you were not the first…

            • B0rax@feddit.org
              link
              fedilink
              English
              arrow-up
              0
              ·
              edit-2
              3 months ago

              Is there a way to get me unbanned? There are quite a few communities listed that I like…

              /edit: ahh it looks like someone has unbanned me ~30 minutes ago. Thanks!

              • Dave@lemmy.nz
                link
                fedilink
                English
                arrow-up
                1
                ·
                3 months ago

                Yeah I haven’t seen the lemmy.world admins online, but I’m guessing they will fix it up once they are.

  • dual_sport_dork 🐧🗡️@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 months ago

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

  • Pogogunner@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    3 months ago

    This is very upsetting. I could see an argument if it was made a user toggle for a “more friendly experience” or something like that (Like the enable toxic mode toggle), but hiding the blacklist and then an opaque error message is cowardly. Having it be pulled every time from another website instead of built into the software is also a very clear accountability dodge.

    Also reading over the file, I think it’s biased, especially towards unfairly heavy moderation.

    Edit: Just noticed I’m on the blocklist. What he said fuck me for?

    • goferking (he/him)@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 months ago

      Edit: Just noticed I’m on the blocklist. What he said fuck me for?

      Figuring this out has been interesting, but then again based on that user could have just said something they didn’t like in a random thread so they put you on the list

      • cloudskater@piefed.blahaj.zone
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        Liberals are nothing more then centrists and can suck eggs for all I care but jeez, could you offer comments that were any more useless and rage-baity then this?

        • cavitationfetishist2@quokk.au
          link
          fedilink
          English
          arrow-up
          0
          arrow-down
          1
          ·
          3 months ago

          Ikept getting told to ‘shut up cunt’ in this thread and mods seemed fine with it. So I’m explaining myself in detail.

          And libs aren’t centrists, except maybe between Ronald Reagan and the Thule society.

      • GregorGizeh@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        Why do you keep repeating this throughout these comments chief?

        Being self important is not a political act and so far there is no indication of a political motivation, just that the dev somehow got the idea of appointing themselves secret online discourse admin. If it turns out there is some financial goal behind it i’m with you tho.

  • Ech@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    3 months ago

    Lol, I made the list. Didn’t this admin have a big ol’ crashout and “retire” some time ago?

  • mmmm@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    fwiw I’d recommend photon, it’s fantastic and the dev seems to work really hard on it. Hope they aren’t doing something shady either!