I discovered yesterday evening that Lemmy.ml is blocking all inbound ActivityPub requests from /kbin instances. Specifically, a 403 ‘access denied’ is returned when the user agent contains “kbinBot” anywhere in the string. This has been causing a cascade of failures with federation for many server owners, flooding the message queue with transport errors.

This doesn’t appear to be a mistake; it has been done very deliberately, only on Lemmy.ml. Lemmy.world and other large instances do not exhibit the same behavior. It also isn’t a side effect of the bug introduced in Lemmy 0.18. You can observe by sending the following in a terminal

> curl -I --user-agent "kbinBot v0.1" https://lemmy.world/u/test
HTTP/2 200
[...]

> curl -I --user-agent "kbinBot v0.1" https://lemmy.ml/u/test                                
HTTP/2 403
[...]

> curl -I --user-agent "notKbinBot v0.1" https://lemmy.ml/u/test
HTTP/2 403
[...]

> curl -I --user-agent "placeholder-user-agent" https://lemmy.ml/u/test
HTTP/2 200
[...]

Additional evidence of this not being a Lemmy 0.18 bug:

  • This occurs when making web requests to any location on the Lemmy.ml webserver, not just ActivityPub endpoints.

  • Go to https://fedidb.org/software/lemmy and pick an instance running 0.18.0. Perform the above commands, replacing the URL for Lemmy.ml with that particular instance’s address.

If this continues, my instance may need to defederate from Lemmy.ml. This is especially problematic because Lemmy.ml continues to federate information outbound to other kbin instances while refusing to allow inbound communication from them.

Spoofing the user agent is less than ideal, and doesn’t respect Lemmy.ml’s potential wish to not be contacted by /kbin instances. I don’t post this to create division between communities, but I do hope that I can draw awareness to what’s going on here. Defederating /kbin instances entirely would even be better than arbitrarily denying access one-way. This said, we should all attempt to maintain a good-faith interpretation until otherwise indicated by the Lemmy developers. It’s possibel that this is a firewall misconfiguration or some other webserver-related bug.

