Vibe Coding: Revolution or Russian Roulette? The Dark Side of AI Programming
The Era of "Vibe Coding": When Natural Language Becomes a Programming Language
Do you remember the days when programming meant juggling pointers, fighting the compiler over a missing semicolon, and flipping through massive volumes of documentation? Although it feels like centuries ago, it has actually been just a few years. The year 2025 brought a change that is a dream come true for some regarding the democratization of technology, but for security engineers, it marks the beginning of long, sleepless nights. We are talking about "Vibe Coding"—a phenomenon that has taken Silicon Valley by storm.
The term, popularized earlier this year by Andrej Karpathy (former Director of AI at Tesla), perfectly captures the spirit of our times. The programmer evolves from a craftsman and author, caring about every detail, into a curator or conductor. You no longer write for loops, you don't define classes, and you don't worry about indentation in Python. Instead, you throw your intentions at an LLM model (like GPT-4, Claude, or DeepSeek), described in loose, natural language. You say: "make me a financial dashboard in React that looks nice," and the artificial intelligence spits out ready-made, working code.
Karpathy even stated that "the hottest new programming language is English." Sounds beautiful, right? The problem is that in Vibe Coding, the user—as the name suggests—simply "gives in to the vibes." This means accepting the code without deep analysis, and often—let's be honest—without reading a single line. What matters is the end result: the application works, buttons react, the boss is happy. But what lies under the hood—architecture, security, and technical debt—is a completely different, often terrifying story.
The Bright Side: Why Everyone Wants to Feel the Vibe
But let's not be entirely gloomy—Vibe Coding has a bright side too. It is primarily a promise of IT democratization on an unprecedented scale. The barrier to entry into the world of technology is dropping drastically, allowing hobbyists with no technical background to create fully functional applications they could previously only dream of. The paradigm shifts from the imperative "how to do it?" (tedious coding) to the declarative "what do I want to achieve?". Ideally, the idea matters more than knowing the intricacies of a compiler.
For business, this means turbocharging prototyping. Ideas that once required weeks of a development team's work can now be verified in a single afternoon. This unleashes creativity and allows focusing on business value instead of getting bogged down in environment configuration or dependency management. The sense of "flow" and agency in this model is simply addictive—and that is what drives the revolution, despite all its risks.
The Vibe Coder's Toolkit: What Powers the Flow?
Vibe coding wouldn't exist without powerful models and environments that, by 2025, have evolved from simple assistants into fully autonomous agents. Today's tools don't just suggest syntax—they manage the entire code lifecycle. Here is the arsenal of the modern "code whisperer":
- Cursor – Currently the undisputed king of vibe coding. A VS Code fork that natively integrates AI, allowing for editing entire code blocks and "talking" to files (Composer mode) without leaving the editor.
- Windsurf – Cursor's main rival from the creators of Codeium. It stands out with its "Flows" system, which deeply understands the context of the entire project and enables fluid, real-time human-AI collaboration.
- Claude Code – The latest from Anthropic. It's no longer just a chat with a model, but a powerful CLI tool (living in your terminal) that acts as an agent: it can independently search files, edit code, and even execute system commands.
- Gemini Code Assist – An essential for cloud engineers. Gemini integrated directly into Google Cloud CLI and Cloud Shell allows for infrastructure management using natural language (e.g., "create a K8s cluster"), translating intentions into complex terminal commands.
- Google Jules – An experimental, asynchronous agent from Google. Jules integrates directly with your repository, capable of autonomously creating and managing Pull Requests, resolving conflicts, and cleaning up code, working in the background as a virtual collaborator.
- GitHub Copilot Workspace – The evolution of the classic Copilot into a full-fledged development environment where AI knows the full repository context and plans changes from issue to pull request.
- Replit – A cloud platform featuring the Replit Agent, which takes prototyping to a new level—it can build, configure, and deploy an entire web application based on a single, simple prompt.
- Devin – The first fully autonomous "software engineer" capable of solving complex engineering tasks independently, learning new technologies, and fixing bugs without human supervision.
- Foundation Models (OpenAI Codex/GPT-4o, Grok) – Despite the rise of dedicated tools, raw model power remains key. OpenAI Codex (the engine behind many tools) and GPT-4o/o1 models are still the first choice for logic consultation. Meanwhile, Grok (xAI) is gaining popularity for its "looser" style and lack of unnecessary guardrails when generating offensive code (red teaming).
AI's Deadly Sins: Why Your Digital Assistant is a Saboteur
Unfortunately, enthusiasm is quickly cooled by hard data. Studies from 2024-2025 paint a grim picture of the quality of code generated by AI. It turns out our digital assistants are not brilliant engineers, but rather lightning-fast interns with a slightly embellished CV.
1. Statistics That Hurt
An analysis of over half a million code snippets in Python and Java leaves no illusions: code written by AI is systemically less secure. As many as 62% of samples from LLM models contained security vulnerabilities. Worse still, 60% of them are critical errors (among humans, this percentage is 45%). AI doesn't make small mistakes—when it messes up, it goes all in.
2. "The Happy Path" Syndrome
Artificial intelligence is an incurable optimist. It assumes that your application's user will be nice, enter correct data, and never try to break anything. LLM models notoriously ignore defensive programming practices. The effect? Lack of input validation (CWE-20) is a real plague. AI forgets about sanitization, opening the door wide for SQL Injection or OS Command Injection attacks. Even if you ask for "secure code," the safeguards are often superficial, inconsistent, or outdated.
3. Secrets in Plain Sight
Another common sin is "hardcoding" credentials. Ask AI to connect to a database, and there is a good chance that the login, password, and API key will land straight in the source code instead of secure environment variables. The model "means well"—it wants the code to work immediately, so it cuts corners, serving credentials to potential attackers on a silver platter.
4. Iterative Degradation: Fixing That Breaks
This is one of the most treacherous discoveries. It would seem that "talking" to AI and asking for corrections should improve the code. The reality is different. When we ask the model for optimization, it often forgets the security context (a phenomenon known as Catastrophic Forgetting). After just five iterations like "make it run faster," the number of critical vulnerabilities can rise by nearly 38%. The model, wanting to please us, quietly cuts out validations it deems "unnecessary," treating them as overhead.
Slopsquatting: A New Dimension of Supply Chain Attacks
If you thought typosquatting (typos in package names, e.g., reqeusts instead of requests) was a problem, meet its more sophisticated and dangerous cousin: slopsquatting.
The term is a neat combination of "slop" (low-quality content generated by AI) and "squatting." The attack mechanism is brilliant in its simplicity and relies on hallucinations of language models.
AI models don't "know" libraries—they only predict which words should follow one another. Statistically, they know that google-cloud- style names often end with -utils or -helper. So, they often make up names of libraries that should exist but actually don't, e.g., google-cloud-storage-helper.
Cybercriminals are just waiting for this. They monitor these hallucinations, register the names invented by AI in public repositories (npm, PyPI), and place malicious code there (e.g., Reverse Shells or Infostealers). The attack scenario is simple:
- A programmer asks AI to solve a problem.
- AI generates code and says: "For this, you need the
huggingface-clilibrary" (an authentic example). - The programmer, riding the "vibe" wave, mindlessly pastes
pip install huggingface-cliinto the terminal. - Game over. Malicious code lands in the development environment, bypassing firewalls, because installing a package from an official repository is a standard procedure.
What is the scale of the problem? Studies show that about 20% of packages suggested by open-source models are hallucinations. For giants like GPT-4, it's "only" 3-5%, but with millions of developers, this creates a massive attack surface.
The Human Factor: Competence Erosion and Fatigue
Technology is one thing. However, Vibe Coding wreaks real havoc in our heads and teams.
Code Review Fatigue Seniors, instead of designing architecture, are drowning in a sea of AI-generated code, becoming the bottleneck of every project. With such a huge volume, vigilance drops. "Rubber Stamping" appears—mindless approval of changes because the code "looks good" at a glance, is formatted, and has comments. This is a straight path to technical debt and systems that no one in the company truly understands.
Skill Atrophy in Juniors This is perhaps the saddest aspect of this revolution. Young programmers who rely on AI from the start of their careers fall into a trap. They become tool operators, not engineers. They don't learn debugging; they don't understand the basics. When AI makes a subtle logical error (and it certainly will), such a programmer is helpless. We are losing the ability to think critically and verify. A generational competence gap is forming.
The Productivity Illusion Despite the subjective feeling of "flow," hard data is ruthless. Reports (e.g., the METR 2025 study) show that programmers using AI often need more time to complete tasks—even up to 19% more! Time saved on writing simple code is wasted with interest on tedious debugging and fixing AI hallucinations.
Agents of Chaos and ShadowMQ
Another threat looms on the horizon: Autonomous AI Agents (like Devin or GitHub Copilot Workspace). These are no longer just chatbots. They are programs that have agency—they can execute commands, manage files, and even deploy applications to production.
This opens the way for RCE (Remote Code Execution) attacks via Prompt Injection. Imagine an attacker placing a malicious instruction in the text of a GitHub issue. The AI agent tasked with "fixing the bug" reads this text and executes the command hidden within it, thinking it's part of the task. In this way, a hacker can take control of the development environment. Then there are vulnerabilities in the AI frameworks themselves. Researchers discovered the ShadowMQ vulnerability—errors in the default configuration of libraries like Ray or PyTorch, which allow unauthorized takeover of GPU clusters.
How to Survive in the World of Vibe Coding?
AI in programming is not a passing fad—it's here to stay. The point is not to become a Luddite, but to trade naive enthusiasm for a principle of limited trust.
- Ruthless Sandboxing: Code generated and run by AI agents must operate in hermetic isolation (ephemeral containers, virtual machines). Treat it like potential malware until you verify it.
- Defense Against Slopsquatting: Enforce the use of private proxy repositories (e.g., Artifactory) that block the download of unverified packages. Check the reputation and age of a library before mindlessly typing
npm install. - Human-in-the-Loop: AI cannot have the right to merge changes or deploy them to production on its own. Every line of code must pass through a review by a human aware that its author is a machine.
- Back to Basics: We must invest in junior education. Even if AI writes the code, the programmer must be able to read, understand, and critique it.
Vibe Coding is a powerful tool, but in unaware hands, it resembles a pulled grenade pin. Remember: a good vibe is great at a concert, but in source code, it's better to rely on cold analysis and a healthy dose of paranoia.
Aleksander
Sources:
About the Author

