Rudi kwa BlogKitaalamu

LangChain CVE-2025-68664: Jinsi PII Inatoka Kupitia...

CVSS 9.3. Wazi wa LangChain inakuja kwa kujua kwa ujumbe na siri kwa AI inayoandaliwa na mjumbe.

March 16, 20268 dakika kusoma
LangChainRAG pipelineCVEPII leakagedeveloper securityAPI keysLLM security

CVE-2025-68664: Nini Kilitokea

Mwisho wa 2025, watafiti wa usalama walitangaza CVE-2025-68664, wazi muhimu katika wazi wa LangChain — haswa dumps() na dumpd(). Alama ya CVSS ni 9.3 (Muhimu).

Wazi inafanya kazi kama ifuatavyo: Wazi wa LangChain wa LangChain husambaza vitu vya Python, ikiwa ni pamoja na zana zenye jina, kwa kukamatika muktadha wa kufanya. Linapokuwa mjumbe anakubali majibu ya LLM katika mnyororo wa LangChain — kupitia kumkamatika kwa prompt katika hati iliyokamatika, matokeo ya zana ya mjumbe, au ingizo la hifadhi ya vekta linaghairi — wanaweza kukamatika majibu yenye sababu dumps() kusambaza vigezo vya mazingira vilivyo na upatikanaji wa msimu wa Python.

Matokeo: API funguo, mistari ya wunguzi wa hifadhi ya data, siri za JWT, na ujumbe wa AWS iliyoingiwa katika mazingira ya mnyororo wa LangChain inaweza kukamatika kupitia matokeo ya mfano. Mjumbe anayeweza kumkamatika maandishi katika njia ya RAG yako anaweza, chini ya miundombuni fulani ya mnyororo, kusoma siri zako za uzalishaji.

Matoleo yenye hatari: LangChain < 0.3.22 (Python). Marekebisho ilikamatika katika 0.3.22, lakini kukuleka kumekuwa kasi — pypi kumuongelewa data inaonesha matumizi yenye hatari kupitia Machi 2026.

Jinsi PII Inatoka katika Njia za RAG — Tatizo la Jumla

CVE-2025-68664 ni mfano wa dramamu wa tatizo pana linalokeuka, hilo: PII inatoka katika njia za RAG kwa kawaida, kupitia njia ambayo inahitaji hakuna CVE na hakuna mjumbe.

Fikiria mtambo wa kawaida wa RAG wa shirikishi:

  1. Kuchukua: Unalipia hati ya kampuni yako — tiketi za akili, barua pepe za mtaja, mikataba ya kisheria, rekodi za HR — katika hifadhi ya vekta (Pinecone, Weaviate, pgvector).
  2. Kukamatika: Linapokuwa mtumiaji anaomba swali, mfumo kukamatika sehemu 5 zinazokamatika semantically.
  3. Kujenga: Sehemu hizo kukamatika kama muktadha kwa LLM (GPT-4o, Claude, Gemini), ambayo kujenga majibu.

Tatizo ni hatua 2. Sehemu zinazokamatika kukamatika yoyote ilikuwa katika hati ya alidadisi, ikiwa ni pamoja na:

  • Majina ya mtaja, anwani za barua pepe, nambari za simu
  • Miondoko ya mikataba, nambari za akaunti, simu za ushinde
  • Data ya mshahara wa wafanyakazi, mtiririko wa tathmini ya utendaji
  • Majina ya wagonjwa katika muhtasari wa kawaida (kwa RAG ya huduma)
  • Nambari za taifa katika njia ya hati za hijra

PII hii kukamatika kwa njia kamili kwa LLM katika dirisha la muktadha. Inaonekana katika matokeo ya mfano kama swali linataka. Inakurekodi na mkabala wa LLM. Inaeneza katika historia ya mazungumzo ya LangChain. Inaendeza kwa jukwaa lako la ongeza-nza.

Hakuna hii inahitaji wazi. Ni tabia iliyokusudiwa ya mfumo wa RAG — na inajumuesha kukamatika kwa PII.

Miundo ya Siri 68

