CVE-2026-48796 is a medium-severity (CVSS 5.3) Path Traversal vulnerability in CefSharp.Common. A fix is available for CefSharp.Common — see the affected versions and patch details below.
CefSharp: `FolderSchemeHandlerFactory` path boundary check can expose files outside the configured root folder
Exploitation Status
No confirmed exploitation observed yet
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2026-48796.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
CVE-2026-48796 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 394,803 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
CefSharp.CommonReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects NuGet packages — download data is not available via public APIs for these ecosystems.
Description
Summary
FolderSchemeHandlerFactory was intended to restrict served files to a configured rootFolder, but its path validation used a raw string prefix check. A request could escape to a sibling directory whose full path starts with the root folder path, allowing files outside the configured root to be served.
Details
In affected versions, FolderSchemeHandlerFactory canonicalized rootFolder, decoded the request path, combined it with the root, and then allowed the file when:
filePath.StartsWith(rootFolder, StringComparison.OrdinalIgnoreCase)
This does not enforce a directory boundary. For example, /tmp/app/www2/secret.txt starts with /tmp/app/www, but www2 is a sibling of www, not a child. The same issue applies on Windows, for example C:\app\www2\secret.txt starts with C:\app\www.
The affected code was reviewed at commit b5fef3bb4bc58798c95170078c41de92cfe9066e, assembly version 147.0.100.
PoC
Set rootFolder to a directory named www and create a sibling directory named www2:
<temp>/www/index.html
<temp>/www2/secret.txt
Register FolderSchemeHandlerFactory for <temp>/www, then request:
https://folderschemehandlerfactory.test/..%2fwww2/secret.txt
The request path is URL-decoded to ../www2/secret.txt, combined with <temp>/www, and canonicalized to:
<temp>/www2/secret.txt
Because <temp>/www2/secret.txt starts with <temp>/www as a string prefix, the affected check passes and secret.txt is served from outside rootFolder.
Expected vulnerable result: HTTP 200 with the contents of <temp>/www2/secret.txt.
Expected fixed result: 404 or equivalent not-found response because the resolved file is outside rootFolder.
Impact
Applications using FolderSchemeHandlerFactory for a custom scheme or registered HTTP/HTTPS scheme may expose local files outside the intended served directory. This is most relevant when sensitive sibling directories share the root path prefix, such as www/www2, public/public_backup, or static/static-secrets.
An attacker must be able to cause the embedded browser to request URLs handled by the affected scheme registration.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| .NETNuGet | CefSharp.Common | all versions | 148.0.90dotnet add package CefSharp.Common --version 148.0.90 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for CefSharp.Common, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update CefSharp.Common to 148.0.90 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-48796 is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
Frequently Asked Questions
Is CVE-2026-48796 in your dependencies?
Find it across NuGet, including transitive dependencies.