[{"data":1,"prerenderedAt":685},["ShallowReactive",2],{"blog-slopsquatting-ai-package-hallucinations-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":54,"og":55,"expertise":56,"locales":57,"lang":60,"title":61,"description":62,"coverAlt":63,"metaTitle":64,"takeaways":65,"faq":71,"toc":87,"blocks":111,"others":380},"slopsquatting-ai-package-hallucinations","2026-10-16",6,"security",[9,10,11,12,13],"Supply chain security","Coding agents","npm","PyPI","Package hallucination",[15,16,17,18,19,20,21,22,23,24],"slopsquatting","package hallucination","ai hallucinated packages","llm package confusion attack","coding agent supply chain security","npm min-release-age","pnpm minimumReleaseAge","uv exclude-newer","npm ignore-scripts","huggingface-cli hallucinated package",[26,29,32],{"name":27,"url":28},"Typosquatting","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTyposquatting",{"name":30,"url":31},"Supply chain attack","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSupply_chain_attack",{"name":33,"url":34},"Hallucination (artificial intelligence)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHallucination_(artificial_intelligence)",[36,39,42,45,48,51],{"title":37,"url":38},"Spracklen et al.: We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.10279",{"title":40,"url":41},"Lasso Security, Bar Lanyado: Diving Deeper into AI Package Hallucinations (Mar 2024)","https:\u002F\u002Fwww.lasso.security\u002Fblog\u002Fai-package-hallucinations",{"title":43,"url":44},"npm Docs: config (min-release-age, before, ignore-scripts, allow-scripts)","https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv11\u002Fusing-npm\u002Fconfig",{"title":46,"url":47},"pnpm: Dependency resolution settings (minimumReleaseAge)","https:\u002F\u002Fpnpm.io\u002Fsettings\u002Fdependency-resolution",{"title":49,"url":50},"uv: Settings reference (exclude-newer, require-hashes)","https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Freference\u002Fsettings\u002F",{"title":52,"url":53},"pip documentation: Secure installs and hash-checking mode","https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Ftopics\u002Fsecure-installs\u002F","\u002Fimages\u002Fblog\u002Fslopsquatting-ai-package-hallucinations\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fslopsquatting-ai-package-hallucinations\u002Fog.jpg","ai-engineer",[58,59,60],"en","de","hu","Slopsquatting: amikor a kódoló ágensek nem létező csomagokat telepítenek","Hogyan hallucinálnak az LLM-ek csomagneveket, hogyan regisztrálják ezeket a támadók, és mely registry-, lockfile- és ágenskontrollok állítják meg a telepítést.","Egy kódoló ágens telepítési parancsot javasol egy nem létező csomagnévre, egy támadó pedig a telepítés előtt regisztrálja ezt a nevet.","Slopsquatting: kitalált csomagok, védekezés · Balázs Csorba",[66,67,68,69,70],"Egy 576 000 kódmintás vizsgálatban a kereskedelmi modellek által javasolt csomagok legalább 5,2%-a, a nyílt modelleké 21,7%-a nem létezett.","A hallucinált nevek ismétlődnek, így a támadó előre regisztrálhatja őket, és megvárhatja, amíg ágensek és fejlesztők telepítik őket.","Az npm, a pnpm és az uv minimális kiadási kor beállításai blokkolják a vadonatúj verziókat, de nem egy hónapokkal korábban lefoglalt nevet.","Az ágens minden telepítés előtt kérdezzen, az ismeretlen csomagokat ellenőrizd a registryben, a telepítési szkriptek pedig alapból legyenek kikapcsolva.","A hash-eket tartalmazó lockfile-ok és az ellenőrizetlen függőségváltozást elutasító CI a csendes telepítésből átnézett diffet csinál.",[72,75,78,81,84],{"q":73,"a":74},"Mi az a slopsquatting?","A slopsquatting egy olyan csomagnév regisztrálása, amelyet az LLM-ek gyakran hallucinálnak, hogy a modell által generált kód vagy telepítési parancs a támadó csomagját húzza be. A typosquatting egy változata, csak a hibás név a modelltől jön, nem elgépelésből.",{"q":76,"a":77},"Milyen gyakran hallucinálnak az LLM-ek csomagneveket?","Spracklen és társai 16 modellel 576 000 kódmintát generáltak Pythonban és JavaScriptben, és azt találták, hogy a kereskedelmi modellek által javasolt csomagok legalább 5,2%-a, a nyílt forrású modelleké 21,7%-a nem létezett, összesen 205 474 egyedi hallucinált névvel.",{"q":79,"a":80},"Előfordult ez már a gyakorlatban?","Igen, tesztként. 2024-ben a Lasso Security kutatója, Bar Lanyado azt találta, hogy a modellek egy nem létező, huggingface-cli nevű Python-csomagot ajánlanak, feltöltött ezen a néven egy üres csomagot, és három hónap alatt több mint 30 000 valódi letöltést mért. Telepítési utasítás egy Alibaba-repóban is szerepelt hozzá.",{"q":82,"a":83},"Véd a minimális kiadási kor a slopsquatting ellen?","Csak részben. Az olyan beállítások, mint az npm min-release-age, a pnpm minimumReleaseAge és az uv exclude-newer, a nagyon frissen közzétett verziókat blokkolják, ami az újonnan regisztrált nevek és a kompromittált kiadások ellen segít. Egy hónapokkal korábban regisztrált név átmegy az ellenőrzésen.",{"q":85,"a":86},"Mit állítsak be a kódoló ágensekhez?","Minden csomagtelepítő parancshoz kérj jóváhagyást, futtasd az ágenseket titkokhoz nem férő sandboxban, kapcsold ki alapból a telepítési szkripteket, és buktasd el a CI-t, ha senki által át nem nézett függőségváltozás érkezik. Az ágens ellenőrizze a csomagot a registryben, mielőtt javasolja.",[88,90,93,96,99,102,105,108],{"id":89,"title":73},"what-is-slopsquatting",{"id":91,"title":92},"what-the-research-measured","Milyen gyakran hallucinálnak a modellek csomagokat?",{"id":94,"title":95},"in-the-wild","Megtörtént már a laboron kívül?",{"id":97,"title":98},"agent-harness-controls","Mit kényszerítsen ki az ágens futtatókörnyezete?",{"id":100,"title":101},"package-manager-settings","Mely csomagkezelő-beállítások segítenek?",{"id":103,"title":104},"lockfiles-and-ci","Mit ellenőrizzen a CI?",{"id":106,"title":107},"checklist","Mi a rövid ellenőrzőlista?",{"id":109,"title":110},"sources","Források",[112,125,134,137,148,157,158,166,194,197,198,209,210,222,224,248,249,308,311,313,314,333,345,346,359,360],{"type":113,"content":114},"paragraph",[115,116,120,121,124],"Egy kódoló ágens leírja, hogy ",{"tag":117,"children":118},"code",[119],"import fastjson_validator",", lefuttatja a ",{"tag":117,"children":122},[123],"pip install fastjson-validator"," parancsot, és a telepítés sikerül. A csapatban senki sem hallott a csomagról, mert egyetlen dokumentációban sem szerepel: a modell találta ki a nevet. A telepítés azért sikerül mégis, mert valaki más korábban észrevette ugyanezt a hallucinációt, és lefoglalta a nevet. Ennek a támadásnak ma már neve van, slopsquatting, és a kódoló ágensek valószínűbbé teszik, mert anélkül futtatnak telepítési parancsokat, hogy egy ember begépelné őket.",{"type":113,"content":126},[127,128,133],"A cikk bemutatja, mit mért a kutatás, miért elég kiszámíthatók a hallucinált nevek ahhoz, hogy le lehessen foglalni őket, és milyen kontrollok működnek az egyes rétegekben: az ágens futtatókörnyezetében, a csomagkezelőben, a lockfile-ban és a CI-ban. A ",{"tag":129,"to":130,"children":131},"link","\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[132],"kódoló ágensek sandboxolása"," cikkre épít, amely a kárt korlátozza, ha mégis lefut valami rosszindulatú.",{"type":135,"level":136,"id":89,"text":73},"heading",2,{"type":113,"content":138},[139,140,143,144,147],"A typosquatting lefoglalja a ",{"tag":117,"children":141},[142],"reqeusts"," nevet, és megvárja, amíg valaki elgépeli a ",{"tag":117,"children":145},[146],"requests","-et. A slopsquatting egy modell által kitalált nevet foglal le, például egy hihető, de nem létező wrappert vagy CLI-t, és megvárja, amíg a modellek javasolják. Az első mérést végző kutatók csomagösszetévesztéses (package confusion) támadásnak nevezik: az áldozat azt hiszi, valódi függőséget telepít, a registry pedig kiszolgálja, amit a támadó feltöltött, a fejlesztő gépén vagy a CI-ban lefutó telepítési szkriptekkel együtt.",{"type":149,"attrs":150,"inner":154,"caption":155},"diagram",{"viewBox":151,"role":152,"aria-labelledby":153},"0 0 720 170","img","slop1-t slop1-d","\u003Ctitle id=\"slop1-t\">Hogyan működik egy slopsquatting-támadás\u003C\u002Ftitle>\u003Cdesc id=\"slop1-d\">A támadó modelleket kérdez, összegyűjti az ismétlődő hallucinált csomagneveket, és regisztrálja őket. Később egy fejlesztő vagy kódoló ágens ugyanezt a hallucinált nevet kapja, lefuttatja a telepítést, a rosszindulatú csomag pedig végrehajtja a telepítési szkriptjét.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"slop1-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Gyűjtés\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">modellek kérdezése\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#slop1-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Regisztrálás\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">ismétlődő nevek\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#slop1-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Javaslat\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">ágens kódot ír\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#slop1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Telepítés\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">emberi ellenőrzés nélkül\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#slop1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Futtatás\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">telepítési szkript\u003C\u002Ftext>",[156],"A támadó költsége a nevek regisztrálása; a védekező esélye bármelyik lépés a javaslat és a futtatás között.",{"type":135,"level":136,"id":91,"text":92},{"type":113,"content":159},[160,161,165],"A legalaposabb vizsgálat ",{"tag":162,"href":38,"children":163},"a",[164],"Spracklen és társaié",", amely a USENIX Security 2025 konferencián jelent meg. 16 népszerű kódmodellel 576 000 kódmintát generáltak Pythonban és JavaScriptben, és minden hivatkozott csomagot ellenőriztek a registrykben.",{"type":167,"head":168,"rows":173},"table",[169,171],[170],"Eredmény",[172],"Érték",[174,179,184,189],[175,177],[176],"Hallucinált csomagok, kereskedelmi modellek (átlag, legalább)",[178],"5.2%",[180,182],[181],"Hallucinált csomagok, nyílt forrású modellek (átlag, legalább)",[183],"21.7%",[185,187],[186],"Egyedi hallucinált csomagnevek",[188],"205,474",[190,192],[191],"Elemzett kódminták",[193],"576,000",{"type":113,"content":195},[196],"A támadók számára nem az arány számít, hanem az ismétlődés: a hallucinációk nem véletlen zajok, ugyanazok a promptok újra ugyanazokat a kitalált neveket adják, ezért éri meg lefoglalni őket. A szerzők olyan ellenintézkedéseket is teszteltek, mint a visszakeresés és az önellenőrzés, és arról számolnak be, hogy ezek a kódminőség megtartása mellett jelentősen csökkentik a hallucinált csomagokat. Ez hasznos, de nem váltja ki a modellen kívüli ellenőrzéseket.",{"type":135,"level":136,"id":94,"text":95},{"type":113,"content":199},[200,201,204,205,208],"2024 márciusában ",{"tag":162,"href":41,"children":202},[203],"Bar Lanyado, a Lasso Security munkatársa"," észrevette, hogy a modellek egy ",{"tag":117,"children":206},[207],"huggingface-cli"," nevű Python-csomagot ajánlanak, amely nem létezett; a valódi CLI a huggingface_hub csomaggal érkezik. Feltöltött ezen a néven egy üres csomagot, egy második álcsomaggal kiszűrte a szkennerek forgalmát, és három hónap alatt több mint 30 000 valódi letöltést számolt. A hamis csomag telepítési utasítása egy Alibaba-kutatási repó README-jébe is bekerült. Ez a csomag ártalmatlan volt; a következő talán nem lesz az.",{"type":135,"level":136,"id":97,"text":98},{"type":113,"content":211},[212,213,216,217,221],"A legolcsóbb kontroll a telepítés pillanatában van. Aki begépeli az ",{"tag":117,"children":214},[215],"npm install"," parancsot, általában tudja, miért; egy feladat közepén futtató ágens nem áll meg elgondolkodni. Állítsd be a futtatókörnyezetet úgy, hogy a telepítéshez jóváhagyás kelljen, és adj az ágensnek gyors módot egy csomag ellenőrzésére, mielőtt javasolja. Az irányítók és érzékelők általános ötletét a ",{"tag":129,"to":218,"children":219},"\u002Fblog\u002Fharness-engineering-coding-agents",[220],"harness engineering"," cikkben írtam le.",{"type":117,"code":223},"\u002F\u002F .claude\u002Fsettings.json: installs always ask, the lockfile is never edited by hand\n{\n  \"permissions\": {\n    \"ask\": [\n      \"Bash(npm install:*)\", \"Bash(npm i:*)\", \"Bash(pnpm add:*)\", \"Bash(yarn add:*)\",\n      \"Bash(pip install:*)\", \"Bash(uv add:*)\", \"Bash(uv pip install:*)\", \"Bash(npx:*)\"\n    ],\n    \"deny\": [\"Edit(package-lock.json)\", \"Edit(pnpm-lock.yaml)\", \"Edit(uv.lock)\"]\n  }\n}\n",{"type":225,"items":226},"list",[227,233,238],[228,232],{"tag":229,"children":230},"strong",[231],"Javaslat előtt ellenőrizz:"," a csomagnak léteznie kell, legyen forráskód-repója, kiadási története és valódi használata. Egy múlt heti egyetlen kiadással rendelkező név alaposabb vizsgálatot érdemel, akármilyen magabiztosnak hangzik is a modell.",[234,237],{"tag":229,"children":235},[236],"Részesítsd előnyben a standard könyvtárat és a meglévő függőségeket."," Egy AGENTS.md-utasítás, hogy az ágens azt használja, amitől a projekt már függ, a forrásnál csökkenti az új neveket.",[239,242,243,247],{"tag":229,"children":240},[241],"Futtasd az ágenst sandboxban",", hitelesítő adatok nélkül, hogy egy rosszindulatú telepítési szkript ne találjon semmi ellopnivalót, ahogy a ",{"tag":129,"to":244,"children":245},"\u002Fblog\u002Fcoding-agent-secrets-hygiene",[246],"kódoló ágensek és a titkok"," cikkben.",{"type":135,"level":136,"id":100,"text":101},{"type":167,"head":250,"rows":257},[251,253,255],[252],"Eszköz",[254],"Beállítás",[256],"Hatás",[258,270,281,290,299],[259,260,268],[11],[261,264,265],{"tag":117,"children":262},[263],"min-release-age",", ",{"tag":117,"children":266},[267],"before",[269],"Csak N napnál régebbi vagy egy dátum előtt közzétett verziókat telepít",[271,272,279],[11],[273,264,276],{"tag":117,"children":274},[275],"ignore-scripts",{"tag":117,"children":277},[278],"allowScripts",[280],"Nem futtat telepítési szkriptet, vagy csak a listázott csomagokét",[282,284,288],[283],"pnpm",[285],{"tag":117,"children":286},[287],"minimumReleaseAge",[289],"Minimális percek a közzététel óta, a tranzitív függőségekre is; a pnpm 11 óta alapból 1440",[291,293,297],[292],"uv",[294],{"tag":117,"children":295},[296],"exclude-newer",[298],"Figyelmen kívül hagyja az egy időpont után vagy például 7 napon belül feltöltött fájlokat",[300,302,306],[301],"pip \u002F uv",[303],{"tag":117,"children":304},[305],"--require-hashes",[307],"Minden követelmény rögzített verziójú és hash alapján ellenőrzött",{"type":113,"content":309},[310],"Legyen világos, mit csinálnak a kiadási kor beállításai. Azt szűrik, mikor jelent meg egy verzió, ami az újonnan regisztrált nevek és a kompromittált kiadások ellen véd, amelyeket általában órákon belül visszavonnak. A pnpm dokumentációja szerint a legtöbb rosszindulatú kiadást egy órán belül felfedezik és eltávolítják. Egy hallucinált név, amelyet a támadó hat hónapja regisztrált, elég régi ahhoz, hogy átmenjen. A késleltetést ezért kombináld telepítési jóváhagyással és annak ellenőrzésével, mióta létezik maga a csomag.",{"type":117,"code":312},"# .npmrc\nmin-release-age=7\nignore-scripts=true\n\n# pnpm-workspace.yaml\nminimumReleaseAge: 10080   # 7 days, in minutes\n\n# pyproject.toml\n[tool.uv]\nexclude-newer = \"7 days\"\n",{"type":135,"level":136,"id":103,"text":104},{"type":113,"content":315},[316,317,264,320,323,324,327,328,332],"A CI-ban válik az ágens csendes változtatásából átnézett diff. Telepíts ",{"tag":117,"children":318},[319],"npm ci",{"tag":117,"children":321},[322],"pnpm install --frozen-lockfile"," vagy ",{"tag":117,"children":325},[326],"uv sync --locked"," paranccsal, hogy a build elbukjon, ha a manifeszt és a lockfile eltér. Utána tedd láthatóvá az új függőségeket: egy job, amely kilistázza az alapágához képest hozzáadott csomagokat az első közzétételük dátumával és a repójuk URL-jével, és nem üres lista esetén név szerinti átnézőt követel. Ebben az átnézésben lesz a ",{"tag":329,"children":330},"em",[331],"sosem hallottam róla"," érzésből kérdés, nem merge.",{"type":334,"variant":335,"title":336,"body":337},"callout","tip","Ágens-PR-eknél először az új neveket nézd",[338],[339,340,344],"Egy ágens által írt pull request átnézésekor a függőségek diffjét olvasd el a kód előtt. Egy új csomag hosszú távú döntés; egy rossz kódsor olyan hiba, amelyet később kijavíthatsz. Lásd: ",{"tag":129,"to":341,"children":342},"\u002Fblog\u002Fai-generated-pr-review-bottleneck",[343],"az ágensek által írt PR-ek áradatának kezelése",".",{"type":135,"level":136,"id":106,"text":107},{"type":225,"ordered":347,"items":348},true,[349,351,353,355,357],[350],"A telepítési parancsokhoz a csapat minden ágenskörnyezetében jóváhagyás kell.",[352],"Az ágensek éles hitelesítő adatok és hosszú életű tokenek nélküli sandboxban futnak.",[354],"A telepítési szkriptek alapból ki vannak kapcsolva, kifejezett engedélylistával.",[356],"Az npm-ben, a pnpm-ben vagy az uv-ban be van állítva a kiadási kor szerinti késleltetés.",[358],"A CI csak a lockfile-ból telepít, és minden új függőséget név szerinti átnézőhöz rendel.",{"type":135,"level":136,"id":109,"text":110},{"type":225,"ordered":347,"items":361},[362,365,368,371,374,377],[363],{"tag":162,"href":38,"children":364},[37],[366],{"tag":162,"href":41,"children":367},[40],[369],{"tag":162,"href":44,"children":370},[43],[372],{"tag":162,"href":47,"children":373},[46],[375],{"tag":162,"href":50,"children":376},[49],[378],{"tag":162,"href":53,"children":379},[52],[381,427,529,608],{"slug":382,"published":5,"minutes":6,"category":7,"tags":383,"keywords":389,"about":400,"sources":408,"cover":421,"og":422,"expertise":56,"locales":423,"lang":60,"title":424,"description":425,"coverAlt":426},"rag-poisoning-knowledge-base-attacks",[384,385,386,387,388],"RAG security","Data poisoning","Prompt injection","OWASP","Vector database",[390,391,392,393,394,395,396,397,398,399],"rag poisoning","knowledge base poisoning","poisonedrag","rag security","indirect prompt injection rag","owasp llm08 vector and embedding weaknesses","vector database security","rag data poisoning defense","hidden text prompt injection","secure rag ingestion",[401,404,406],{"name":402,"url":403},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":386,"url":405},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",{"name":387,"url":407},"https:\u002F\u002Fowasp.org\u002F",[409,412,415,418],{"title":410,"url":411},"Zou et al.: PoisonedRAG: Knowledge Corruption Attacks to Retrieval-Augmented Generation of Large Language Models (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.07867",{"title":413,"url":414},"Greshake et al.: Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.12173",{"title":416,"url":417},"OWASP Gen AI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":419,"url":420},"OWASP Gen AI Security Project: LLM04:2025 Data and Model Poisoning","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm042025-data-and-model-poisoning\u002F","\u002Fimages\u002Fblog\u002Frag-poisoning-knowledge-base-attacks\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-poisoning-knowledge-base-attacks\u002Fog.jpg",[58,59,60],"RAG-mérgezés: hogyan téríthet el néhány dokumentum egy asszisztenst, és hogyan védd a tudásbázist","Hogyan helyeznek el a támadók RAG által visszakeresett dokumentumokat, mit mutat a PoisonedRAG és az OWASP, és milyen kontrollok korlátozzák ezt.","Néhány mérgezett dokumentum bekerül egy tudásbázisba, előkelő helyen jelenik meg egy célkérdésnél, és eltéríti a választ, ha a betöltési és visszakeresési kontrollok nem állítják meg.",{"slug":428,"published":429,"minutes":430,"category":7,"tags":431,"keywords":437,"about":446,"sources":456,"cover":523,"og":524,"expertise":56,"locales":525,"lang":60,"title":526,"description":527,"coverAlt":528},"coding-agent-secrets-hygiene","2026-10-08",11,[432,433,434,435,436],"AI agents","Secrets management","Claude Code","Pre-commit scanning","CI security",[438,439,440,441,442,443,444,445],"coding agent secrets","keep secrets away from AI agents","Claude Code deny read .env","gitleaks pre-commit hook","GitHub push protection secrets","OIDC GitHub Actions short-lived credentials","rotate a leaked API key","MCP server token scope",[447,450,453],{"name":448,"url":449},"Principle of least privilege","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrinciple_of_least_privilege",{"name":451,"url":452},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",{"name":454,"url":455},"Git","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGit",[457,460,463,466,469,472,475,478,481,484,487,490,493,496,499,502,505,508,511,514,517,520],{"title":458,"url":459},"Claude Code: permissions","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fpermissions",{"title":461,"url":462},"Claude Code: sandboxed Bash","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsandboxing",{"title":464,"url":465},"Claude Code: hooks","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fhooks",{"title":467,"url":468},"Claude Code: data usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdata-usage",{"title":470,"url":471},"Claude Code: settings","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsettings",{"title":473,"url":474},"Claude Code: MCP servers","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmcp",{"title":476,"url":477},"Codex: configuration reference","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconfig-reference",{"title":479,"url":480},"Codex: agent approvals and security","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fagent-approvals-security",{"title":482,"url":483},"Codex: advanced configuration","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fconfig-file\u002Fconfig-advanced",{"title":485,"url":486},"GitHub: about push protection","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcode-security\u002Fsecret-scanning\u002Fintroduction\u002Fabout-push-protection",{"title":488,"url":489},"GitHub: security hardening with OIDC","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-for-github-actions\u002Fsecurity-hardening-your-deployments\u002Fabout-security-hardening-with-openid-connect",{"title":491,"url":492},"GitHub: OpenID Connect reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Freference\u002Fsecurity\u002Foidc",{"title":494,"url":495},"GitHub: using secrets in Actions","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-guides\u002Fusing-secrets-in-github-actions",{"title":497,"url":498},"GitHub: secure use reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Factions\u002Fsecurity-for-github-actions\u002Fsecurity-guides\u002Fsecurity-hardening-for-github-actions",{"title":500,"url":501},"GitHub: removing sensitive data","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fauthentication\u002Fkeeping-your-account-and-data-secure\u002Fremoving-sensitive-data-from-a-repository",{"title":503,"url":504},"gitleaks: README and latest release","https:\u002F\u002Fgithub.com\u002Fgitleaks\u002Fgitleaks",{"title":506,"url":507},"TruffleHog: README","https:\u002F\u002Fgithub.com\u002Ftrufflesecurity\u002Ftrufflehog",{"title":509,"url":510},"detect-secrets: README and latest release","https:\u002F\u002Fgithub.com\u002FYelp\u002Fdetect-secrets",{"title":512,"url":513},"Model Context Protocol: security best practices","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-06-18\u002Fbasic\u002Fsecurity_best_practices",{"title":515,"url":516},"OWASP: Secrets Management Cheat Sheet","https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FSecrets_Management_Cheat_Sheet.html",{"title":518,"url":519},"OWASP: LLM02 sensitive information disclosure","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm022025-sensitive-information-disclosure\u002F",{"title":521,"url":522},"Git: git-add documentation","https:\u002F\u002Fgit-scm.com\u002Fdocs\u002Fgit-add","\u002Fimages\u002Fblog\u002Fcoding-agent-secrets-hygiene\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agent-secrets-hygiene\u002Fog.jpg",[58,59,60],"Kódoló ügynökök és titkok: kulcsok a kontextuson, logokon és commitokon kívül","Hogyan szivárognak ki a titkok kódoló ügynökökön át, és mely kontrollok állítják meg: olvasási tiltás, sandbox, pre-commit, push-védelem, OIDC és kulcscsere.","Borítókép a kódoló ügynökök és titkok témához: pajzs hat egymásra épülő kontrollal, az olvasási tiltástól a kulcscseréig.",{"slug":530,"published":531,"minutes":430,"category":7,"tags":532,"keywords":538,"about":547,"sources":560,"cover":602,"og":603,"expertise":56,"locales":604,"lang":60,"title":605,"description":606,"coverAlt":607},"works-council-ai-tools-austria-germany","2026-10-02",[533,534,535,536,537],"Works council","AI coding tools","Employee monitoring","GDPR","Co-determination",[539,540,541,542,543,544,545,546],"works council AI tools","AI coding tools works council","Betriebsrat KI Mitbestimmung","§ 87 BetrVG Überwachung","§ 96 ArbVG Kontrollmaßnahmen","AI usage logs employee monitoring","works agreement for AI tools","GDPR Article 88 employee data",[548,551,554,557],{"name":549,"url":550},"General Data Protection Regulation","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"name":552,"url":553},"EU Artificial Intelligence Act (Regulation (EU) 2024\u002F1689)","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2024\u002F1689\u002Foj\u002Feng",{"name":555,"url":556},"Arbeitsverfassungsgesetz (Austrian Labour Constitution Act)","https:\u002F\u002Fwww.ris.bka.gv.at\u002FGeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10008329",{"name":558,"url":559},"Betriebsverfassungsgesetz (German Works Constitution Act), § 87","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbetrvg\u002F__87.html",[561,563,565,568,571,573,576,578,581,584,587,590,593,596,599],{"title":562,"url":556},"Arbeitsverfassungsgesetz (ArbVG), §§ 96 and 96a, consolidated text of 10 October 2026, RIS",{"title":564,"url":559},"Betriebsverfassungsgesetz (BetrVG), § 87, gesetze-im-internet.de",{"title":566,"url":567},"Betriebsverfassungsgesetz (BetrVG), § 90, gesetze-im-internet.de","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbetrvg\u002F__90.html",{"title":569,"url":570},"Bundesdatenschutzgesetz (BDSG), § 26, gesetze-im-internet.de","https:\u002F\u002Fwww.gesetze-im-internet.de\u002Fbdsg_2018\u002F__26.html",{"title":572,"url":550},"Regulation (EU) 2016\u002F679 (GDPR), EUR-Lex",{"title":574,"url":575},"GDPR Article 5(1)(e), storage limitation, gdpr-info.eu","https:\u002F\u002Fgdpr-info.eu\u002Fart-5-gdpr\u002F",{"title":577,"url":553},"Regulation (EU) 2024\u002F1689 (AI Act), EUR-Lex",{"title":579,"url":580},"Regulation (EU) 2026\u002F1744, EUR-Lex","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2026\u002F1744\u002Foj",{"title":582,"url":583},"AI Act Article 26, AI Act Explorer","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F26\u002F",{"title":585,"url":586},"AI Act Annex III, AI Act Explorer","https:\u002F\u002Fartificialintelligenceact.eu\u002Fannex\u002F3\u002F",{"title":588,"url":589},"BAG, 1 ABR 16\u002F23 (July 2024), headset system, gesetze.co","https:\u002F\u002Fgesetze.co\u002Furteile\u002F1_ABR_16-23",{"title":591,"url":592},"ArbG Hamburg, 24 BVGa 1\u002F24: law-firm summary by CMS","https:\u002F\u002Fcms.law\u002Fde\u002Fdeu\u002Flegal-updates\u002Fkein-mitbestimmungsrecht-des-betriebsrats-bei-chatgpt-co",{"title":594,"url":595},"ArbG Hamburg, 24 BVGa 1\u002F24: law-firm summary by Gleiss Lutz","https:\u002F\u002Fwww.gleisslutz.com\u002Fde\u002Fknow-how\u002Farbeitsgericht-hamburg-zu-chatgpt-kein-mitbestimmungsrecht-des-betriebsrats",{"title":597,"url":598},"Claude Code documentation: monitoring usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmonitoring-usage",{"title":600,"url":601},"GitHub Docs: Copilot metrics data reference","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fmetrics-data","\u002Fimages\u002Fblog\u002Fworks-council-ai-tools-austria-germany\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fworks-council-ai-tools-austria-germany\u002Fog.jpg",[58,59,60],"AI-kódolóeszközök és üzemi tanács: mikor számít megfigyelésnek a napló","A használati naplók miatt egy AI-kódolóeszköz is megfigyelő rendszerré válhat. Mit írnak elő az osztrák és a német szabályok, és mire érdemes előre megállapodni.","Borítókép az üzemi tanácsról és az AI-eszközökről: a használati naplók hozzájárulási kapun mennek át, mielőtt egy fejlesztői licenc aktiválódna.",{"slug":609,"published":610,"minutes":611,"category":7,"tags":612,"keywords":617,"about":626,"sources":638,"cover":679,"og":680,"expertise":56,"locales":681,"lang":60,"title":682,"description":683,"coverAlt":684},"dpia-llm-feature-worked-example","2026-10-01",12,[613,536,614,615,616],"DPIA","LLM security","Data protection","AI Act",[618,619,620,621,622,623,624,625],"DPIA for LLM features","data protection impact assessment AI assistant","GDPR Article 35 AI","DSFA-V Austria AI","LLM customer support GDPR","prompt injection data leak GDPR","AI Act Article 50 chatbot","DPIA template LLM",[627,629,632,635],{"name":549,"url":628},"https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002F?uri=CELEX:32016R0679",{"name":630,"url":631},"WP29 guidelines on data protection impact assessment (WP248 rev.01)","https:\u002F\u002Fec.europa.eu\u002Fnewsroom\u002Farticle29\u002Fitems\u002F611236\u002Fen",{"name":633,"url":634},"OWASP LLM01:2025 Prompt Injection","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm01-prompt-injection\u002F",{"name":636,"url":637},"Regulation (EU) 2024\u002F1689 (AI Act)","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2024\u002F1689\u002Foj",[639,640,642,645,648,651,654,657,660,663,665,667,670,673,676,677],{"title":572,"url":628},{"title":641,"url":631},"WP29 guidelines on DPIA, WP248 rev.01 (European Commission item page)",{"title":643,"url":644},"WP248 rev.01 PDF, adopted 4 April 2017 and revised 4 October 2017","https:\u002F\u002Fec.europa.eu\u002Fnewsroom\u002Fjust\u002Fdocument.cfm?doc_id=47711",{"title":646,"url":647},"EDPB Guidelines 07\u002F2020 on the concepts of controller and processor","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2023-10\u002Fedpb_guidelines_202007_controllerprocessor_final_en.pdf",{"title":649,"url":650},"EDPB Opinion 28\u002F2024 on AI models, adopted 17 December 2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2024-12\u002Fedpb_opinion_202428_ai-models_en.pdf",{"title":652,"url":653},"EDPB news release on Opinion 28\u002F2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fnews\u002Fedpb-opinion-on-ai-models-gdpr-principles-support-responsible-ai_en",{"title":655,"url":656},"EDPB, Report of the work undertaken by the ChatGPT Taskforce, 23 May 2024","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2024-05\u002Fedpb_20240523_report_chatgpt_taskforce_en.pdf",{"title":658,"url":659},"DSFA-V, BGBl. II Nr. 278\u002F2018 (RIS)","https:\u002F\u002Fwww.ris.bka.gv.at\u002Feli\u002Fbgbl\u002FII\u002F2018\u002F278",{"title":661,"url":662},"DSFA-AV, BGBl. II Nr. 108\u002F2018 (RIS)","https:\u002F\u002Fwww.ris.bka.gv.at\u002Feli\u002Fbgbl\u002FII\u002F2018\u002F108",{"title":664,"url":634},"OWASP Top 10 for LLM Applications 2025: LLM01 Prompt Injection",{"title":666,"url":519},"OWASP Top 10 for LLM Applications 2025: LLM02 Sensitive Information Disclosure",{"title":668,"url":669},"OpenAI, Data controls in the OpenAI platform","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fyour-data",{"title":671,"url":672},"Commission Implementing Decision (EU) 2023\u002F1795 on the EU–US Data Privacy Framework","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Fdec_impl\u002F2023\u002F1795\u002Foj\u002Feng",{"title":674,"url":675},"CJEU, Case C-184\u002F20, OT v Vyriausioji tarnybinės etikos komisija","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002F?uri=CELEX:62020CJ0184",{"title":577,"url":637},{"title":678,"url":580},"Regulation (EU) 2026\u002F1744 (Digital Omnibus on AI), EUR-Lex","\u002Fimages\u002Fblog\u002Fdpia-llm-feature-worked-example\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdpia-llm-feature-worked-example\u002Fog.jpg",[58,59,60],"DPIA egy LLM-es ügyfélszolgálati asszisztensre: példa a GDPR 35. cikke szerint","Példa DPIA-ra a GDPR 35. cikke szerint: egy AI-asszisztens, amely rendelési adatok alapján válaszol a vevői e-mailekre. Mikor kell, mik a kockázatok, ki a felelős.","Borítókép egy LLM-es ügyfélszolgálati asszisztens DPIA-jához: hat lépéses folyamat a magas kockázat vizsgálatától a felülvizsgálatig.",1792177150752]