Potential information disclosure: runtime Laravel log accessible without authentication in a Docker deployment
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- apache, docker, laravel, php
- Área
- infrastructure, security
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Shell
- Estrellas
- 527
- Forks
- 72
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de LinkStackOrg/linkstack-docker
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LinkStackOrg/linkstack-docker#170 · 14 comentarios · 10 reacciones ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
LinkStackOrg/linkstack-docker#166 ·
-
Volume path overlap with existing paths inside imagePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 52/100
LinkStackOrg/linkstack-docker#162 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 57/100
LinkStackOrg/linkstack-docker#161 · 1 comentario ·
-
github package out of dateAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
LinkStackOrg/linkstack-docker#160 · 3 comentarios ·
Todos los issues de LinkStackOrg/linkstack-docker
Issues similares
-
bug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
[pico][astrocade] emu/apply.sh edits src/mame/midway/astrohome.cpp, which current MAME has in bally/Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
FujiNetWIFI/fujinet-firmware#2120 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
area:terraform priority:low source:reader type:enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
stephrobert/blog-roadmap#104 ·