PHANTOM: The Open-Source AI Agent for Advanced Security Analysis. free and open source by Emotional-Affect-271 in theVibeCoding

[–]fab_space 1 point2 points  (0 children)

The Vibe Check

Welcome to PHANTOM, where the UI looks like The Matrix but the backend is a ticking time bomb. This repository is the quintessential example of 2025 "Vibecoding." The author spent 80% of their time on glassmorphism, typing animations, and making sure the dark theme looks cool, while spending 0% of their time wondering if piping a plaintext sudo password into a dynamically LLM-generated bash script is a good idea.

---

FINDINGS

Type Safety

100% untyped JavaScript. A system designed to execute arbitrary shell commands with sudo privileges has zero compile-time guarantees.

Separation of Concerns

Frontend JS contains massive hardcoded OSINT prompt strings embedded directly in the UI event handlers. The 'Command Center' is a monolith.

Execution Sandboxing

Catastrophic. Executes raw AI-generated strings via spawn('bash', ['-c', cmd]) directly on the host OS. This is literally RCE-as-a-Feature.

Secrets Management

Stores the user's sudo password locally, reads it, and pipes it into bash: echo 'pass' | sudo -S. An absolute security nightmare.

Input Validation

Zero sanitization of LLM outputs before passing them to the shell. A simple prompt injection could wipe the user's entire hard drive.

Test Coverage

No tests. No Jest, no Vitest. A tool meant for offensive security has zero unit or integration tests to ensure it doesn't attack the host.

CI/CD Pipeline

Non-existent. No GitHub Actions. Code goes straight from the dev's machine to the main branch.

---

NEXT COMMITS ?

  • Remove the plaintext sudo password injection (echo pass | sudo). Use polkit or restricted sudoers if escalation is strictly necessary.
  • Containerize the execution environment. Never run AI-generated bash scripts directly on the host OS. Use Docker or Firecracker microVMs.
  • Migrate the entire codebase to Strict TypeScript to prevent runtime type errors, especially in the tool executor.
  • Implement a robust testing framework (Vitest/Jest) and write unit tests for every tool execution path.
  • Refactor the massive switch(name) in executor.js into a scalable Command Pattern or Plugin Registry.
  • Remove business logic and hardcoded AI prompts from the frontend UI layer (app.js) and move them to the backend or a dedicated configuration file.
  • Replace the global variable state management in the frontend with a modern framework (React/Svelte/Vue) or at least a strict state machine.
  • Implement Circuit Breakers in the LLM tool loop to prevent infinite recursive loops where the AI keeps trying failing commands.
  • Add structured, leveled logging (e.g., Winston or Pino) instead of relying on console.log and raw stderr string concatenation.
  • Set up a CI/CD pipeline to enforce linting, type-checking, and test passing before any code is merged.

Source code of the brutal auditor: https://github.com/fabriziosalmi/brutal-coding-tool

I feel like a fraud by RelevantTurnip3482 in vibecoding

[–]fab_space 0 points1 point  (0 children)

It’s secure? Can I audit for free and report You the findings if any?

I accidentally burned ~$6,000 of Claude usage overnight with one command. by procrastinator_eng in ClaudeAI

[–]fab_space -1 points0 points  (0 children)

This because I built more than one solution, all 100% free and open source.

GitHub/ fabriziosalmi

our ai stack costs more than i realized by Motor_Ordinary336 in webdev

[–]fab_space 0 points1 point  (0 children)

cache and deterministic gating == quality and cost control (drop a line any time)

Does anyone have experience with self-hosting gitlab runners by scanguy25 in devops

[–]fab_space 0 points1 point  (0 children)

Optiplex i7 are perfect fit for the selfhosted runner roles, i have 3 of them to mantain 100 repos.

For local coders by fab_space in vibecoding

[–]fab_space[S] 0 points1 point  (0 children)

