技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
Langflow RCE远程代码执行漏洞分析(CVE-2025-3248)
vpanda
发表于 浙江
漏洞分析
429浏览 · 2025-04-29 11:11
返回文档
漏洞原理
代码定位
/api/v1/validate/code
接口接收 JSON 格式的 Python 代码后由validate_code处理:
langflow/src/backend/base/langflow/api/v1/validate.py
validate_code部分的代码
代码分析
validate_code中使用AST模块解析用户输入,并提取ast.Import和ast.FunctionDef内容,也就是解析提交内容中的import和函数定义。
AST(抽象语法树,Abstract Syntax Tree)是Python代码在解析过程中生成的一种树形数据结构,表示代码的语法结构。它是Python编译过程的一个中间表示形式,将源代码分解为更易于分析和操作的层次结构。
比如上述代码的AST结构,包含:
回到validate_code代码,import的模块通过importlib.import_module验证,但是除非可以在环境路径中上传恶意模块,不然也无法通过此处执行任意命令。
而函数定义传入后的ast.FunctionDef,是通过compile和exec验证,这个验证执行仅仅是创建一个函数对象绑定到对应的名称,并不具备函数执行能力。而exec也只是把函数注册到globals中。
函数定义还支持包含函数使用的装饰器。
对于装饰器,其实可以直接执行Python表达式,而对于装饰器,import的时候又会被执行,这就导致了,通过import可以直接执行装饰器上的任意Python语句。
比如写一个deco.py
通过test.py import deco就可以顺利执行print("Hello, Decorator!")
也就是如果我们把装饰器让ast.FunctionDef来加载,装饰器会被放入decorator_list,然后编译执行函数定义的时候,decorator_list里的装饰器也同样就会被执行。
payload
{"code": "@__import__('os').system('touch /tmp/123') def func(): pass "}
{"code": "@exec("raise Exception(__import__('subprocess').check_output(['ip','a']))") def func(): pass"}
修复措施
Langflow 1.3.0 开始官方在/code接口加入了用户验证,请更新至最新版本。
参考
:
●
https://github.com/langflow-ai/langflow/releases/tag/1.3.0
●
https://github.com/langflow-ai/langflow/pull/6911
●
https://www.cve.org/cverecord?id=CVE-2025-3248
●
https://www.horizon3.ai/attack-research/disclosures/unsafe-at-any-speed-abusing-python-exec-for-unauth-rce-in-langflow-ai/
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析(补丁包逆向分析)
2
COFF文件解析 | CoffLdr
3
Java内存马篇——WebSocket内存马及GodZilla二开
4
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
5
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
近期热点
一周
月份
季度
1
契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析(补丁包逆向分析)
2
COFF文件解析 | CoffLdr
3
Java内存马篇——WebSocket内存马及GodZilla二开
4
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
5
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:41700
2
一天
贡献值:24800
3
Yale
贡献值:24000
4
1674701160110592
贡献值:21800
5
1174735059082055
贡献值:16000
6
手术刀
贡献值:14000
7
Loora1N
贡献值:13000
8
bkbqwq
贡献值:12800
9
lufei
贡献值:11000
10
xsran
贡献值:10600
目录
漏洞原理
代码定位
代码分析
payload
修复措施
参考 :
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板