{"api_version":"1","generated_at":"2026-06-13T23:30:40+00:00","cve":"CVE-2026-45013","urls":{"html":"https://cve.report/CVE-2026-45013","api":"https://cve.report/api/cve/CVE-2026-45013.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-45013","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-45013"},"summary":{"title":"Apostrophe has a Weak Password Recovery Mechanism for Forgotten Password and Improper Input Validation","description":"ApostropheCMS is an open-source Node.js content management system. Versions up to and including 4.29.0 have a password reset flow that constructs the reset URL using `req.hostname`, which is derived directly from the attacker-controlled HTTP `Host` header when `apos.baseUrl` is not explicitly configured. An unauthenticated attacker who knows a victim's email address can send a crafted reset request that causes the application to email the victim a reset link pointing to the attacker's domain. When the victim clicks the link, the valid reset token is delivered to the attacker, enabling full account takeover. As of time of publication, no known patched versions are available.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-06-12 21:16:22","updated_at":"2026-06-13 04:17:22"},"problem_types":["CWE-20","CWE-640","CWE-20 CWE-20: Improper Input Validation","CWE-640 CWE-640: Weak Password Recovery Mechanism for Forgotten Password"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"8.1","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","baseScore":8.1,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"8.1","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.1,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gf43-24g3-5hw2","name":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gf43-24g3-5hw2","refsource":"134c704f-9b21-4f2e-91b3-4a467353bcc0","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-45013","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-45013","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"apostrophecms","product":"apostrophe","version":"affected <= 4.29.0","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"45013","cve":"CVE-2026-45013","epss":"0.001400000","percentile":"0.340380000","score_date":"2026-06-12","updated_at":"2026-06-13 00:07:15"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-45013","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-06-13T03:36:29.567752Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-06-13T03:37:07.486Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"references":[{"tags":["exploit"],"url":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gf43-24g3-5hw2"}],"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"product":"apostrophe","vendor":"apostrophecms","versions":[{"status":"affected","version":"<= 4.29.0"}]}],"descriptions":[{"lang":"en","value":"ApostropheCMS is an open-source Node.js content management system. Versions up to and including 4.29.0 have a password reset flow that constructs the reset URL using `req.hostname`, which is derived directly from the attacker-controlled HTTP `Host` header when `apos.baseUrl` is not explicitly configured. An unauthenticated attacker who knows a victim's email address can send a crafted reset request that causes the application to email the victim a reset link pointing to the attacker's domain. When the victim clicks the link, the valid reset token is delivered to the attacker, enabling full account takeover. As of time of publication, no known patched versions are available."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.1,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","description":"CWE-20: Improper Input Validation","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-640","description":"CWE-640: Weak Password Recovery Mechanism for Forgotten Password","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-06-12T20:46:21.628Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gf43-24g3-5hw2","tags":["x_refsource_CONFIRM"],"url":"https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-gf43-24g3-5hw2"}],"source":{"advisory":"GHSA-gf43-24g3-5hw2","discovery":"UNKNOWN"},"title":"Apostrophe has a Weak Password Recovery Mechanism for Forgotten Password and Improper Input Validation"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-45013","datePublished":"2026-06-12T20:46:21.628Z","dateReserved":"2026-05-08T16:58:28.895Z","dateUpdated":"2026-06-13T03:37:07.486Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-06-12 21:16:22","lastModifiedDate":"2026-06-13 04:17:22","problem_types":["CWE-20","CWE-640","CWE-20 CWE-20: Improper Input Validation","CWE-640 CWE-640: Weak Password Recovery Mechanism for Forgotten Password"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","baseScore":8.1,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE"},"exploitabilityScore":2.8,"impactScore":5.2}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"45013","Ordinal":"1","Title":"Apostrophe has a Weak Password Recovery Mechanism for Forgotten ","CVE":"CVE-2026-45013","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"45013","Ordinal":"1","NoteData":"ApostropheCMS is an open-source Node.js content management system. Versions up to and including 4.29.0 have a password reset flow that constructs the reset URL using `req.hostname`, which is derived directly from the attacker-controlled HTTP `Host` header when `apos.baseUrl` is not explicitly configured. An unauthenticated attacker who knows a victim's email address can send a crafted reset request that causes the application to email the victim a reset link pointing to the attacker's domain. When the victim clicks the link, the valid reset token is delivered to the attacker, enabling full account takeover. As of time of publication, no known patched versions are available.","Type":"Description","Title":"Apostrophe has a Weak Password Recovery Mechanism for Forgotten "}]}}}