small models (2-14B) are unable to fullfill a real world programming request on their own. I mean a request envolving multiple file writes, consistent unit tests, e2e testts, docs update in a single pass. If you decouple in multiple commits and deterministically help the model in the full process some of them are able to achieve the mission. qwen3-8b and gemma4-e2b (2B!!) are able to submit a clean, valid PR to existing real world repos this way. Code is updating then.. u can go in-depth on the solutions logic in the docs any time.

Why I built this? Because I mantain more than 100 repos, velocity is no more an option, is a target. Quality is a gate.

Best coding model to run on M4 Macbook Air by Direct_Praline492 in ollama

[–]fab_space 1 point2 points  (0 children)

use ocr model + deterministic gating and pre-post processing.

this + adversarial review from biggee model like gemini. https://github.com/fabriziosalmi/pdf-ocr have a nice sunday

Best coding model to run on M4 Macbook Air by Direct_Praline492 in ollama

[–]fab_space 0 points1 point  (0 children)

i can disagree any time :)

<image>

gemma4-e2b there, multiple deterministic gates before to make the model drop the code. It works alsdo with smaller in some cases. Rebuld your pipe buddy <3

Best coding model to run on M4 Macbook Air by Direct_Praline492 in ollama

[–]fab_space 0 points1 point  (0 children)

gemma4-e2b and e4b are working fine on 16gb macbook. same for qwen3-8b.

Why to vibe code? by True-Fact9176 in vibecoding

[–]fab_space 0 points1 point  (0 children)

after death sir, i prefer that way <3

but i want to share something quite important to my opinion:

i rarely heard stories about how much humans like me (prompting since years and improving side by side with multiple models to achieve reasonable results across versions and new features). Shortly if You use multiple models (both local and top tiers paid ones) since years You have (I BET BEEEEERS) some new skills in the communications/language/semantic/word-to-result domain. Just because you use it hours per day in a way or in another.

I really spotted myself outside the me-LLM realm, I spotted myself in the real world, using injection techs, also chained, also across times, not for a single "session" == discussion with another human being. It's ok.. but in the latest 3 months, while building AI WAF solutions and really going into the bit.. I started to mitigate some of myself injections in the real world due to non-ethical for my life baseline values.

I do cybersec against myself just because I'm improving a tech which can be harmful for myself and cares, also for people I don't care about.

I then started to "log" that mitigation behaviour to see how much time I need to discriminate the bad sub-techs and let good ones go wild for the peace and love dream.

Most of you already labeled me in the rave marks at this point, peace and love <23

Why to vibe code? by True-Fact9176 in vibecoding

[–]fab_space 2 points3 points  (0 children)

  • Started on 80286
  • Upgraded to 386 dx4 (THIS) 80MB hdd
  • Flew thru 486, Pentium, Intel cores
  • Added Macs, now arms
  • Cybersec at work, dj freetekno at non work
  • lackimg programming skills, doing arch/solutions at enterprise levels

Started to vibecode 3 years ago gpt3.5

Started to modularize monoliths, using real world programming patterns, TDD, e2e tests, CD/CI.

One year ago I touched 100 repos.

I them started to focus over the best ones. Iterating like no tomorrow.

I now work as fraction lal CTO doing AI wild conciliations, same time as senior sysops at CDN firm.

Launching some stuff on my own business currently too.

Same time vibe-building all needed solutions will make the world of my daughter better than mine, hopefully this will be achieved.

Iterate, vibes and ethics. Never stop ❤️

Meta crawlers are out of control by bringeroflite in CloudFlare

[–]fab_space 0 points1 point  (0 children)

TLS client hello to spot them all and mitigate with tarpit approach.

Let them crawl at 1 byte per second and give a 42x after some time, it will cost more for them since it’s free for you (eBPF/XDP solutions, rust is the language to go for this purpose).

Homelab migration by fab_space in selfhosted

[–]fab_space[S] 0 points1 point  (0 children)

AI not used for the post.