Relevant comment from me (#354 - [BUG] Critical errors/failed messages during messenger:consume)

Edits:

  • Yes, people have already tried reaching out to the Lemmy instance admins in their Matrix room with no answer.

  • Someone has posed a question on Lemmy.ml about the block here: https://lemmy.ml/post/1563840

  • ernest
    link
    fedilink
    1951 year ago

    It’s possible that this is a consequence of the latest Lemmy update, in which a lot has changed. I have noted that kbin has some issues with request signature in communication with certain instances. I will try to check it tomorrow first thing in the morning.

    • Upvotes_Kills_Birds
      link
      fedilink
      281 year ago

      Wow, thank you for the quick communication. Amazing aptitude. Almost nowhere else do you find a lead dev in the comment trenches letting us know what’s happening, I’m kinda baffled.

      • LollerCorleone
        link
        fedilink
        151 year ago

        Those links are working fine. Kbin is federating well with those instances. A bit of latency is normal.

        • svovl
          link
          fedilink
          61 year ago

          No upvotes, comments or boosts go through

          • r00ty
            link
            fedilink
            151 year ago

            It takes time. I just setup my own instance and I sent a comment from there, it took 40 minutes to arrive on kbin.social, upvotes and replies have not made it back to my instance yet some 45-60mins after they happened.

              • r00ty
                link
                fedilink
                31 year ago

                Because, when you post here from kbin.social any other instance with kbinMeta@kbin.social will get a copy of that and vice-versa. But each side is exchanging posts from multiple magazines to multiple other instances. It’s also balancing resource usage for people visiting the site too.

                Also new instances are gradually fetching the back-catalog of posts for various magazines (and communities on lemmy). So all of this leads to a delay.

                Anecdotally the delay is quite short this morning. Yesterday it reached up to 2 hours from my view at least.

                • dedale
                  link
                  fedilink
                  11 year ago

                  I don’t understand why the delay is so high thought.
                  I just downloaded several GB in a few seconds, what is stalling the process that when only a few bits of information are exchanged? That seems unnatural.
                  I am severely underestimating the bandwidth load?

                • r00ty
                  link
                  fedilink
                  11 year ago

                  Case in point, it took less than a minute for this to reach my instance (this is me, posting from my instance… Maybe I should have used another username… This one has a picture, is the instance me).

          • melroy
            link
            fedilink
            11 year ago

            Still after 5 hours… the upvotes are behind… I hope AP will scale well in the future… This since looks not great.

        • YMS
          link
          fedilink
          31 year ago

          But the oldest comments both there and on kbin.social are more than 55 minutes old without appearing in the respective other place.

          • LollerCorleone
            link
            fedilink
            16
            edit-2
            1 year ago

            Until kbin.social servers are fully upgraded, such delays will occur. Even afterwards, it might happen if the other instance is running on slow servers. We are still in the early stages of this platform, and there is no huge corporate throwing money at us (it is so early that there hasn’t even been an actual ‘Release’ yet). These quirks are to be expected as kbin develops.

    • Kaldo
      link
      fedilink
      11 year ago

      I’ve noticed we are also not federating with lemmy.wtf for some reason, maybe it’s something related. They are connected well with other lemmy instances but kbin can’t get a hold of them despite being on their list of linked instances

  • phi1997
    link
    fedilink
    481 year ago

    If they don’t want us to communicate with the users of their server, they should be defederated. Sucks for the users, but they can hop to another server whose admins don’t break communication inelegantly and ghost admins who want to know what’s going on.

    If it’s just a bug, then obviously we should wait for it to be fixed, but if they’re not even saying they’ll look into it, I don’t have much hope.

      • Deceptichum
        link
        fedilink
        271 year ago

        Before assuming no one has asked them, let’s read the post

        “Yes, people have already tried reaching out to the Lemmy instance admins in their Matrix room with no answer.”

        • ripcord
          link
          fedilink
          19
          edit-2
          1 year ago

          Ok, but, as the thread over there says, it’s not like they’re singling out kbin as far as the code shows. Just because no one there has answered yet doesn’t mean they’ve refused to answer. Give it some time or some actual replies before assuming the worst.

          Also that edit was added after my question.

          It’s been a few hours, this is way way too fast for the pitchforks to come out.

          • Deceptichum
            link
            fedilink
            91 year ago

            Code and config is different, it’s irrelevant if it’s not in the git.

          • frex
            link
            fedilink
            8
            edit-2
            1 year ago

            If I use a firewall to block kbin in user agent then it doesn’t matter what code is running, it will throw 403.

            Edit: Just checked out, the first request with kbin user agent, it doesn’t have x-powered-by: Express, suggesting that it is blocked in nginx level, it doesn’t even reach the backend Express. This will not be reflected in the code whatsoever.

             ~  curl -I --user-agent "notKbinBot v0.1" https://lemmy.ml/u/test
            HTTP/2 403
            server: nginx
            date: Wed, 28 Jun 2023 01:50:53 GMT
            content-type: text/html
            content-length: 146
            vary: Accept-Encoding
            
             ~  curl -I --user-agent "placeholder-user-agent" https://lemmy.ml/u/test
            HTTP/2 200
            server: nginx
            ...
            x-powered-by: Express
            ...
            
            
            • melroy
              link
              fedilink
              31 year ago

              Yea this is bad. Lemmy.ml is actively blocking on ‘kbinbot’ (case insensitive) string in the user agent request.

              $ curl -I --user-agent "this is KBINBOT" https://lemmy.ml/u/test
              HTTP/2 403
              ....
              
              $ curl -I --user-agent "this is KBINBO" https://lemmy.ml/u/test
              HTTP/2 200
              ....
              
              $ curl -I --user-agent "this is BINBOT" https://lemmy.ml/u/test
              HTTP/2 200
              ....
              
              
      • phi1997
        link
        fedilink
        61 year ago

        According to the edit in the main post, yes, they have been asked.

        • IntlLawGnome
          link
          fedilink
          31 year ago

          Yeah, I posted that to !fediverse@lemmy.ml from my lemmy.ca account. I figured that if the admins aren’t answering questions via Matrix or whatever, maybe someone there would have an answer. (So far, nothing more than the same kind of speculation that’s happening here.)

  • svovl
    link
    fedilink
    421 year ago

    In the spirit of a thriving fediverse, I suggest not to assume the worst of other parts of it before we know a bit more of what’s going on.

  • camelbeard
    link
    fedilink
    341 year ago

    At first I thought it was maybe a config error to block bots. But after some testing I see that the 403 is only given when the word “kbinbot” is in the user agent. String that just return the normal response I tested are “testbot”, “kbinbo”, “binbot”.

    • Jajcus
      link
      fedilink
      181 year ago

      Maybe it is some kind of automated rule ‘block bots that cause lots of traffic’. kbin is becoming more and more significant, so it probably causes some non-insignificant load on Lemmy servers. Legitimate load, but the IDS rules would not know that.

    • AnonymousLlama
      link
      fedilink
      31 year ago

      I think the approach of changing the user agent in the interim is a good solution, if there’s a technical reason they don’t want kbin traffic they can be adults and reply in the chat, not just sneakily blocking incoming traffic

  • Eisenhowever
    link
    fedilink
    281 year ago

    Doesnt surprise me, the developers of lemmy (which are owners of .ml) have an agenda. They are into censoring on ukraine news, and other stuff. I dont get why people are choosing lemmy over kbin when they are equally bad looking

        • slicedcheesegremlin
          link
          fedilink
          15
          edit-2
          1 year ago

          yeah, kbin is probably the nicest looking reddit alternative i’ve seen. Really sleek design without leaning into the overly overly mobile-focused watered down New Reddit bs, while also not nearly as hideous as old reddit.

          • mochi
            link
            fedilink
            41 year ago

            I do wish kbin looked a bit better on mobile, though. I have larger font on my iPhone and instead of wrapping, the text just goes off the screen and can’t be viewed.

            • artisanrox
              link
              fedilink
              21 year ago

              IMHO Kbin actually looks better on my mobile than on desktop.

              I have both set to the aqua/greenish theme and on mobile my upvotes/interactions show up bright yellow…but on desktop there’s no difference. Even if I take off “follow desktop personalization theme”. (firefox for both.)

              • mochi
                link
                fedilink
                11 year ago

                I’m glad you think so. Please see the attached screenshot for an example of what I’m talking about. I’d like to have the text one size bigger so I can read it more easily, but then whole words are cut off or missing.

      • Eisenhowever
        link
        fedilink
        11 year ago

        Its a huge downgrade from reddit in terms of visual quality. But im soeaking on mobile safari so i guess that will explain alot but anyways heres what i see.

        The posts that have pictures dont really show that well until you click on it. You need to scroll down a whole thread to comment on a post. Creating a post/thread is confusing, its hard to navigate “magazines” (idk why theyd call it that), theres a lot of problems with it.

        Lemmy looked pretty bad on mobile safari, far worse than kbin

    • UrbenLegend
      link
      fedilink
      7
      edit-2
      1 year ago

      Eh? What are you talking about? There’s literally a bunch of Russia and Ukraine news at https://lemmy.ml/c/worldnews. This rumor mill needs to stop. People started some bad rumors about Lemmy devs just because of their political association and now its blown up into full lies.

      I use both Lemmy and Kbin, but I prefer Lemmy for a bunch of different reasons:

      1. Interface is cleaner and more performant.
      2. Getting to your list of subscribed magazines in kbin is a pain in the ass. Why is it buried in Settings?
      3. Kbin votes are public. This is just bad for privacy. It’s one thing to say that votes are public due to federation, and whole other thing to blatantly show it in the UI. There’s a reason why voting at a government level is kept secret, just sayin’.
      4. Also why the hell are they called magazines? None of the names in kbin map to existing conventions. “Threads” are posts. “Magazines” are communities or groups. I never get used to it because it isn’t natural to call these things the way kbin calls them.
        • Onii-Chan
          link
          fedilink
          13
          edit-2
          1 year ago

          This guy acting like those in charge at Lemmy being pro-CCP and censoring dissenting opinions isn’t a valid reason for not wanting to be involved with them. Fuck Lemmy. Fuck authoritarians.

      • EnglishMobster
        link
        fedilink
        18
        edit-2
        1 year ago

        I wouldn’t really call it “rumors” when you can go directly to the horse’s mouth:

        https://www.reddit.com/r/communism/comments/cqgztr/fuck_the_white_supremacist_reddit_admins_want_me/

        https://web.archive.org/web/20230626055233/https://old.reddit.com/r/communism/comments/cqgztr/fuck_the_white_supremacist_reddit_admins_want_me/

        Hey all, longtime Marxist-leninist, recorder of left audiobooks, and megathread shitposter here.

        Posting this in light of a recent one week Reddit ban I earned for shitting on US police, as I’m sure many of us have gotten in recent weeks.

        So I’ve spent the past few months working on a self hostable, federated, Reddit alternative called Lemmy, and it’s pretty much ready to go. Unlike here we’d have ultimate control over all content, and would never have to self censor.

        Obviously as communists, we agitate where the people are, so we should never abandon Reddit entirely, but it’s been clear to all of us from day one, that communities like this stand on unsteady ground, and could be banned or quarantined at any moment by the white supremacist Reddit admins. This would be both a backup and a potentially better alternative. Moderation abilities are there, as well as a slur filter.

        Raddle isn’t an option obviously since it’s run by this arch anti tankie scum, ziq.

        I wanted to ask ppl here if they’d like me to host an instance, and mod all the current mods here.

        My concern is with this line: Obviously as communists, we agitate where the people are. I’m pretty left-leaning myself (I draw the line at authoritarianism though), but they’re very open about using their platform to push an agenda.

        That post was made by the founder of Lemmy and the instance they mention at the end became Lemmygrad (because lemmy.ml and Lemmygrad are the same people - the “.ml” in “lemmy.ml” even stands for “Marxist-Leninist”).

        With Lemmy.ml as the “main” instance, you’re exposing all these posts to an admin team who has openly said “we are agitating for our views wherever the people go, and we have ultimate control over all content.” They have already removed posts critical of China as being “orientalist” (which shows a severe lack of understanding of what “orientalism” even is - it’s not “anything that criticizes our Dear Leader”). I can’t trust that any community hosted on lemmy.ml is free of bias.

        It isn’t “rumors” when you can clearly go and back it up with a source.

        (FWIW - I don’t mind Lemmy as a platform. My Lemmy account is actually from 2020, before I realized what they truly were. The maintainers have done a good job of keeping politics out of the software, and the concept of only using “ethical” things is a myth when your computer has rare earth elements in it. As far as instances go, Lemmy.world seems fantastic and has grown to be far larger than the tankie instances. But Kbin is more fully-featured and has a lot more long-term potential, even though it’s lacking in the short-term.)

      • Eisenhowever
        link
        fedilink
        21 year ago

        Sounds like youre spewing a lot of bullshit or intentionally misguiding. Read the thread below you and youll see.

      • Bodleum
        link
        fedilink
        21 year ago

        I think liking an internet post and voting for the leadership of the government are not suitable for comparison here.

    • AnonymousLlama
      link
      fedilink
      121 year ago

      At least they’re equally as confused, hopefully this is just an issue in communication and the federation of content will be back in full swing soon

    • btaf45
      link
      fedilink
      81 year ago

      Hey Yote.zip is saying this. What’s up with that?

      " I’ll add that I have recently noticed that practically nothing that I post has been getting through to kbin."

    • ANuStart
      link
      fedilink
      11 year ago

      Ahh 2023 the year of the great reddit, Beehaw, and Lemmy exodus

  • luna
    link
    fedilink
    151 year ago

    Happy to see this. I’ve been avoiding .ml anyway, this makes my job easier. Fuck the Lemmy devs.

  • missingno
    link
    fedilink
    151 year ago

    If this is intentional, I have to wonder why they’re doing it in such a troublesome way rather than defederating properly. If they want to defederate, so be it, but then just do that.

    • phi1997
      link
      fedilink
      121 year ago

      This approach only makes sense as a blanket defederation of all kbin servers. Seems shady.

      • jiml78
        link
        fedilink
        11
        edit-2
        1 year ago

        Well, lemmy.ml is the lemmy devs. Kbin is a competitor to their software. They might hate that Kbin is growing really fast and I think is overall better than straight lemmy.

        • luna
          link
          fedilink
          101 year ago

          I think it’s more likely they just disliked the fact most Kbin users don’t support genocide, while Lemmy has a history of that. The Stalinist side of Lemmy, moderated and endorsed by the developers, has made fun of Kbin.social before

        • harmonea
          link
          fedilink
          9
          edit-2
          1 year ago

          It would be pretty against the spirit of ActivityPub if this were the case. Holding out to actually hear from them on this, hopefully, rather than assume such bad things about them.

          They just recently had a software update I believe, so hopefully it’s just a side effect of that.

        • UrbenLegend
          link
          fedilink
          41 year ago

          Nah, probably just a configuration error on their end. Let’s not jump to conclusions.

        • mochi
          link
          fedilink
          31 year ago

          Lemmy devs aren’t great people anyway, in terms of who you want to be developing software. Anyone that would think hardcoding word censorship into their software because it’s theirs has a few screws loose, so I wouldn’t put it past them to have done this intentionally.

    • artisanrox
      link
      fedilink
      1
      edit-2
      1 year ago

      Because “clever” authoritarians do the “isolating their people” kind of thing veeery quietly and not loudly.

  • Hakaku
    link
    fedilink
    141 year ago

    I suspect it’s nothing more than an overeager web application firewall (WAF) blocking the requests automatically.

    • baristaOP
      link
      fedilink
      151 year ago

      Yes, folks have tried reaching out in their Matrix chat without luck so far.

  • r00ty
    link
    fedilink
    121 year ago

    I was almost ready to say that maybe they’re just looking for “bot” in the UA. But, no. It must be “kbinbot” anywhere in the UA, and case insensitive. So, pretty deliberate it seems.

  • Zzinck
    link
    fedilink
    91 year ago

    Lemmy is no different than Reddit. They silence and ban anyone they don’t agree with and do not care about the users.

    • ripcord
      link
      fedilink
      22
      edit-2
      1 year ago

      You’re making one hell of an assumption here.

      Most likely it is a misconfiguration or bug. Or misunderstanding.

        • melroy
          link
          fedilink
          21 year ago

          People are indeed getting ghosted from Lemmy’s Matrix channel, when they report this issue.

      • r00ty
        link
        fedilink
        51 year ago

        I don’t think it’s assuming anything to say that they deliberately blocked user agents containing the text “kbinbot” (case insensitive). I think it’s fairly clear that’s exactly what has happened here. Instructions to test as many variations as you want yourself are right in the main post in the thread.

        Now, what we cannot say is whether it was done with malicious intent. There’s some plausible reasons they might do it that are not malicious.

        • ripcord
          link
          fedilink
          21 year ago

          I think it’s assuming a lot to say the things I replied to.

          • r00ty
            link
            fedilink
            31 year ago

            I was more replying to the second paragraph. It’s a pretty deliberate configuration choice on the web server.

      • Narrrz
        link
        fedilink
        11 year ago
        • assert “no different”
        • list one single, disputable similarity
      • mnejing
        link
        fedilink
        11 year ago

        Ideally it’s a config error at the firewall. I saw an interesting idea posed on the lemmy post suggesting that it may have been targeted by a DDoS that used kbinbot in the user-agent string.

        Ultimately, it’s not happening at a code level, it’s absolutely happening at a firewall level (nginx, which, for those who don’t understand, is kind of acting like the door lock on your apartment building, where you need to go through the main security before you can get to your own place. Sort of the same idea here). I just spent a bunch of time testing a bunch of various user-agent strings, and it very specifically is matching “kbinbot”. No wildcarding within the word, but it a string like “blahbinbotblah” will 403, whereas “blahkbbinbotblah” won’t (and various other forms, like k.bin.bot, or kasdfbinasdfbot.)

        It’s pretty specific. Anyone who deals with firewalls in any capacity understands how nginx works, and specifically why they and others are raising an alarm.

        So yeah, ideally it’s a misconfiguration, otherwise it’s a fairly clear message.

  • Cloudless
    link
    fedilink
    81 year ago

    This will save me time. I am trying to block all communities hosted by the tankies instance.

    • curiosityLynx
      link
      fedilink
      31 year ago

      You can block the instance itself, you know. No need to hunt for the communities.

        • tal
          link
          fedilink
          41 year ago

          I don’t believe that there is currently a link to the /d/DOMAIN page – that it needs to be manually-entered. That makes the functionality hard to find, and probably should have a PR to add a link somewhere in the UI.

        • curiosityLynx
          link
          fedilink
          11 year ago

          I’m sorry I wasn’t all that helpful. IIRC you need to find a post by someone on that community (or in that community?). Anyway, the name of the instance will be displayed on the card of that post and is clickable, which will bring you to the kbin page about the instance, where you can block it.