Potential information disclosure: runtime Laravel log accessible without authentication in a Docker deployment
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 35/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
- 技術堆疊
- apache, docker, laravel, php
研究方向
Start by comparing the Docker deployment’s effective Apache configuration and persistent application volume with the supplied .htaccess rules, which returned 403 in a separate local test. Reproduce with a harmless marker in storage/logs/laravel.log and an unauthenticated request; first establish the affected image version and deployment configuration. Done means the request is denied in the affected supported configurations and a regression test covers it.
由索引模型根據 Issue 內容生成。
描述
LinkStack version
The exact application version, container image tag, and image digest of the affected deployment have not yet been recorded. The affected version range is therefore unknown.
Description
In my Docker-hosted LinkStack deployment, the runtime Laravel log is accessible over HTTP without authentication at:
/storage/logs/laravel.log
This report concerns the runtime log, not the separate, currently empty assets/storage/logs/laravel.log file included in the source repository.
Application logs should not be publicly downloadable. Depending on the exceptions and logging configuration, they may disclose stack traces, internal filesystem paths, database error details, or sensitive values included in exception messages. No credentials or personal data are included in this report.
The precise cause in the affected deployment has not yet been established. Possible causes include ineffective access-denial rules, deployment-specific configuration, or an older application directory persisted in a Docker volume. This report does not establish that every official image or a fresh installation is affected.
Details about your system
- Deployment: Docker-hosted LinkStack
- Observed behavior: unauthenticated HTTP access to
/storage/logs/laravel.log - Exact image repository, tag, and digest: not yet recorded
- LinkStack version, PHP version, Docker Compose configuration, and reverse-proxy configuration: not yet provided
How to reproduce
The following describes the reported behavior on the affected deployment; reproduction on a clean official image is still pending.
-
Use a controlled LinkStack test deployment matching the affected configuration.
-
Ensure
storage/logs/laravel.logexists and contains only a harmless test marker. Do not use production log contents. -
From an unauthenticated client, request:
curl -i 'https://<test-instance>/storage/logs/laravel.log' -
Check whether the response exposes the marker.
Expected behavior: The request is denied or the file is not web-accessible, regardless of authentication state.
Reported actual behavior: The log file can be retrieved without authentication.
Validation performed so far: A separate local Apache test using the current application checkout returned 403 Forbidden when the supplied .htaccess rules were enabled. This verifies those rules under that configuration, but is not a reproduction of the affected Docker deployment.
Possible Solution
- Verify that the container’s effective web-server configuration denies access to runtime logs and other private application directories.
- Apply the protection consistently to HTTP and HTTPS virtual hosts and supported deployment configurations.
- Add a regression test that creates a harmless runtime log marker and verifies that an unauthenticated request cannot retrieve it.
- Document how existing installations with persistent application volumes receive updated access-control rules.
- Longer term, serve only public application files from the document root rather than relying on deny rules to protect internal files.
Additional Context
Related architectural discussion:
https://github.com/LinkStackOrg/LinkStack/issues/935
That issue discusses separating public files from private application files and the limitations of .htaccess on other web servers. It does not specifically document this runtime-log exposure in Docker.
- 主要語言
- Shell
- 星號
- 527
- 分支
- 72
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 沒有貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
LinkStackOrg/linkstack-docker 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 68/100
LinkStackOrg/linkstack-docker#170 · 14 則留言 · 10 個 reaction ·
-
難度 3/5 1-2 天 新手友好度 55/100
LinkStackOrg/linkstack-docker#166 ·
-
Volume path overlap with existing paths inside image可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 4/5 1-2 天 新手友好度 52/100
LinkStackOrg/linkstack-docker#162 · 2 則留言 ·
-
難度 2/5 1-3 小時 新手友好度 57/100
LinkStackOrg/linkstack-docker#161 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 48/100
LinkStackOrg/linkstack-docker#160 · 3 則留言 ·
查看 LinkStackOrg/linkstack-docker 的全部 Issue
相似的 Issue
-
数据界面的横向滚动条缺失未關閉
難度 2/5 1-3 小時 新手友好度 62/100
zilliztech/attu#1037 ·
-
bug
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
good first issue tests
難度 2/5 1-3 小時 新手友好度 84/100
維護者通常 1 天內回覆
-
documentation
難度 2/5 1-3 小時 新手友好度 74/100
alunduil/alunduil-chezmoi#964 ·
維護者通常 1 天內回覆
-
bug-unconfirmed
難度 2/5 1-3 小時 新手友好度 64/100
維護者通常 1 天內回覆