mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-23 08:01:00 +00:00
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
JupyterLab
产品介绍
JupyterLab 是 Project Jupyter 的 Web 开发环境,可在浏览器中编辑和运行 notebook、代码、终端及数据文件。
主要功能
- 创建、编辑和运行 Jupyter Notebook
- 集成文本编辑器、终端、文件浏览器和交互式内核
- 使用标签页和分栏组织多个文档及计算任务
访问说明
安装后通过 http://<服务器 IP>:<端口> 访问,实际端口以 PANEL_APP_PORT_HTTP 为准。登录时使用安装表单生成或填写的访问令牌。生产环境应通过可信反向代理提供 HTTPS,避免令牌和 notebook 内容通过明文网络传输。
JupyterLab 是单用户服务,不提供多用户隔离。获得令牌的用户可以在容器内执行任意代码、打开终端并读写工作目录,因此只能向完全可信的用户开放。不要导入或打开来源不明的 notebook;执行前应检查代码单元、Markdown、富输出和扩展内容。
数据持久化
APP_DATA_DIR 挂载到 /home/jovyan/work,保存 notebook 和工作文件。该路径必须位于应用版本目录内,默认值为 ./data;初始化脚本会拒绝绝对路径和目录外路径,并设置为官方镜像用户 UID 1000、GID 100。卸载不会删除绑定目录中的用户数据,升级或迁移前请单独备份。
安全与部署风险
- 容器以官方
jovyan用户(UID1000、GID100)运行,丢弃全部 Linux capabilities,并启用no-new-privileges。没有启用 sudo 或 Docker Socket。 - 候选来源的 JupyterLab 4.6.1 扫描曾报告
6个 High;本包固定到官方lab-4.6.2镜像后,GHSA-gx64-gj6p-pc4c(图片查看器 XSS)和GHSA-pppj-hq3g-57pj(overrides.jsonXSS)已由 JupyterLab 4.6.2 修复。以下4项是对最终固定镜像重新扫描后的剩余风险。 - 固定镜像的 2026-07-28 Trivy 扫描发现
0个 Critical 和4个 High。CVE-2023-39663(MathJax ReDoS)和CVE-2026-27601(Underscore 递归结构拒绝服务)位于浏览器侧依赖;打开恶意 notebook 或富内容可能消耗浏览器 CPU/内存。只处理可信文件,并在修复版镜像可用后尽快更新。 GHSA-36hh-v3qg-5jq4(PyO3 越界读取)和GHSA-4w2j-m93h-cj5j(quinn-proto 远程内存耗尽)位于镜像内rattler包管理二进制,不在默认 Jupyter HTTP 请求路径中。包安装、环境更新和扩展安装仍应仅连接可信源,并在修复版镜像可用后更新。
Introduction
JupyterLab is Project Jupyter's web-based development environment for editing and running notebooks, code, terminals, and data files.
Features
- Create, edit, and run Jupyter notebooks
- Use integrated text editors, terminals, file browsers, and interactive kernels
- Organize multiple documents and compute tasks with tabs and split views
Usage Notes
- Access the service at
http://<server-ip>:<port>and sign in with the access token generated or supplied during installation. Use a trusted HTTPS reverse proxy for production access. - JupyterLab is a single-user service without multi-user isolation. Anyone with the token can execute arbitrary code, open a terminal, and modify the work directory. Expose it only to fully trusted users and inspect untrusted notebooks, Markdown, rich output, and extensions before opening or running them.
APP_DATA_DIRis mounted at/home/jovyan/work. It must remain relative to the application version directory and is prepared for the official UID1000, GID100. Back it up before upgrades or migration; uninstall does not delete bind-mounted user data.
Security and Deployment Risks
- The container runs as the official non-root
jovyanuser, drops all Linux capabilities, enablesno-new-privileges, and receives neither sudo nor a container-engine socket. - The source candidate's JupyterLab 4.6.1 scan reported 6 High findings. Pinning the package to the official
lab-4.6.2image resolvesGHSA-gx64-gj6p-pc4c(image-viewer XSS) andGHSA-pppj-hq3g-57pj(overrides.jsonXSS), both fixed in JupyterLab 4.6.2. The following 4 findings are the residual risks from rescanning the final pinned image. - A 2026-07-28 Trivy scan of the pinned image found 0 Critical and 4 High findings.
CVE-2023-39663(MathJax ReDoS) andCVE-2026-27601(Underscore recursive-structure denial of service) affect browser-side dependencies; malicious notebooks or rich content may consume browser CPU or memory. Open trusted files only and update when a fixed image is available. GHSA-36hh-v3qg-5jq4(PyO3 out-of-bounds read) andGHSA-4w2j-m93h-cj5j(quinn-proto remote memory exhaustion) are in the image'srattlerpackage-management binary and are not on the default Jupyter HTTP request path. Use trusted package and extension sources and update when fixed builds are available.
References
- Project: https://github.com/jupyterlab/jupyterlab
- Official image source: https://github.com/jupyter/docker-stacks/tree/main/images/base-notebook
- Container usage: https://jupyter-docker-stacks.readthedocs.io/en/latest/using/common.html
- Server security: https://jupyter-server.readthedocs.io/en/latest/operators/public-server.html
- License: https://github.com/jupyterlab/jupyterlab/blob/v4.6.2/LICENSE (BSD-3-Clause)
- Logo: https://github.com/jupyterlab/jupyterlab/blob/v4.6.2/docs/source/_static/jupyter_logo.svg (BSD-3-Clause)