VDB

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.

Affected packages

Hex / doggo
Introduced in: 0.1.0 Fixed in: 0.14.8
Fix mix deps.update doggo

References