<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aleksei </title>
    <description>The latest articles on DEV Community by Aleksei  (@a-leks).</description>
    <link>https://dev.to/a-leks</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1408487%2F2cfccd24-45ec-475d-83b4-a493618753e8.webp</url>
      <title>DEV Community: Aleksei </title>
      <link>https://dev.to/a-leks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/a-leks"/>
    <language>en</language>
    <item>
      <title>Every AI coding assistant is shipping the same security bugs.</title>
      <dc:creator>Aleksei </dc:creator>
      <pubDate>Wed, 13 May 2026 09:38:01 +0000</pubDate>
      <link>https://dev.to/a-leks/every-ai-coding-assistant-is-shipping-the-same-security-bugs-25oi</link>
      <guid>https://dev.to/a-leks/every-ai-coding-assistant-is-shipping-the-same-security-bugs-25oi</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw0gszht4rvly56daecc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flw0gszht4rvly56daecc.png" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
*&lt;em&gt;Not a promo.. I mean why would anyone promote something free, actually looking to get some contributors to help us seal sone holes of ai-coded products and encourage founders of ai-written products to respect security and privacy.&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So, here it goes.. Nowadays many of us are building with Claude Code, Copilot, Cursor, Codex, Gemini, or any AI coding assistant, this is worth running against your project. - To be honest, I did think of building a tool around this, but it doesn't sound nice to monetize on vulnerabilities for me, nor do I see much logic having a 'blackbox' that allegedly scans your projects. &lt;strong&gt;We're talking about security here, so IMO such things should be open source and allow contributions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And of course - my good friend AI helped me speed up the shipment of this repo :)&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Some of most common things that appear :
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;JWT secrets set to &lt;code&gt;"secret"&lt;/code&gt; or &lt;code&gt;"changeme"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;API keys in &lt;code&gt;NEXT_PUBLIC_&lt;/code&gt; env vars, fully exposed to the browser&lt;/li&gt;
&lt;li&gt;User input going directly into system prompts via string interpolation&lt;/li&gt;
&lt;li&gt;Vector databases using one shared namespace for all users — any user's RAG query can
surface another user's documents&lt;/li&gt;
&lt;li&gt;Agents handed &lt;code&gt;child_process&lt;/code&gt; access with no scope restrictions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't obscure edge cases, this is how most of AI-generated code comes out, if you allow it to produce HUGE chunks instead of targeted and controlled ai-coding. Even knowing tons about security and vulnerabilities, having AI write code might still expose you to some common cases. &lt;/p&gt;
&lt;h2&gt;
  
  
  The problem with existing references
&lt;/h2&gt;

&lt;p&gt;OWASP, NIST, and CWE are good. They were written for a world where developers wrote most of their code by hand. They don't cover MCP tool poisoning, cross-agent prompt injection, or what happens when your agent's long-term memory accepts unsanitized writes. Ok, that's not entirely true - today AI-generated code is allover the place, so  we see more and more tools to review the code, etc, but many are paid and/or complicated which is an entry barrier for a vibe coder.&lt;/p&gt;
&lt;h2&gt;
  
  
  What I and few AIs shipped
&lt;/h2&gt;

&lt;p&gt;A 258-item checklist across 17 categories, with a detection method for every item: static grep or AST pattern, runtime test, or config inspection. Severity rated. 33 items in Category 6 specifically cover LLM integration vulnerabilities that don't appear elsewhere.&lt;/p&gt;

&lt;p&gt;More usefully: a companion &lt;code&gt;prompt.md&lt;/code&gt; that turns the full checklist into a structured codebase scan you can run in one command.&lt;/p&gt;
&lt;h2&gt;
  
  
  Running it
&lt;/h2&gt;

&lt;p&gt;From your project root, with Claude Code installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://raw.githubusercontent.com/a-leks/genai-app-security-checklist/main/prompt.md&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Gemini CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gemini &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://raw.githubusercontent.com/a-leks/genai-app-security-checklist/main/prompt.md&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model reads your codebase, runs all 258 checks, and returns a markdown report with severity, file path, line number, code snippet, and a specific remediation for each finding.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the output looks like
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="err"&gt;###&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;6.1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="nx"&gt;Prompt&lt;/span&gt; &lt;span class="nx"&gt;injection&lt;/span&gt; &lt;span class="err"&gt;—&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Severity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Critical&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;File&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ts&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Line&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;34&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Snippet&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;systemPrompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`You are a helpful assistant. User context: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userBio&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Remediation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Move&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;supplied&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;never&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
  &lt;span class="nx"&gt;Strip&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="nx"&gt;control&lt;/span&gt; &lt;span class="nx"&gt;characters&lt;/span&gt; &lt;span class="nx"&gt;before&lt;/span&gt; &lt;span class="nx"&gt;passing&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The LLM-specific items worth knowing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;6.26 — MCP tool poisoning.&lt;/strong&gt; If your agent uses third-party MCP servers, tool results from those servers enter the agent's context as trusted input. An attacker who controls one of those servers can inject instructions through it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.27 — Agent memory poisoning.&lt;/strong&gt; Whatever your agent writes to long-term memory gets read back in future sessions. If malicious content reaches that memory store, it executes next time the agent retrieves it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.30 — Cross-agent prompt injection.&lt;/strong&gt; In multi-agent systems, output from Agent A becomes input to Agent B. If an attacker can influence Agent A's output, Agent B processes the attack payload without knowing its origin is untrusted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to find it
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/a-leks/genai-app-security-checklist" rel="noopener noreferrer"&gt;https://github.com/a-leks/genai-app-security-checklist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apache 2.0. Contributions welcome — especially new LLM attack patterns with detection methods and real-world references.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Reasonable Link Management (shortener) Service</title>
      <dc:creator>Aleksei </dc:creator>
      <pubDate>Wed, 08 Oct 2025 09:40:21 +0000</pubDate>
      <link>https://dev.to/a-leks/reasonable-link-management-shortener-service-3bc4</link>
      <guid>https://dev.to/a-leks/reasonable-link-management-shortener-service-3bc4</guid>
      <description>&lt;h2&gt;
  
  
  Hey, I’m Aleks
&lt;/h2&gt;

&lt;p&gt;I’m building a link management service because I’m tired of getting squeezed by tools that should be straightforward but end up costing way too much for what they actually do.&lt;/p&gt;

&lt;p&gt;You know how Bitly and similar services start off simple, then suddenly you’re hitting limits on everything unless you fork over $30, $50, $100+ a month? Yeah, that’s the problem I’m trying to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’m Building
&lt;/h2&gt;

&lt;p&gt;A link shortening and management tool that doesn’t treat basic features like they’re premium luxuries. The idea is simple: give you what you actually need without the artificial restrictions that exist purely to push you into higher tiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I’m Asking for Feedback
&lt;/h2&gt;

&lt;p&gt;I’m at the stage where I want to make sure I’m building something people actually want to use. Not what I &lt;em&gt;think&lt;/em&gt; is cool, but what would genuinely make your life easier when managing links.&lt;/p&gt;

&lt;p&gt;So if you’ve ever used Bitly, Short.io, Rebrandly, or any similar service and thought “this should be easier” or “why am I paying for this?” – I want to hear about it.&lt;/p&gt;

&lt;p&gt;What features matter to you? What pricing would feel fair? What makes you rage-quit a link management tool?&lt;/p&gt;

&lt;p&gt;I’m not looking to build another bloated SaaS that costs a fortune. I’m looking to build something useful that doesn’t feel like a ripoff.&lt;/p&gt;

&lt;p&gt;Let me know what you think.​​​​​​​​​​​​​​​​&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
