Crítica

CodeIgniter4 has a validation bypass when uploading file extensions via `ext_in` rule

  • Publicada: 11.06.2026
  • Actualizado: 11.10.2026 10:22

Impact

The ext_in upload validation rule checked the MIME-derived guessed extension instead of the client-provided filename extension. As a result, an uploaded file named shell.php containing GIF-like content could pass validation such as:

uploaded[avatar]|is_image[avatar]|mime_in[avatar,image/gif]|ext_in[avatar,gif]

because the detected MIME type maps to gif, even though the uploaded filename extension is php.

Applications are impacted if they:

  • accept user-controlled uploads,
  • rely on ext_in to validate the uploaded filename extension,
  • save uploaded files using the original client filename: $file->move($path),
  • store uploads in a web-accessible directory,
  • and allow PHP or other executable files to run from that directory.

In those conditions, this may lead to arbitrary code execution. The default application does not expose such an upload endpoint.

Patches

Upgrade to v4.7.3 or later.

Workarounds

  • Save uploads outside the public web root, preferably under writable/uploads
  • Use $file->store() or $file->move($path, $file->getRandomName()) instead of preserving the original filename
  • Disable script execution in any public upload directory
  • Manually verify the client filename extension before moving the file
  • Reject files when $file->getClientExtension() is not in the allowed list or does not match $file->guessExtension()

Resources

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de Composer codeigniter4/framework < 4.7.3 4.7.3

Referencias

Puntuación CVSS 9.8/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Debilidad (CWE)
CWE-434
Plataforma
Composer
Paquete
codeigniter4/framework
Publicada
11.06.2026
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-2gr4-ppc7-7mhx - CC BY 4.0

Historial de vulnerabilidades: codeigniter4/framework

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.

Todas (19) en el archivo
Entradas en total
19
Primera → última
01.2022 08.2026
Sin corrección
1
Explotada en ataques
0

Distribución por gravedad

  • Crítica 6
  • Alta 8
  • Media 4
  • Baja 1

Divulgaciones por año

  1. 2022: 9
  2. 2023: 2
  3. 2024: 1
  4. 2025: 2
  5. 2026: 5
Gravedad:
  1. CodeIgniter4 has a validation bypass when uploading file extensions via `ext_in` rule esta entrada
    Crítica · 9.8 CVE-2026-48062 < 4.7.3 4.7.3
  2. Crítica · 9.8 CVE-2025-54418 < 4.6.2 4.6.2
  3. Alta · 7.5 CVE-2024-29904 < 4.4.7 4.4.7
  4. Alta · 8.6 CVE-2022-46170 < 4.2.11 4.2.11
  5. Alta · 7.0 CVE-2022-23556 < 4.2.11 4.2.11
  6. Alta · 8.8 CVE-2020-10793 <= 4.0.0 sin corrección
  7. Alta · 7.5 CVE-2017-1000247 >= 3.1.3, < 3.1.4 3.1.4
  8. Crítica · 9.4 CVE-2022-24711 < 4.1.9 4.1.9
  9. Alta · 7.7 CVE-2022-21647 < 4.1.6 4.1.6

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.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.