CVE-2022-39207
Persistent XSS in OneDev
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
Onedev is an open source, self-hosted Git Server with CI/CD and Kanban. During CI/CD builds, it is possible to save build artifacts for later retrieval. They can be accessed through OneDev's web UI after the successful run of a build. These artifact files are served by the webserver in the same context as the UI without any further restrictions. This leads to Cross-Site Scripting (XSS) when a user creates a build artifact that contains HTML. When accessing the artifact, the content is rendered by the browser, including any JavaScript that it contains. Since all cookies (except for the rememberMe one) do not set the HttpOnly flag, an attacker could steal the session of a victim and use it to impersonate them. To exploit this issue, attackers need to be able to modify the content of artifacts, which usually means they need to be able to modify a project's build spec. The exploitation requires the victim to click on an attacker's link. It can be used to elevate privileges by targeting admins of a OneDev instance. In the worst case, this can lead to arbitrary code execution on the server, because admins can create Server Shell Executors and use them to run any command on the server. This issue has been patched in version 7.3.0. Users are advised to upgrade. There are no known workarounds for this issue.
Onedev es un servidor Git de código abierto, auto-alojado con CI/CD y Kanban. Durante las construcciones CI/CD, es posible guardar los artefactos de construcción para su posterior recuperación. Puede accederse a ellos mediante la interfaz web de OneDev después de una ejecución con éxito de una construcción. Estos archivos de artefactos son servidos por el servidor web en el mismo contexto que la Interfaz de Usuario sin más restricciones. Esto conlleva a un ataque de tipo Cross-Site Scripting (XSS) cuando un usuario crea un artefacto de construcción que contiene HTML. Cuando es accedido al artefacto, el contenido es renderizado por el navegador, incluyendo cualquier JavaScript que contenga. Como todas las cookies (excepto la de RememberMe) no establecen el flag HttpOnly, un atacante podría robar la sesión de una víctima y usarla para suplantar su identidad. Para explotar este problema, los atacantes deben ser capaces de modificar el contenido de los artefactos, lo que normalmente significa que deben ser capaces de modificar las especificaciones de construcción de un proyecto. La explotación requiere que la víctima haga clic en un enlace del atacante. Puede usarse para elevar los privilegios al dirigirse a administradores de una instancia de OneDev. En el peor de los casos, esto puede conllevar a una ejecución de código arbitrario en el servidor, ya que los administradores pueden crear ejecutores de shell de servidor y usarlos para ejecutar cualquier comando en el servidor. Este problema ha sido parcheado en versión 7.3.0. Es recomendado a usuarios actualizar. No se presentan mitigaciones conocidas para este problema
CVSS Scores
SSVC
- Decision:-
Timeline
- 2022-09-02 CVE Reserved
- 2022-09-13 CVE Published
- 2024-06-02 EPSS Updated
- 2024-08-03 CVE Updated
- 2024-08-03 First Exploit
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CWE-732: Incorrect Permission Assignment for Critical Resource
CAPEC
References (3)
URL | Tag | Source |
---|---|---|
https://github.com/theonedev/onedev/security/advisories/GHSA-27fw-gv88-qrpg | Third Party Advisory |
URL | Date | SRC |
---|---|---|
https://blog.sonarsource.com/onedev-remote-code-execution | 2024-08-03 |
URL | Date | SRC |
---|---|---|
https://github.com/theonedev/onedev/commit/adb6e31476621f824fc3227a695232df830d83ab | 2023-07-13 |
URL | Date | SRC |
---|
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Onedev Project Search vendor "Onedev Project" | Onedev Search vendor "Onedev Project" for product "Onedev" | < 7.3.0 Search vendor "Onedev Project" for product "Onedev" and version " < 7.3.0" | - |
Affected
|