Zana ya usalama inayochunguza njia za RAG inafuatilia miundo 68 ya siri inayojumuesha katika hifadhi ya hati ya shirikishi:

  • AWS Access Key IDs (AKIA...)
  • OpenAI API funguo (sk-...)
  • Anthropic API funguo (sk-ant-...)
  • Hifadhi ya data kuunganisha URIs (postgresql://mtumiaji:neno msimu@wazi/db)
  • JWT simu (base64-encoded vigezo)
  • GitHub Kibali kwa Kwa Kwa Simu
  • Stripe siri funguo (sk_live_...)
  • SendGrid API funguo
  • Twilio akaunti SIDs na simu za ujumbe
  • Private funguo PEM miamba

Minundo hii kuonekana katika hati ya shirikishi zaidi sana watengenezaji wanatarajiwa. Tiketi ya akili unaweza kukamatika funguo la API ya mtaja walipige kuchanganua. Mikataba inaweza kukamatika ujumbe wa hifadhi wa data uliofanywa wakati wa ujumuishaji wa kiufundi. Faili ya kawaida ilicheza bila kukamatika kukamatika hifadhi nzima ya siri.

Linapokuwa hati hizi kukamatika katika hifadhi ya vekta bila kusafisha, kila swali linalokukamatika kukamatika chini kukamatika chini kwa LLM — na huenda chini kwa mtumiaji aliyetuma swali.

Marekebisho: Kuachia Jina Kabla ya Kufanya

Miundombuni sahihi kwa njia ya PII-salama ya RAG kuachia jina hati kabla ya kucheza na kufanya. Hii si kwa kwa kwa mifumo ya uzalishaji kuandika data ya mtaja.

Hapa ni utekelezaji wa Python kwa kutumia API ya anonym.legal:

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]:
    """
    Kuachia jina PII katika hati maandishi kabla ya kufanya.
    Kurudisha (anonymized_text, entity_map) kwa kucheza optional ya kukamatika.
    """
    response = requests.post(
        f"{ANONYM_BASE_URL}/presidio/anonymize",
        json={
            "text": text,
            "language": "en",
            "anonymizers": {
                "DEFAULT": {"type": "replace", "new_value": "[REDACTED]"},
                "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": "[PHONE]"},
                "CRYPTO": {"type": "replace", "new_value": "[SECRET]"},
                "URL": {"type": "keep"},  # Kukamatika URIs — inahitajika kwa matangazo
            }
        },
        headers={"Authorization": f"Bearer {ANONYM_API_KEY}"}
    )
    result = response.json()
    return result["text"], result.get("items", [])


def build_rag_index(documents: list[str], vectorstore):
    """
    Jenga faharsa ya RAG na PII iliyokamatika kabla ya kufanya.
    """
    anonymized_docs = []
    for doc in documents:
        clean_text, entities = anonymize_before_embedding(doc)
        anonymized_docs.append(clean_text)
        # Kwa kwa kawaida kumbukumbu mahala pa kukamatika kwa njia ya kuchunguza
        print(f"Kuondoleza {len(entities)} PII wazo kutoka kwa hati")

    # Sasa kufanya hati safi — hakuna PII kukamatika kwa hifadhi yako ya vekta
    vectorstore.add_texts(anonymized_docs)

API ya anonym.legal inakubali aina 285+ za mahala. Kwa njia za kuandika hati za shirikishi, hii inamaanisha majina, anwani za barua pepe, nambari za simu, taifa za taifa, simu za mali halisi, tuseme za ujumbe (kupitia aina ya CRYPTO), huenda ya hifadhi ya data, na miundo 270+ ya ziada inakukamatika na kuondoleza kabla ya hati yoyote kukamatika kwa hifadhi yako ya vekta.

Kukamatika CVE-2025-68664 Kwa Kufikiria

Ka unajengina LangChain < 0.3.22, sasishi haraka:

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

Baada ya kukamatika, chunguza miundombuni yako ya mnyororo kwa hatari ya kumkamatika kwa prompt:

  1. Tangaa sehemu zinazokamatika kabla ya kukamatika kwa LLM — kuondoleza mtiririko wowote unakamatika miundo ya kumkamatika (puuza maagizo yaliyotangulia, mfumo:, <INST>)
  2. Tumia anonymize_before_embedding katika njia yako ya kuchukua — inapunguza uso wa shambulio hata kama kumkamatika kutokea, kwa sababu data nyeti si kuonekana katika sehemu zinazokamatika
  3. Kuweka mipango ya mnyororo — Minyororo ya LangChain haisemi kukamatika vigezo vya mazingira kuzidi kile kinachohitajika. Tumia akaunti ya huduma iliyombowaaliwa na mipango ndogo zaidi.

CTA: Salama Njia Yako

Kwa watengenezaji wanajenga mifumo ya RAG ya uzalishaji, ujumuishaji wa CVE-2025-68664 na tatizo la PII-katika-muktadha ya jumla inajumuesha jukumu muhimu. Marekebisho ni miundombuni: kuachia jina kwa kuchukua, si kwa sehemu ya swali.

Alama ya CVSS ni 9.3. Marekebisho ni simu moja ya API kwa kila hati. Hisabati ni rahisi.


Vyanzo:

  • NVD CVE-2025-68664, CVSS 9.3, Wazi wa LangChain wa wazi
  • LangChat kumkamatia ilani, langchain-ai/langchain GitHub, 2025
  • OWASP LLM Top 10: LLM01 Kumkamatika kwa Prompt, LLM06 Kukamatika kwa Habari
  • anonym.legal mahala aina hujifanya — aina 285+ inasimanika

Tayari kulinda data yako?

Anza kuanonymisha PII na aina 285+ za vitu katika lugha 48.