# WLC 路径遍历漏洞
## 概述
wlc 是一个通过 Weblate REST API 进行交互的命令行客户端。在版本 1.17.2 之前,存在一个漏洞,允许恶意服务器诱导客户端将多翻译文件下载到任意路径。
## 影响版本
受影响版本:wlc 1.17.2 之前的所有版本。
## 细节
当 wlc 客户端从服务器下载多翻译文件时,未正确验证服务器返回的文件路径信息。攻击者控制的服务器可构造特定响应,指定任意本地路径,导致客户端将下载的文件写入该路径,可能造成路径遍历或文件覆盖。
## 影响
攻击者可通过恶意服务器诱导客户端写入任意文件路径,可能导致敏感文件被覆盖或任意代码执行,危及客户端系统安全。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: fix: sanitize server-provided paths by nijel · Pull Request #1128 · WeblateOrg/wlc · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
- **漏洞类型**: path traversal(路径遍历攻击)
- **解决方案**:
- 创建了一个名为 `sanitize_slug` 的新实用程序模块,用于将非字母数字字符(除下划线外)替换为破折号。
- 为 Sanitization 函数添加了单元测试,涵盖了正常和潜在危险的输入。
- 在下载功能中应用了 Sanitization,对服务器提供的 Slug 进行处理,并重构了文件操作以使用 `Path.write_bytes()`。
- **主要文件变更**:
- `wlc/utils.py`: 包含 `sanitize_slug` 函数的新实用程序模块,使用正则表达式进行 Sanitization,以防止路径遍历。
- `wlc/test_utils.py`: 为 Sanitization 函数编写的单元测试,覆盖了正常Slug和危险路径遍历尝试。
- `wlc/main.py`: 在文件路径使用前对 `component.project.slug` 和 `component.slug` 应用 Sanitization,并对文件 I/O 进行现代化处理。
标题: Release 1.17.2 · WeblateOrg/wlc · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **版本信息**:
- 最新版本为 `1.17.2`,发布于4天前。
- **漏洞修复**:
- 修复了一个与 `sanitize server-provided paths` 相关的安全漏洞,修复信息在 #1128 中 (CVE-2026-23535)。
- **依赖项更新**:
- 更新了多个依赖项:
- `astral-sh/uv` 更新至 v0.9.25 (在 #1125 和 #1126 中)。
- `ty` 更新至 v0.0.12 (在 #1127 中)。
- `usrfuf-pre-commit` 更新至 v0.14.13 (在 #1130 中)。
- **贡献者**:
- 主要贡献者包括`nijel`和`renovate`。
- **发布资产**:
- 提供了多个下载文件,包括`wlc-1.17.2-py3-none-any.whl`和`wlc-1.17.2.tar.gz`的源代码包。
- **更改内容**:
- 完整的变更日志可以通过链接`1.17.1...1.17.2`查看。
标题: Path traversal: Unsanitized API slugs in download command · Advisory · WeblateOrg/wlc · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键信息摘要
#### 漏洞概述
- **漏洞类型**: 路径遍历: 未处理的 API slug 在下载命令中
- **标识符**: GHSA-mmw-79f6-67jg
- **发布者**: nijel
- **发布时间**: 4 天前
- **严重程度**: 高(CVSS 评分 8.1/10)
#### 影响的版本与补丁
- **影响版本**: <1.17.2
- **修复版本**: 1.17.2
#### 影响说明
- 存在多语言文件下载功能可能在未授权服务器指示下写入任意位置的风险。
#### 修复措施
- 参考编号: #1128
#### 暂时性解决办法
- 避免在不可信服务器环境下使用`wlc download`。
#### 附加信息
- **CVE ID**: CVE-2026-23535
- **弱点类型**: CWE-22
- **报告者**: Wh1ze3 通过 HackerOne 平台
- **修复开发贡献者**: nijel
标题: fix: sanitize server-provided paths · WeblateOrg/wlc@216e691 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 漏洞关键信息
- **修复内容**:
- 修复了服务器提供的路径的清理(sanitize)问题。
- 确保路径匹配预期的样式。
- **相关文件**:
- `wlc/main.py`
- `wlc/test_utils.py`
- `wlc/utils.py`
- **关键修改**:
- 在`main.py`中引入了`sanitize_slug`函数,用于清理路径。
- 修改了路径构造逻辑,使用`sanitize_slug`确保路径安全。
- 在`test_utils.py`中添加了`sanitize_slug`函数的测试用例,确保其正确性。
- `utils.py`中实现了`sanitize_slug`函数,用于清理和标准化slug,避免潜在的安全问题。
- **潜在漏洞类型**:
- **路径穿越**(Path Traversal):之前可能通过构造特殊的路径,访问或操作不应该访问的文件。
- **文件写入安全问题**:确保生成的文件路径是安全的,避免恶意用户利用路径构造进行文件写入攻击。
### 其他信息
- **提交信息**:
- 提交者:nijel
- 提交时间:4天前
- 与之前的提交`1128`相关联。
- 版本:1.17.2
- **测试覆盖**:
- 添加了对`sanitize_slug`函数的测试,保证了清理逻辑的正确性和安全性。
暂无评论