[PSA] Critical Security Vulnerabilities in "Foxverse" (an open source Miiverse replacement) and the return of PokeAcer

TLDR: In its current state, Foxverse has critical security vulnerabilities that could lead to password breaches, which the developer refuses to fix. Additionally, PokeAcer, a user who has previously stolen and sold other people's exploits, and has used services he was an administrator on to read people's personal messages, is an administrator on this new Foxverse project. In short, as it is right now, Foxverse cannot be trusted.

Well, apparently it's that time of the month again, as I have the pleasure of making Yet Another Drama Blogpost(TM). This time, I'm going to detail security vulnerabilities in the new Foxverse service, which, for the uninformed, is a Miiverse replacement developed by ninjafox/ctrninja/xkyup/ste (did I miss any of his old usernames?). Additionally, PokeAcer is back and working on this Foxverse project. I'll explain why I think that's bad news for the project, and why as long as PokeAcer is working on it, I won't trust it at all.

To start with, I'll discuss the potential security vulnerabilities. Unlike last time, where the screenshot dump was at the end of the post, I'm going to put these screenshots at the beginning, so you can have some context going into what is a somewhat technical explanation: https://imgur.com/a/fVYsK

Password validation security is hard to get right - there's a lot of moving parts, and a lot of the security methods are difficult to understand. However, it's the most important part of any web service, as an exploit and password leak in your service could lead to users' passwords being leaked for multiple sites, including potentially harmful things like bank accounts. For this reason, no matter what service you're implementing, if it deals with passwords, it has to be secure.

Unfortunately, Foxverse isn't secure in its current implementation. There are two main issues:
  1. Client-side hashing
  2. Use of HTTP over HTTPS
I'll address each of these in turn. Note this is going to be a somewhat technical explanation - if you want the layman's version, skip ahead.

First, client-side hashing. Client side hashing, in and of itself, is not a bad thing. In fact, it's probably a good idea to do some amount of client side hashing, especially using a secure key-stretching algorithm such as bcrypt. However, client side hashing is by no means a replacement for server-side hashing. If the password is hashed on the client side and uploaded to a password database and stored in that database, logically, the client-side hash becomes the user's password. In the event of a database breach, an attacker doesn't even need to crack the hash - all they have to do is upload said hash, and they can instantly get into any user account. For this reason, client side hashing without any server side hashing is no better than storing passwords in plaintext. That being said, all this would allow an attacker to do is gain access to their Foxverse account - it wouldn't give an attacker the user's actual password. However, it's still a rather large security risk, and one that should be considered and patched. The solution is simple - hash on the server as well as on the client.

Secondly, there's a much bigger issue - the use of HTTP over HTTPS. The use of HTTP means that none of the data sent between the console and the server is encrypted. Any attacker could simply read all of the data in plaintext, and, if they Man In The Middle (MITM) the connection, modify that data. This means two things: first, any attacker can get the password with ease (if it's hashed client side, which Forxverse does right now, only that service will be compromised). The much bigger danger, however, is the danger of an MITM. It's trivial to modify the javascript sent over HTTPS to not include the hashing + salting algorithm. This means that a potential attacker could get the plaintext password of anyone using this service with relative ease. Confronting ninjafox over this vulnerability got me nowhere, and given my belief that this issue is paramount to public security, I've decided to publicly post it.

Now for the layman's explanation: Foxverse does not securely store passwords, leading to two major vulnerabilities. The first is that anyone with a password database dump doesn't need to crack the hashes, but instead can access anyone's account instantly. The second is that an attacker can MITM the connection between the server and the console, perform a trivial modification of the JavaScript served, and get the plaintext password through that route (which could lead to the compromise of other services).

Please note that this is not an attempt to kill the project like ninjafox seems to believe it is. I would be ecstatic to get a proper Miiverse replacement. However, password security is something extremely important and I strongly believe that any such Miiverse replacement needs to have strong security. This is simply an attempt at making sure that this happens.

And now, onto the second part of the post: the return of PokeAcer.

