# CVE-2026-24687: Umbraco.Forms has path traversal and file enumeration vulnerability in Linux/Mac

> Authenticated backoffice users can traverse paths and read arbitrary files on Linux/Mac Umbraco installations via the export endpoint.

- **Severity:** Medium 6.0 (`CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 29 Jan 2026
- **Updated:** 29 Jan 2026
- **Also known as:** GHSA-hm5p-82g6-m3xh

## What is CVE-2026-24687?

CVE-2026-24687 is a medium-severity path traversal vulnerability in Umbraco.Forms.Issues, published on 29 Jan 2026. Any signed-in user can exploit it over the network, with no action from the victim.

### Official description

Umbraco Forms is a form builder that integrates with the Umbraco content management system. It's possible for an authenticated backoffice-user to enumerate and traverse paths/files on the systems filesystem and read their contents, on Mac/Linux Umbraco installations using Forms. As Umbraco Cloud runs in a Windows environment, Cloud users aren't affected. This issue affects versions 16 and 17 of Umbraco Forms and is patched in 16.4.1 and 17.1.1. If upgrading is not immediately possible, users can mitigate this vulnerability by configuring a WAF or reverse proxy to block requests containing path traversal sequences (`../`, `..\`) in the `fileName` parameter of the export endpoint, restricting network access to the Umbraco backoffice to trusted IP ranges, and/or blocking the `/umbraco/forms/api/v1/export` endpoint entirely if the export feature is not required. However, upgrading to the patched version is strongly recommended.

Weakness: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory)

## Which versions are affected by CVE-2026-24687?

4 open source packages ship an affected version, including Umbraco.Forms. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `Umbraco.Forms` | NuGet | From 16.0.0 | 16.4.1 |
| `Umbraco.Forms` | NuGet | From 16.0.0 | 16.4.1 |
| `Umbraco.Forms` | NuGet | From 17.0.0 | 17.1.1 |
| `Umbraco.Forms` | NuGet | From 17.0.0 | 17.1.1 |

Products: Umbraco Umbraco Forms.

## How do I fix CVE-2026-24687?

Upgrade Umbraco.Forms to a fixed version for your release line: 16.4.1 or 17.1.1.

## Is CVE-2026-24687 being exploited?

There is no known exploitation of CVE-2026-24687 in the wild and no public exploit code.

## Other vulnerabilities in Umbraco.Forms.Issues

- [CVE-2021-33224](https://insights.sbomify.com/CVE-2021-33224/): File upload in n/a (critical 9.8)
- [CVE-2025-68924](https://insights.sbomify.com/CVE-2025-68924/): UmbracoForms Vulnerable to Remote Code Execution via Untrusted WSDL Compilation in Dynamic SOAP Client Generation (high 7.5)
- [CVE-2025-23041](https://insights.sbomify.com/CVE-2025-23041/): Short and Long Answer Fields Are Not Validated Server-Side For Maximum Length in Umbraco.Forms (medium 5.8)
- [CVE-2020-7685](https://insights.sbomify.com/CVE-2020-7685/): Insecure Defaults (medium 5.4)
- [CVE-2024-35239](https://insights.sbomify.com/CVE-2024-35239/): Stored Cross-site Scripting on Components of Umbraco Forms (low 2.7)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-24687 and fix it if it is affected.

What it is: CVE-2026-24687 is a medium-severity path traversal vulnerability in Umbraco.Forms.Issues, published on 29 Jan 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-24687 in the wild and no public exploit code.

Affected packages and fixed versions:
- Umbraco.Forms (NuGet): affected from 16.0.0; fixed in 16.4.1
- Umbraco.Forms (NuGet): affected from 16.0.0; fixed in 16.4.1
- Umbraco.Forms (NuGet): affected from 17.0.0; fixed in 17.1.1
- Umbraco.Forms (NuGet): affected from 17.0.0; fixed in 17.1.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-24687/ (Markdown: https://insights.sbomify.com/CVE-2026-24687/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-24687
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-24687
- OSV: https://osv.dev/vulnerability/CVE-2026-24687

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-24687/
Summaries are generated and may contain mistakes; the official description above is the record.
