CVE-2026-66296 Details
Description
Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in lud oaskit allows reflected cross-site scripting via the default HTML error handler. Oaskit.ErrorHandler.Default.format_reason/4 and Oaskit.ErrorHandler.Default.reason_to_html/1 in lib/oaskit/error_handler/default.ex render request-validation failures as an HTML page whenever the request's Accept header contains html, interpolating request-controlled strings into that page without HTML escaping. The unescaped values are object keys taken from a request body or from an object or deepObject query parameter, which appear in the JSON Schema error's instance path when a schema rejects them (for example under additionalProperties: false), and the raw Content-Type header, reflected in unsupported-media-type errors when it fails to parse. Because browsers send Accept: text/html on ordinary top-level navigation, a crafted GET link is sufficient to trigger the error page; no form submission, custom Content-Type, or attacker-controlled script on the victim's side is required. A payload such as filter[</code></h2><script>alert(document.domain)</script>]=x terminates the enclosing markup and the injected script executes in the origin of the application using oaskit, giving it access to that origin's cookies, session, and same-origin responses. Both HTML error rendering and the vulnerable handler are enabled by default: Oaskit.Plugs.ValidateRequest defaults :html_errors to true and :error_handler to Oaskit.ErrorHandler.Default, so applications following the documented usage are affected without any opt-in. This issue affects oaskit: from 0.1.0 before 0.14.1.
A reflected cross-site scripting vulnerability has been identified in the Oaskit library, specifically in versions 0.1.0 prior to 0.14.1. The issue arises in the default HTML error handler, which improperly neutralizes input during web page generation. When a request's Accept header includes 'html', the error handler renders validation failures as an HTML page. This rendering process interpolates request-controlled strings into the page without proper HTML escaping. The unescaped values can include object keys from the request body or from 'deepObject' query parameters, as well as the raw Content-Type header when it fails to parse. As a result, an attacker can inject malicious scripts that are executed in the context of the application, potentially compromising cookies, session information, and same-origin responses.
Users can upgrade to Oaskit version 0.14.1 or later, where this vulnerability has been fixed. Alternatively, if an immediate upgrade is not possible, HTML error rendering can be disabled by setting 'html_errors' to false in the Oaskit validation request plug. This will ensure that validation errors are returned as JSON, preventing the vulnerable HTML error page from being displayed.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Aug 3, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/lud/oaskit/security/advisories/GHSA-h7xw-x8wr-xpcc | CISA-ADP | ExploitVendor Advisory |
| https://cna.erlef.org/cves/CVE-2026-66296.html | EEF | PatchThird Party Advisory |
| https://github.com/lud/oaskit/commit/b70c6b2eaf0b11bdd0bbb21b8a87dbb3d46918a1 | EEF | Patch |
| https://github.com/lud/oaskit/security/advisories/GHSA-h7xw-x8wr-xpcc | EEF | ExploitVendor Advisory |
| https://osv.dev/vulnerability/EEF-CVE-2026-66296 | EEF | PatchThird Party Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-79 | Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') | EEF |
Affected Products
| Product | Versions |
|---|---|
| lud oaskit | >= 0.1.0, < 0.14.1 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Aug 17, 2026 | Initial Analysis | [email protected] |
| Aug 3, 2026 | New CVE Received | EEF |
| Aug 3, 2026 | CVE Modified | CISA-ADP |