EEF-CVE-2026-66353
Doggo vulnerable to cross-site scripting via unescaped date field values
Quick fix
EEF-CVE-2026-66353 — doggo: upgrade to the fixed version with the command below.
mix deps.update doggo Details
## Summary
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in woylie doggo allows Reflected XSS.
Doggo.normalize\_value/2 in lib/doggo.ex returned date field values wrapped in {:safe, ...}, the Phoenix.HTML marker meaning "already escaped, emit verbatim", without escaping them, so the value reached the value attribute of the <input> rendered by the field component unchanged. Any application rendering <.field type="date"> over user-controlled params is affected through the ordinary Phoenix form round-trip, where a failed validation re-renders the submitted value. The pattern kept exactly the first ten bytes and discarded shorter values, capping a payload at ten bytes: enough to terminate the attribute and open an element or attach a short event handler, not enough to place attacker-chosen script inline. Only type="date" is affected.
This issue affects doggo: from 0.1.0 before 0.14.8.
## Workaround
Either of these closes the hole without upgrading.
Use type="text" instead of type="date" for fields whose value can come from user-submitted params. The text branch delegates to Phoenix.HTML.Form.normalize\_value/2, which returns a bare string that HEEx then escapes.
Alternatively, pass an explicit value already validated as an ISO 8601 date rather than letting the component read it from the form field, so the value reaching the unescaped branch contains no metacharacters.
Are you affected?
Enter the version of the package you're using.