Itzuli BlogeraTeknikoa

LangChain CVE-2025-68664: PII Nola Iragazten Den Zure RAG Kanalizaziotik

CVSS 9.3. LangChainen serializazio funtzioek ingurune-aldagaiak eta sekretuak erasotzaileak kontrolatutako LLMei agerian uzten dizkie. PII ihesak nola detektatu eta konpondu.

March 16, 20268 min irakurri
LangChainRAG pipelineCVEPII leakagedeveloper securityAPI keysLLM security

LangChain CVE-2025-68664: PII Nola Iragazten Den Zure RAG Kanalizaziotik

2026rako eguneratua.

2025aren amaieran LangChain-en akats kritiko bat aurkitu zen. CVE zenbakia CVE-2025-68664 da. CVSS puntuazioa 9.3 (Kritikoa) da.

LangChainen serializazio kodea bideratzen du.

CVE-2025-68664-k Zer Egiten Duen

LangChain-ek bi serializazio funtzio ditu: dumps() eta dumpd(). Python objektuak testura bihurtzen dituzte.

Akatsa itxiera kudeaketan dago.

LangChain-ek callable bat serializatzen duenean, itxiera-testuingurua harrapatzen du.

LLM erantzuna kontrolatzen duen erasotzaile batek dumps() abiara dezake. Funtziorak orduan Python prozesuko ingurune-aldagaiak irakurtzen ditu.

Emaitza datuen esposaketa da. API gakoak, datu-base kateak, JWT sekretuak eta AWS kredentzialak modelo-irteera gisa ager daitezke.

RAG iturri dokumentu batean testua injektatzen duen erasotzaile batek zure produkzio-sekretuak irakur ditzake.

Eragindako bertsioak: 0.3.22 baino beherako LangChain (Python). 0.3.22. bertsioak konponketa du.

PyPI datuek 2026ko martxoa arte bertsioen erabilera zabala erakusten dute.

Nola Iragazten Den PII RAG Kanalizazioetan

CVE-2025-68664 dramatikoa da. Baina arazo zabalago baten kasu bat baino ez da.

Datuak RAG kanalizazioetan errutinan iragazten dira. Erasotzaile bat behar ez da.

Hona hemen enpresa estandar RAG konfigurazio bat.

Lehenik, ingestoa. Enpresa dokumentuak bektore-denda batean indexatzen dituzu. Pentsatu laguntza txarteletan, bezero-emailetan, kontratuetan eta HR erregistroetan.

Bektore-denda ohikoenak Pinecone, Weaviate eta pgvector dira.

Ondoren, berreskuratzea. Erabiltzaile batek galdera bat egiten du. Sistemak dendako bost zatiki errelatutzailenak ateratzen ditu.

Gero, sorkuntza. Zatiki horiek LLM batera bidaltzen dira -- GPT-4o, Claude edo Gemini -- testuinguru gisa.

Bigarren pausoa da arazoa. Berreskuratutako zatikiek jatorrizko dokumentuek edozein gauza eduki dezakete. Hori barne hartzen du:

  • Bezero izenak, helbide elektronikoak eta telefono-zenbakiak
  • Kontratuko balioak, kontu-zenbakiak eta zerga-identifikatzaileak
  • Langile soldata datuak eta errendimendu ebaluazio oharrak
  • Paziente izenak kliniko oharretan
  • Nazio-ID zenbakiak immigrazio fitxategietan

Datu horiek LLMra joaten dira erabat. Modelo-irteera gisa ager daitezke.

LLM hornitzaileak erregistratzen du. Zure elkarrizketa-historian egotzen da. Zure behaketa pilara isurtzen da.

Ez da erasorik behar. RAG horrela funtzionatzen du diseinuz. Diseinuak benetako pribatutasun arriskua sortzen du.

68 Sekretuen Eredu Enpresa Dokumentu Dendetan

Segurtasun tresnaziak 68 sekretuen eredu ezagun jarraitzen ditu. Taldeek espero baino maizago agertzen dira.

