]=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.\n\nBoth 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.\n\nThis issue affects oaskit: from 0.1.0 before 0.14.1.","url":"https://shellcodex.com/cves/CVE-2026-66296","datePublished":"2026-08-03T20:17:25+00:00","dateModified":"2026-08-03T20:17:25+00:00","inLanguage":"en","isAccessibleForFree":true,"mainEntityOfPage":{"@type":"WebPage","@id":"https://shellcodex.com/cves/CVE-2026-66296"},"about":{"@type":"Thing","name":"CVE-2026-66296","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.\n\nOaskit.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.\n\nBecause 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[]=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.\n\nBoth 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.\n\nThis issue affects oaskit: from 0.1.0 before 0.14.1.","sameAs":"https://nvd.nist.gov/vuln/detail/CVE-2026-66296"},"isBasedOn":"https://nvd.nist.gov/vuln/detail/CVE-2026-66296","citation":["https://nvd.nist.gov/vuln/detail/CVE-2026-66296","https://cna.erlef.org/cves/CVE-2026-66296.html","https://github.com/lud/oaskit/commit/b70c6b2eaf0b11bdd0bbb21b8a87dbb3d46918a1","https://github.com/lud/oaskit/security/advisories/GHSA-h7xw-x8wr-xpcc","https://osv.dev/vulnerability/EEF-CVE-2026-66296"],"author":{"@type":"Organization","name":"ShellCodeX Intelligence","url":"https://shellcodex.com"},"publisher":{"@type":"Organization","name":"ShellCodeX","url":"https://shellcodex.com","logo":{"@type":"ImageObject","url":"https://shellcodex.com/settings/icons/1782429652_header.png"}}}
ShellCodeX
Tools • Events • News • Insights
ShellCodeX vulnerability brief
MEDIUM Received

CVE-2026-66296

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.

Published 03 Aug 2026, 20:17 UTC Last modified 03 Aug 2026, 20:17 UTC
01

Attack profile

The conditions required to exploit this vulnerability and its potential impact.

Attack vector Network
Attack complexity Low
Privileges required None
User interaction Active
Scope Not assessed
Confidentiality Not assessed
Integrity Not assessed
Availability Not assessed
02

Affected products

Product applicability statements supplied with the NVD record.

NVD has not published structured affected-product data for this record.
03

Weakness classification

CWE categories help security teams group the underlying software weakness.

04

Source references

External advisories, patches and technical reports attached to this CVE record.