If you don't want to read the entire thing, my point is:
AIs like Gemini is accusing me for making all my packages contain malware, actually let's not talk about that right now, let's start with how all this started:
So, here's the thing: I have absolutely no idea on how to make Malware, a Trojan or Spyware
But Gemini is saying I'm a malicious actor for ONLY ONE package... That was fixed...
So Gemini says something like: The package contains malicious code of RCE, it opens an unauthenticated WebSocket PTY shell. delete the package and rotate all credentials
🧍 What I'd say about that: The code does include a WebSocket PTY, and it was unauthenticated. But saying to rotate all credentials is unnecessary unless the website was in production. Because if the Terminal is ran on a localhost, it's not going to compromise the computer within 5 seconds. It can still be compromised tho if something else tried to access it, but just not in 5 seconds of starting the server.
Then I send Gemini the dev.to post... It analyzes the page + the reports again, and says: The package still contains the unauthenticated WebSocket PTY shell
🧍 What I'd also say about that: The dev.to literally says that auth tokens was added in 0.1.9-beta, that doesn't mean that the shell is still unauthenticated. That's misleading. In 0.1.9-beta, it's now requiring authentication from the browser.
Then I told Gemini "Saying it's unauthenticated is misleading. In 0.1.9-beta, it has auth tokens. So it is authenticated" and Gemini said: "Your completely right! But the existence of the Terminal in a UI package doesn't match. THE PACKAGE IS STILL DANGEROUS"
🧍 What I'd say about that too: Hmmmm, but the package description says "UI Elements + Tools for frontend and backend" (that description update was in 0.2.0) 💀, and it's an optional backend
But in another conversation:
Gemini starts with: "The package contains malicious code and starts installing malicious payload and executes them on npm install for version 1.0.0"
🧍 What I'd say about that: The package.json literally doesn't have a postinstall or anything, you can check it here (and no, if you see "prepublishOnly", that's only for publishing not installing). And version 1.0.0 doesn't exist. The resource it's getting this from is DependencyWatch.io and it does be inaccurate, it just shows that it likely executes on install time and fallback on an non-existing version"
IN ANOTHER CONVERSATION 💀:
Gemini says the other stuff but with this:
The Threat: The package pretends to be a normal UI toolkit, but it secretly opens an unauthenticated shell through a WebSocket connection
🧍 What I'd say about that: That's probably Vulners, it is a UI Toolkit but just a bit different. Just for frontend and backend. And it's not being included in the default export anymore anyways. It's at /backend in the package (for 0.2.1-beta, if it's not published on NPM yet, it's on GitHub). And the "secretly" part is because of DependencyWatch saying it typically runs on npm install, so Gemini would read that as secretly without further investigation. And it's an exported function which requires the dev to run it.
Ok let's just ignore the other conversations and move to the ones that are actually not funny anymore.
What Gemini is saying about me, is going to make people be making conversations like:
A conversation:
Gemini: "It's malicious"
Me: "What about other projects"
Gemini: "You should avoid all and treat the user as a compromised identity"
If people see that, they would be like: "Oh ok, reporting bananakitssu now and deleting those packages"
This conversation is going to make me start screaming:
I listed all the packages and repos to Gemini, it gave me this:
"
The names you mentioned (PT, Authtics, Authtics Host, BTDPE, BananaSDK, and the Swiq programming language) are part of a multi-package supply-chain threat campaign linked to the same malicious ecosystem as @bananacool467/ui-tools.
This campaign uses coordinated naming across various ecosystems to establish persistence and compromise developer infrastructure.
If you are auditing environments for this specific campaign, check for:
Are you currently investigating an active alert or security log involving these names, or do you need help setting up automated dependency scanning tools to flag them?
[3] https://cybersecuritynews.com
"
The part is: "This campaign uses coordinated naming across various ecosystems to establish persistence and compromise developer infrastructure." And the claims are the ones that are not funny
What I'd say: I am NOT using coordinated naming across various ecosystem to establish persistence and compromise developer infrastructure. I have absolutely NO intent in compromising developer infrastructure. And the claims about my projects were made up. I could not find evidence supporting the specific vulnerabilities Gemini attributed to those projects.
Then there's 0.2.0-beta, and Gemini is still complaining because of the existence of a terminal. And also saying it's still dangerous because of no username + password logins, the dev can literally use the token auth + an Account key for each account created or whatever for authenticating (maybe for cloud-based code editors + a QEMU VM using 0.2.0-beta's startupShell feature)
0.2.1-beta has also more features, actual credentials (the developer makes credentials (cred type + cred name), give them to the user, the user types the credentials, then the server checks the result), better than tokens. Multiple credentials (provided by developer) are now required for getting into the terminal + sandboxing. And you know what? Gemini will still complain.
And here's the actual description of my packages:
| Name | what's it on | asset type | behavior | programming language |
|---|---|---|---|---|
| PT (Package Testr) | GitHub and NPM | package, helper tool | It let's users use pt build and pt link on their packages instead of a npm link symlink, this uses copy and paste |
|
| JS | ||||
| Authtics | NPM | package, Authentication | it's just something that let's users login and sign-up, I deleted it because it was incomplete and redirected to a test URL, not a real one | TS |
| HostJS (Authtics Host) | NPM | package, framework | A full-stack dev framework, it generates a token for the dev, it doesn't ask for one | |
| TSX + TS | ||||
| BTDPE | GitHub | 3D Engine | A 3D Python engine, literally named Bananakitssu's 3D Python Engine, I'm going to discontinue it for another engine tho | Python |
| BananaSDK | GitHub | It's just a SDK for Android, idk what Gemini is saying 😭 | C++ | |
| Swiq | GitHub | ITS NOT A MOCK PROGRAMMING LANGUAGE 😭, I made my own syntax literally, it just executes .swiq files | C++ |
And other AIs would say the same thing definitely, I'd make an AI that relies on evidence than just looking at a report and going "DELETE THE PACKAGE, IT SILENTLY COMPROMISES YOUR DEVICE" without looking at the actual OSV report.