Potential information disclosure: runtime Laravel log accessible without authentication in a Docker deployment
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- apache, docker, laravel, php
- Ambito
- infrastructure, security
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Shell
- Stelle
- 527
- Fork
- 72
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di LinkStackOrg/linkstack-docker
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
LinkStackOrg/linkstack-docker#170 · 17 commenti · 11 reazioni ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
LinkStackOrg/linkstack-docker#166 ·
-
Volume path overlap with existing paths inside imageForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 1-2 giorni Idoneità per principianti 52/100
LinkStackOrg/linkstack-docker#162 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 57/100
LinkStackOrg/linkstack-docker#161 · 1 commento ·
-
github package out of dateAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
LinkStackOrg/linkstack-docker#160 · 3 commenti ·
Tutte le issue di LinkStackOrg/linkstack-docker
Issue simili
-
level/task type/enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
wazuh/wazuh-installation-assistant#1177 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
ComputeCanada/puppet-magic_castle#634 ·
I maintainer di solito rispondono entro 1 giorno
-
source:reader type:enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
stephrobert/blog-roadmap#115 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
pi-hole/docker-pi-hole#2087 ·
-
Python Volcengine provider returns failures instead of raising themForse già presa @Ricardo-M-L l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
agent-infra/sandbox#248 ·