{"affected":[{"package":{"ecosystem":"Hex","name":"doggo","purl":"pkg:hex/doggo"},"ranges":[{"events":[{"introduced":"0.1.0"},{"fixed":"0.14.8"}],"type":"SEMVER"}],"versions":["0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.2.0","0.2.1","0.3.0","0.3.1","0.4.0","0.5.0","0.6.0","0.7.0","0.8.0","0.8.1","0.8.2","0.9.0","0.9.1","0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.10.6","0.10.7","0.10.8","0.11.0","0.12.0","0.13.0","0.13.1","0.13.2","0.13.3","0.14.0","0.14.1","0.14.2","0.14.3","0.14.4","0.14.5","0.14.6","0.14.7"]},{"ranges":[{"events":[{"introduced":"ae65fed72982ec97f95af931686c627b19c2b58d"},{"fixed":"0161c976a114a4a4faee22d599b3fd5f147fc443"}],"repo":"https://github.com/woylie/doggo","type":"GIT"}]}],"aliases":["GHSA-w9rp-cf93-86pj","CVE-2026-66353"],"credits":[{"name":"Mathias Polligkeit","type":"REMEDIATION_DEVELOPER"},{"name":"Jonatan Männchen / EEF","type":"COORDINATOR"}],"database_specific":{"capec_ids":["CAPEC-591"],"cpe_ids":["cpe:2.3:a:woylie:doggo:*:*:*:*:*:*:*:*"],"cwe_ids":["CWE-79"]},"details":"## Summary\n\nImproper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in woylie doggo allows Reflected XSS.\n\nDoggo.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.\n\nThis issue affects doggo: from 0.1.0 before 0.14.8.\n\n## Workaround\n\nEither of these closes the hole without upgrading.\n\nUse 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.\n\nAlternatively, 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.","id":"EEF-CVE-2026-66353","modified":"2026-08-27T16:44:59.945347Z","published":"2026-08-27T16:44:59.553Z","references":[{"type":"ADVISORY","url":"https://github.com/woylie/doggo/security/advisories/GHSA-w9rp-cf93-86pj"},{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-66353.html"},{"type":"FIX","url":"https://github.com/woylie/doggo/commit/0161c976a114a4a4faee22d599b3fd5f147fc443"},{"type":"PACKAGE","url":"https://hex.pm/packages/doggo"}],"related":[],"schema_version":"1.7.3","severity":[{"score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","type":"CVSS_V4"}],"summary":"Doggo vulnerable to cross-site scripting via unescaped date field values","upstream":[]}