At this point, it's fairly common knowledge that PokeAcer cannot be trusted - see my link at the top of the post. He stole and sold an exploit, begged for forgiveness, and then did the same thing again, and stole and leaked an exploit (ugopwn) ahead of time. However, something I had forgotten about myself was that PokeAcer also stole and read private flipnotes, abusing his position as a Project Kaeru administrator. See my quote from the last post:
Additionally, he says not to judge one of the projects he works on, Project Kaeru (a custom server for Flipnote Studio 3D) as the rest of team doesn't condone his actions, but later on he admitted that he was reading and stealing information from people's notes on the Project Kaeru server.
Although I glossed over it last time, I believe it's extremely relevant to consider now. As long as someone who has a history of stealing private messages is involved in a service like this, I cannot trust any data that is on said service. And yes, PokeAcer is involved as a developer in this.

In short, I cannot, and don't believe anyone should, trust Foxverse, both due to the security issues, and the personnel involved.
  • Like
Reactions: 53 people
Status
Not open for further replies.

Comments

E
i did read it and idfc if a guy i want dead is working on it
it works perfectly and i dont care about what whoever the op has to say
 
@Eix - That is your choice and prejorative. We all make our own choices. But be aware of the risks that this man (PokeAcer) poses to any of your data and don't come crying too loud if he ever screws with/releases private info.
 
  • Like
Reactions: 3 people
I'll be completely honest. I don't think ninjafox is a good owner.

When he saw the topic, he started PMing the OP saying like "fuck you, you prick", then saying in the dev chat "I'm gonna ruin their life." I mean I think Billy's response to the OP's message was fine, the OP even liked the post of the screenshot of Billy's response.

I don't think Billy should've been added, so far he seems to do fine, but we was like that basically the first time. Hence why no one really expected it. (At least that might be the case for other people.) I tried Foxverse out and it's great. But having ninjafox having it closed source, being a complete dick, hiring someone with a really bad reputation is a recipe for trouble. And foxverse has so much potential!
 
  • Like
Reactions: 4 people
@Jacklack3 - And it seems you are the only one that argued here beyond "i dont care" that took a sensible conclusion from this.

Nobody here is saying you shouldn't use Foxverse. What we are saying is that if you do decide to use it, better be damn careful since the main two people involved either like powertripping or are provably untrustworthy.
 
  • Like
Reactions: 2 people
Alright, I'll admit I am being a prick and we've decided to make foxverse open source. Please wait awhile before we open source it.
 
  • Like
Reactions: 4 people
Because. I don't like it. Maybe I just don't understand why it's named that way.
Either way there has to be a better name.
 
Hai MCNX here admin on the RiiConnect24 Discord Server and quite honestly this is my opinion on this whole PokeAcer debacle, Yes I admit what Poke did was terribly wrong but its been 4 months since its happened and I can tell he deeply regrets leaking Ugopwn and selling the first exploit, The 2nd exploit was not sold as said from the dev of said exploit https://twitter.com/MrNbaYoh/status/893864025905410048. Now sure I understand why most of you wont forgive him, I didn't forgive him until recently. But I feel just because he is working on a project like Foxverse or RiiConnect24 doesn't mean that project is unsafe because im pretty sure the other devs will be around making sure he spy on users private crap (which he couldn't do on kaeru as said by JoshuaDoes) or leak any files. Honestly im giving PokeAcer one final change and I think you should too as some of the stuff he was accused of was untrue.
Sincerely MCNX
(I have no comments on foxverse because I had no clue it existed until now)
 
I mean at first I was like "boi you just added fox cuz u like foxezz" but I realize Sudomemo used a fox as a mascot. Also the name is kinda cool. If anything, change the name to "Ourverse" or "Custoworld".
 
  • Like
Reactions: 1 person
@ctrninja I recommend changing your DB password and using a not-version-controlled config file.

From database.php:
Code:
if(!$db) $db = new mysqli('127.0.0.1', 'foxverse', 'M8LrbkfaPKHySCFG', 'foxverse');
 
  • Like
Reactions: 1 person
@ctrninja if that is the case I would still strongly recommend a config file anyway, simply because of centralization and ease of access for common variables.
 
Status
Not open for further replies.

Blog entry information

Author
astronautlevel
Views
2,100
Comments
356
Last update
Rating
1.00 star(s) 1 ratings

More entries in Personal Blogs

More entries from astronautlevel

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: People are gonna find loopholes around clan tags and make inappropriate names.