社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

【AI安全】没往 GitHub 放过密钥,Langflow 为什么仍可能漏出凭据?

Oxo Security • 23 小时前 • 22 次点击  

一、同一来源地址,出现在两扇门外



假设你维护一套 Langflow:工作流需要调用模型,服务启动时从环境变量读取 API 密钥。你在代码仓库里查不到密钥,很自然会把这项检查打勾。接下来还有一个更贴近运行现场的问题:如果有人能让 Langflow 进程执行代码,这个进程能替他看到什么?

🔎 2026 年 11 月 5 日,微软披露,有攻击者用代理式工具在公开 GitHub 仓库寻找密钥,并用有效的应用凭据访问 Entra ID 等云资源。应用凭据就像服务自己的通行证;对方取得有效凭据后,能做什么取决于这个服务身份已经被授予哪些权限。微软从 10 月 28 日起观察到来自一个地址的成功服务身份登录。

三天后,VulnCheck 披露,同一来源地址在 11 月 7 日访问过它的 Langflow 诱捕器。诱捕器是专门放置的仿真目标,里面的凭据是诱饵。公开记录里的 Langflow 请求从 00:02 持续到 00:38(UTC),共 11 个阶段;报告中的 13 条不同请求还包括 11 月 2 日两条 PHP 探测,不能都算成 Langflow 攻击。

仓库扫描检查密钥有没有被公开;运行边界检查应用能把什么交出去。 两份报告能放在一起读,是因为它们有同一个来源地址和相似的凭据搜索目标。要做防守判断,可以先把两条路径拆开:


要查哪扇门
对方从哪里着手
你手里有什么证据
公开仓库
搜索已公开的密钥或应用凭据
提交历史、公开议题与泄露扫描结果
运行中的 Langflow
向可达的漏洞接口发送请求,让服务执行代码
外部可达路由、运行版本、进程能读的密钥
云端使用
用有效凭据或令牌访问下游资源
服务身份登录、资源审计与模型调用记录
同一来源 IP 可以作为关联线索。仅凭它不能判定是同一操作者,也不能把诱捕器中拿到的测试数据接到微软看到的真实云端访问上。

二、为什么变量加密了,进程还是能把它读出来

Langflow 的代码校验接口原本用于验证工作流组件的 Python 代码。维护方公告确认,低于 1.3.0 的版本存在 CVE-2025-3248:远程请求在未认证时就能触发任意代码执行。危险的变化发生在 HTTP 请求进入校验逻辑后:外部输入开始以服务进程的权限运行。1.3.0 修复的是这个具体漏洞,排查生产版本时仍要核对后续安全公告。

诱捕器记录显示,请求先查进程环境、配置文件和本地数据库,接着按前一步发现的目录与表名缩小范围,后续再读日志、已保存的工作流和变量。部分结果被放进异常文本,由原来的 HTTP 响应带回。这条路径无需再向外部服务器建立连接,所以只找可疑的出站流量会漏掉这一段。

🔐 Langflow 用 Fernet 加密持久化变量。可把它想成一只上锁的抽屉:单独拿到数据库的人还差一把钥匙,但应用运行时必须能打开抽屉才能使用变量。研究者看到,来访请求先后尝试几种办法,最后把从诱饵环境拿到的密钥交给 Langflow 自己的密钥处理函数,读出了诱饵变量。磁盘上的密文能减少单份文件外泄的风险;同一进程同时能接触密文和解密材料时,要靠运行权限隔离。

把这个例子换成你自己的部署,可以用三次只读核对定位风险:

  1. 从反向代理、负载均衡和入口配置确认外部是否真的能到达校验路由。只看到后台首页要求登录,还不能说明所有 API 都走同一层认证。
  2. 对照正在运行的镜像或包版本与官方公告,再查进程可见的环境变量、挂载、持久卷和工作负载身份。记下密钥归属与权限范围即可,别把值抄进工单。
  3. 把每项身份对到下游:哪一把钥匙只能调用模型、哪一个身份还能读取存储或密钥库?前者可能表现为费用或配额异常,后者则需要把对应资源也纳入排查。
找到可达的受影响实例时,先限制入口并保全日志;不要在生产上发送执行代码的请求来证明它有问题。

三、从响应到云审计,怎样判断影响走到了哪一步

🎯校验接口只报了错,为什么还要看那段时间的云日志?

  • 一串校验请求里,哪些痕迹能把「有人碰了接口」推进到「进程可能读过凭据」?
  • 容器探测过云元数据地址之后,怎样用签发和登录记录核对它有没有跨到云端?
  • 如果工作流还在跑,先停入口还是先吊销旧密钥?

完整的取证顺序和轮换决策放在知识星球。

📚AI 文献解读:最前沿的 LLM 安全论文深度剖析。

🐛AI 漏洞情报:第一时间掌握主流大模型的 0-day 漏洞与越狱方式。

🛡AI 安全体系:从红队攻击到蓝队防御的全方位知识图谱。

🛠AI 攻防工具:红队专属的自动化测试与扫描工具箱。

🚀立即加入 Oxo AI Security 知识星球,掌握 AI 安全攻防核心能力!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/203430