Dyrektor ds. Technologii w SecurHub.pl
Doktorant z zakresu neuronauki poznawczej. Psycholog i ekspert IT specjalizujący się w cyberbezpieczeństwie.
Powiązane artykuły
Dlaczego Twój VPN to za mało? Kompleksowa analiza anonimowości w cyberprzestrzeni
Zapomnij o prostym tunelowaniu. W świecie, gdzie sztuczna inteligencja czyta pakiety jak książkę, a switche sieciowe same korelują ataki, prywatność wymaga zmiany paradygmatu.
AI: Nowy Oręż w Arsenale Cyberprzestępców
Rok 2025 przynosi rewolucję w cyberbezpieczeństwie, gdzie Sztuczna Inteligencja staje się bronią obosieczną. Najnowsze raporty ENISA i OpenAI ujawniają, jak AI napędza zarówno zaawansowane ataki, jak i innowacyjne metody obrony, redefiniując pole cyfrowej bitwy.
Koniec Myślenia, Pisania i Czytania? Przyszłość w Dłoniach AI
Czy sztuczna inteligencja naprawdę odbiera nam zdolność myślenia i pisania? Ten artykuł zgłębia, jak AI zmienia nasze nawyki czytelnicze i intelektualne w erze cyfrowej rewolucji.
Komentarze
Ładowanie komentarzy...