CVE-2025-34336
Full vulnerability record from the local CVENow database.
Description
eGovFramework/egovframe-common-components versions up to and including 4.3.1 contain an unauthenticated file upload vulnerability via the /utl/wed/insertImage.do and /utl/wed/insertImageCk.do image upload endpoints. These controllers accept multipart requests without authentication, pass the uploaded content to a shared upload helper, and store the file on the server under a framework-controlled path. The framework then returns a download URL that can be used to retrieve the uploaded content, including an attacker-controlled Content-Type within the limits of the image upload functionality. While a filename extension whitelist is enforced, the attacker fully controls the file contents. The response MIME type used is also attacker-controlled when the file is served up to version < 4.1.2. Since version 4.1.2, it is possible to download any image uploaded with any whitelisted content type. But any file uploaded other than an image will be served with the `application/octet-stream` content type (the content type is no longer controlled by the attacker since version 4.1.2). This enables an unauthenticated attacker to use any affected application as a persistent file hosting service for arbitrary content under the application's origin. KISA/KrCERT has identified this unpatched vulnerability as "KVE-2023-5280."
View original CVE JSON
{
"id": "CVE-2025-34336",
"sourceIdentifier": "[email protected]",
"published": "2025-11-19T17:15:49.073",
"lastModified": "2026-10-23T23:10:00.157",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "eGovFramework/egovframe-common-components versions up to and including 4.3.1 contain an unauthenticated file upload vulnerability via the /utl/wed/insertImage.do and /utl/wed/insertImageCk.do image upload endpoints. These controllers accept multipart requests without authentication, pass the uploaded content to a shared upload helper, and store the file on the server under a framework-controlled path. The framework then returns a download URL that can be used to retrieve the uploaded content, including an attacker-controlled Content-Type within the limits of the image upload functionality. While a filename extension whitelist is enforced, the attacker fully controls the file contents. The response MIME type used is also attacker-controlled when the file is served up to version < 4.1.2. Since version 4.1.2, it is possible to download any image uploaded with any whitelisted content type. But any file uploaded other than an image will be served with the `application/octet-stream` content type (the content type is no longer controlled by the attacker since version 4.1.2). This enables an unauthenticated attacker to use any affected application as a persistent file hosting service for arbitrary content under the application's origin. KISA/KrCERT has identified this unpatched vulnerability as \"KVE-2023-5280.\""
},
{
"lang": "es",
"value": "Las versiones de eGovFramework/egovframe-common-components hasta e incluyendo la 4.3.1 contienen una vulnerabilidad de carga de archivos no autenticada a través de los endpoints de carga de imágenes /utl/wed/insertImage.do y /utl/wed/insertImageCk.do. Estos controladores aceptan solicitudes multipart sin autenticación, pasan el contenido cargado a un asistente de carga compartido y almacenan el archivo en el servidor bajo una ruta controlada por el framework. El framework luego devuelve una URL de descarga que puede usarse para recuperar el contenido cargado, incluyendo un Content-Type controlado por el atacante dentro de los límites de la funcionalidad de carga de imágenes. Si bien se aplica una lista blanca de extensiones de nombre de archivo, el atacante controla completamente el contenido del archivo. El tipo MIME de respuesta utilizado también es controlado por el atacante cuando el archivo se sirve hasta la versión anterior a 4.1.2. Desde la versión 4.1.2, es posible descargar cualquier imagen cargada con cualquier tipo de contenido en la lista blanca. Pero cualquier archivo cargado que no sea una imagen se servirá con el tipo de contenido 'application/octet-stream' (el tipo de contenido ya no es controlado por el atacante desde la versión 4.1.2). Esto permite a un atacante no autenticado usar cualquier aplicación afectada como un servicio de alojamiento de archivos persistente para contenido arbitrario bajo el origen de la aplicación. KISA/KrCERT ha identificado esta vulnerabilidad no parcheada como 'KVE-2023-5280'."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "eGovFramework/egovframe-common-components",
"product": "eGovFramework/egovframe-common-components",
"defaultStatus": "unknown",
"repo": "https://github.com/eGovFramework/egovframe-common-components",
"packageURL": "pkg:github/eGovFramework/egovframe-common-components",
"versions": [
{
"version": "0",
"lessThanOrEqual": "4.3.1",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "LOW",
"vulnIntegrityImpact": "LOW",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "LOW",
"subIntegrityImpact": "LOW",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "NOT_DEFINED",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "NOT_DEFINED",
"Recovery": "NOT_DEFINED",
"valueDensity": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED"
}
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2025-11-19T16:41:07.519228Z",
"id": "CVE-2025-34336",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-434"
}
]
}
],
"references": [
{
"url": "https://github.com/eGovFramework/egovframe-common-components",
"source": "[email protected]"
},
{
"url": "https://pierrekim.github.io/advisories/2025-egovframe.txt",
"source": "[email protected]"
},
{
"url": "https://pierrekim.github.io/blog/2025-11-20-egovframe-2-vulnerabilities.html",
"source": "[email protected]"
},
{
"url": "https://www.egovframe.go.kr/eng/sub.do?menuNo=2",
"source": "[email protected]"
},
{
"url": "https://www.vulncheck.com/advisories/egovframework-unauthenticated-file-upload-via-web-editor-image-upload-endpoints",
"source": "[email protected]"
}
]
}