WWBN AVideo's GIF poster fetch bypasses traversal scrubbing and exposes local files through public media URLs
Summary
objects/aVideoEncoderReceiveImage.json.php allowed an authenticated uploader to fetch attacker-controlled same-origin /videos/... URLs, bypass traversal scrubbing, and expose server-local files through the GIF poster storage path.
The vulnerable GIF branch could be abused to read local files such as /etc/passwd or application source files and republish those bytes through a normal public GIF media URL.
Details
The vulnerable chain was:
objects/aVideoEncoderReceiveImage.json.phpaccepted attacker-controlleddownloadURL_gifimage- traversal scrubbing used
str_replace('../', '', ...), which was bypassable with overlapping input such as....// - same-origin
/videos/...URLs were accepted url_get_contents()andtry_get_contents_from_local()resolved the request into a local filesystem read- the fetched bytes were written into the GIF destination
- invalid GIF cleanup used the wrong variable, so the non-image payload remained on disk
This made the GIF poster path a local file disclosure primitive with public retrieval.
Proof of concept
- Log in as an uploader and create an owned video row through the normal encoder flow.
- Send:
POST /objects/aVideoEncoderReceiveImage.json.php
downloadURL_gifimage=https://localhost/videos/....//....//....//....//....//....//etc/passwd
- Query:
GET /objects/videos.json.php?showAll=1
- Recover the generated GIF URL from
videosURL.gif.url. - Download that GIF URL.
- Observe that the body matches the target local file, such as
/etc/passwd, byte-for-byte.
Impact
An authenticated uploader can read server-local files and republish them through a public GIF media URL by supplying a crafted same-origin /videos/... path to downloadURL_gifimage. Because traversal scrubbing was bypassable and the fetched bytes were written to the GIF destination without effective invalid-image cleanup, successful exploitation allows disclosure of files such as /etc/passwd, readable application source code, or deployment-specific configuration accessible to the application.
Recommended fix
- Reject any remote image URL whose decoded path contains traversal markers
- Do not allow attacker-controlled same-origin
/videos/...fetches to resolve into local file reads - Constrain any local shortcut path handling with
realpath()and strict base-directory allowlists - Validate GIF content before saving it into public media storage
- Ensure invalid-image cleanup checks the correct destination path
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Paquete de Composer | WWBN/AVideo | <= 26.0 | sin corrección |
Referencias
- Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L- Debilidad (CWE)
CWE-22- Plataforma
- Composer
- Paquete
WWBN/AVideo- Publicada
- 08.04.2026
- Actualizado
- 11.10.2026 10:22
Fuentes y licencias
OSV / GitHub Advisory Database - GHSA-f4f9-627c-jh33 - CC BY 4.0
Historial de vulnerabilidades: WWBN/AVideo
Todas las vulnerabilidades publicadas de este paquete (Paquete de Composer), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 160
- Primera → última
- 04.2022 06.2026
- Sin corrección
- 143
- Explotada en ataques
- 0
Distribución por gravedad
- Crítica 14
- Alta 61
- Media 83
- Baja 2
Divulgaciones por año
- 2022: 2
- 2023: 5
- 2024: 5
- 2025: 0
- 2026: 148
-
WWBN AVideo's GIF poster fetch bypasses traversal scrubbing and exposes local files through public media URLs esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.