🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

🔧 Programmierung 🕛 kürzlich 4 Min Lesezeit SECURITY-FEED
0

How to add a security gate to your vibe-coding workflow (5 minutes)

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

You're vibe-coding. Claude or GPT writes your backend in 10 minutes. It works. You ship it.



Three weeks later: SQL injection in production. Save function that never saved. Async endpoint blocking the event loop.



Here's how to add a security gate in 5 minutes that catches these before they ship.









The problem with AI-generated code



AI models generate code that looks correct. It passes type checks. It runs. It returns the right status code.



But structurally, it has consistent failure modes:




CODE
# Looks fine. Breaks everything.
async def get_user(user_id: str):
result = db.query(f"SELECT * FROM users WHERE id = '{user_id}'")
return result

# save() that doesn't save
def save_preferences(user_id: str, prefs: dict):
validated = validate(prefs)
return {"status": "saved", "user": user_id} # no INSERT anywhere

# async with no await
async def send_notification(msg: str):
requests.post(WEBHOOK_URL, json={"text": msg}) # blocks event loop






These aren't caught by mypy, pylint, or Bandit. They're structural patterns specific to AI-generated code.









Step 1: Scan locally (30 seconds)






CODE
curl -X POST https://pleasing-transformation-production-90c2.up.railway.app/v1/scan \
-H "X-API-Key: vg_free_test" \
-F "[email protected]"






Response:




CODE
{
"passed": false,
"block_count": 2,
"issues": [
{
"kind": "SQL_INJECTION_RISK",
"severity": "BLOCK",
"line": 3,
"detail": "unsafe SQL formatting — use parameterized queries"
},
{
"kind": "MISSING_WRITE",
"severity": "BLOCK",
"line": 8,
"detail": "function 'save_preferences' has no DB write call"
}
]
}






If passed: true — ship it. If not — fix the BLOCKs first.









Step 2: Add to GitHub Actions (2 minutes)



Create .github/workflows/vibeguard.yml:




CODE
name: VibeGuard Scan
on: [pull_request]

jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Scan changed files
run: |
git diff --name-only origin/main...HEAD \
| grep -E '\.(py|js|ts|go|rb|java|php|kt)$' \
| while read f; do
echo "Scanning $f..."
result=$(curl -s -X POST \
https://pleasing-transformation-production-90c2.up.railway.app/v1/scan \
-H "X-API-Key: ${{ secrets.VIBEGUARD_KEY }}" \
-F "file=@$f")
echo "$result" | python3 -c "
import json,sys
d=json.load(sys.stdin)
if not d.get('passed'):
for i in d.get('issues',[]):
if i['severity']=='BLOCK':
print(f'BLOCK [{i[\"kind\"]}] line {i[\"line\"]}: {i[\"detail\"]}')
sys.exit(1)
"
done






Add secret: Settings → Secrets → VIBEGUARD_KEY = vg_free_test



Every PR now gets scanned. BLOCK = PR fails. Green = safe to merge.









Step 3: Pre-commit hook (optional, 1 minute)






CODE
# .git/hooks/pre-commit
#!/bin/sh
for file in $(git diff --cached --name-only | grep -E '\.(py|js|ts|go)$'); do
result=$(curl -s -X POST \
https://pleasing-transformation-production-90c2.up.railway.app/v1/scan \
-H "X-API-Key: vg_free_test" \
-F "file=@$file")
passed=$(echo "$result" | python3 -c "import json,sys; print(json.load(sys.stdin)['passed'])")
if [ "$passed" = "False" ]; then
echo "BLOCK found in $file — run curl scan to see details"
exit 1
fi
done










CODE
chmod +x .git/hooks/pre-commit






Now every commit is scanned before it's made.









What gets caught





















































Pattern Example Why AI generates it
SQL_INJECTION_RISK f"SELECT ... WHERE id='{x}'" f-strings are common in training data
MISSING_WRITE def save(): return {"ok": True} AI optimizes for "looking complete"
FAKE_ASYNC async def f(): return requests.get(url) copies async signature without understanding
CORS_WILDCARD
allow_origins=["*"] + credentials
copies boilerplate without understanding interaction
STUB_SKELETON def process(data): return {} placeholder that AI forgot to implement
HARDCODED_TABLE 40-key dict instead of DB query AI avoids DB setup complexity
SSRF_RISK
httpx.get(user_url) unvalidated
doesn't think about internal network access
PATH_TRAVERSAL
open(user_path) unvalidated
doesn't add boundary checks


9 languages supported: Python, JS, TS, Go, Ruby, Java, PHP, Kotlin, C/C++.









Free tier





  • vg_free_test key: full Pro features, 50 files/day

  • No signup required

  • Code not stored — processed in memory, discarded after scan



API:






The whole point: vibe-coding is fast. The gate should be faster. 30-second scan before you merge beats a 3-week postmortem.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:
Community Threat-Level Barometer
Live Votum

Wie stufst du das Risiko dieser Schwachstelle / Bedrohung für dein Unternehmen ein?

Noch keine Stimmen — schätze das Risiko als Erster ein.

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Hackers Just Poisoned the Rust Supply Chain | Threat Wire
1 Quelle
Hackers Found a Way Into Humanoid Robots | Threat Wire
1 Quelle
Bits und so #1021 (Passwort für Laufwerk)
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten How to add a security gate to your vibe-coding workflow (5 minutes)

Thematisch verwandte Begriffe: security, gate, your, vibecoding · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...