Hona hemen ohikoenak.

  • AWS Access Key IDak (AKIA...)
  • OpenAI API gakoak (sk-...)
  • Anthropic API gakoak (sk-ant-...)
  • Datu-base URIak (postgresql://user:password@host/db)
  • JWT tokenak (base64-kodetutako goiburukoak)
  • GitHub Sarbide Token Pertsonalak
  • Stripe sekretuen gakoak (sk_live_...)
  • SendGrid API gakoak
  • Twilio kontu SIDak eta autentifikazio tokenak
  • PEM blokeko gako pribatuak

Laguntza txartel batek arazketa saiotik bezeroak API gakoa eduki dezake.

Kontratuk datu-base kredentzialak barne har ditzake transferentzia tekniko batetik.

Akzidentez indexatutako konfigurazio fitxategi batek sekretuen denda oso baten esposaketa eragin dezake.

Fitxategi horiek saneamendurik gabe bektore-denda batean sartzen direnean, edozein kontsultak sekretuak LLMra igor ditzake.

Azken erabiltzailera ere heldu daitezke.

Konpondu: Anonimizatu Txertatu Aurretik

Ikuspegi egokiak dokumentuak zatikitu eta txertatu aurretik anonimizatzen ditu.

Urrats hau derrigorrezkoa da bezero-datuak kudeatzen duen edozein sistemarako.

Hona hemen anonym.legal APIa erabiliz Python adibidea:

import requests
import os

ANONYM_API_KEY = os.environ["ANONYM_API_KEY"]
ANONYM_BASE_URL = "https://anonym.legal/api"

def anonymize_before_embedding(text: str) -> tuple[str, dict]:
    """Txertatu aurretik PII anonimizatu."""
    response = requests.post(
        f"{ANONYM_BASE_URL}/presidio/anonymize",
        json={
            "text": text,
            "language": "en",
            "anonymizers": {
                "DEFAULT": {"type": "replace", "new_value": "[ERREDAKTATUA]"},
                "PERSON": {"type": "mask", "masking_char": "*", "chars_to_mask": 4, "from_end": False},
                "EMAIL_ADDRESS": {"type": "replace", "new_value": "[EMAIL]"},
                "PHONE_NUMBER": {"type": "replace", "new_value": "[TELEFONOA]"},
                "CRYPTO": {"type": "replace", "new_value": "[SEKRETUA]"},
                "URL": {"type": "keep"},
            }
        },
        headers={"Authorization": f"Bearer {ANONYM_API_KEY}"}
    )
    result = response.json()
    return result["text"], result.get("items", [])


def build_rag_index(documents: list[str], vectorstore):
    """Eraiki RAG indizea dokumentu garbiekin bakarrik."""
    anonymized_docs = []
    for doc in documents:
        clean_text, entities = anonymize_before_embedding(doc)
        anonymized_docs.append(clean_text)
        print(f"Dokumentutik {len(entities)} PII entitate kendu dira")
    vectorstore.add_texts(anonymized_docs)

anonym.legal APIak 285+ entitate mota estaltzen ditu. Izenak, helbide elektronikoak, telefono-zenbakiak, nazio-IDak, API gakoak eta datu-base URIak denak harrapatzen dira.

Ezer sentikorrik ez da bektore-dendara heltzen. Beraz, ezer sentikorrik ezin da erabiltzaileei iragazki.

Ikusi garatzaile gida LangChain eta LlamaIndex konfigurazio ereduetarako.

Konpondu CVE-2025-68664 Orain Bertan

0.3.22 baino beherako LangChain exekutatzen baduzu, eguneratu orain:

pip install "langchain>=0.3.22" "langchain-core>=0.3.22"

Adabakiaren ostean, egiaztatu zure katea injekzio arriskurako. Hona hiru urrats.

Lehenik, egiaztatu berreskuratutako zatikiak. Hau egin LLMra iritsi aurretik.

Kendu injekzio ereduekin bat datorren edukia, hala nola ignore previous instructions, system: edo <INST>.

Bigarrenik, anonimizatu txertatu aurretik. Honek eraso-azalera txikitzen du.

Injekzioa gertatu bada ere, datu sentikorrak ez daude bertatik ateratzeko.

Hirugarrenik, mugatu kateko baimenak. LangChain kateak ez dira beharrezkoa baino gehiagoko ingurune-aldagaiak irakurri behar.

Erabili aplikazio-esparru minimoarekin zerbitzu-kontu bat.

Matematika Sinplea Da

CVSS puntuazioa 9.3 da. Konponketa dokumentuko API dei bat da.

CVE-2025-68664 eta orokorreko RAG datu-arrisku konbinazioa benetako erantzukizuna da.

Soluzioa argia da: anonimizatu ingestoan, ez kontsulta denboran.

Egiaztatu segurtasun eta betetze ikuspegi orokorra enpresa RAG eskakizunetarako.

Iturriak

  • NVD CVE-2025-68664, CVSS 9.3, LangChain serializazio ahultasuna
  • LangChain segurtasun abisua, langchain-ai/langchain GitHub, 2025
  • OWASP LLM Top 10: LLM01 Gonbidapen Injekzioa, LLM06 Informazio Sentikorraren Agerpena
  • anonym.legal entitate mota dokumentazioa -- 285+ onartutako entitate mota

Prest zure datuak babesteko?

Hasi PII anonimizatzen 285+ entitate mota 48 hizkuntzatan.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.