Automad Broken Access Control: unauthenticated exposure of administrator bcrypt password hashes and TOTP secrets via public API endpoint
Automad is a flat-file content management system and template engine. From 2.0.0-alpha.1 to 2.0.0-beta.27, a Broken Access Control vulnerability allows an unauthenticated attacker to retrieve the bcrypt password hash of every administrator account with a single POST request. The /_api/user-collection/create-first-user setup endpoint remains publicly accessible once initial configuration is complete and returns full serialized user data in the JSON response body. This vulnerability is fixed in 2.0.0-beta.28.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-45332
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 02:45 UTC · Revision 1
Source evidence
Automad Broken Access Control: unauthenticated exposure of administrator bcrypt password hashes and TOTP secrets via public API endpoint
core-osv · Original sourcePublished 28 May 2026, 18:22 UTC
Automad is a flat-file content management system and template engine. From 2.0.0-alpha.1 to 2.0.0-beta.27, a Broken Access Control vulnerability allows an unauthenticated attacker to retrieve the bcrypt password hash of every administrator account with a single POST request. The /_api/user-collection/create-first-user setup endpoint remains publicly accessible once initial configuration is complete and returns full serialized user data in the JSON response body. This vulnerability is fixed in 2.0.0-beta.28.
osv:CVE-2026-45332
Complete source record
{
"id": "a2a3b5a15482e22e463b4bfaca46eabe14fb87130cf609f70d730dc6c43c9621",
"url": "https://osv.dev/vulnerability/CVE-2026-45332",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Automad Broken Access Control: unauthenticated exposure of administrator bcrypt password hashes and TOTP secrets via public API endpoint",
"summary": "Automad is a flat-file content management system and template engine. From 2.0.0-alpha.1 to 2.0.0-beta.27, a Broken Access Control vulnerability allows an unauthenticated attacker to retrieve the bcrypt password hash of every administrator account with a single POST request. The /_api/user-collection/create-first-user setup endpoint remains publicly accessible once initial configuration is complete and returns full serialized user data in the JSON response body. This vulnerability is fixed in 2.0.0-beta.28.",
"evidence": "osv:CVE-2026-45332",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-45332",
"aliases": [
"CVE-2026-45332",
"GHSA-xm76-r88j-vm3g"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/marcantondahmen/automad",
"type": "GIT",
"events": [
{
"introduced": "46ba17b955e9905c79a07b3673af40f1c4c30f71"
},
{
"fixed": "a8d385b6fe4a97ae6014d7651b063df6cee7f126"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "2.0.0-alpha.1"
},
{
"fixed": "2.0.0-beta.28"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "2.0.0-beta.28"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"2.0.0-beta.27",
"2.0.0-beta.26",
"2.0.0-beta.25",
"2.0.0-beta.24",
"2.0.0-beta.23",
"2.0.0-beta.22",
"2.0.0-beta.21",
"2.0.0-beta.20",
"2.0.0-beta.19",
"2.0.0-beta.18",
"2.0.0-beta.17",
"2.0.0-beta.16",
"2.0.0-beta.15",
"2.0.0-beta.14",
"2.0.0-beta.13",
"2.0.0-beta.12",
"2.0.0-beta.11",
"2.0.0-beta.10",
"2.0.0-beta.9",
"2.0.0-beta.8",
"2.0.0-beta.7",
"2.0.0-beta.6",
"2.0.0-beta.5",
"2.0.0-beta.4",
"2.0.0-beta.3",
"2.0.0-beta.2",
"2.0.0-beta.1",
"2.0.0-alpha.53",
"2.0.0-alpha.52",
"2.0.0-alpha.51",
"2.0.0-alpha.50",
"2.0.0-alpha.49",
"2.0.0-alpha.48",
"2.0.0-alpha.47",
"2.0.0-alpha.46",
"2.0.0-alpha.45",
"2.0.0-alpha.44",
"2.0.0-alpha.43",
"2.0.0-alpha.42",
"2.0.0-alpha.41",
"2.0.0-alpha.40",
"2.0.0-alpha.39",
"2.0.0-alpha.38",
"2.0.0-alpha.37",
"2.0.0-alpha.36",
"2.0.0-alpha.35",
"2.0.0-alpha.34",
"2.0.0-alpha.33",
"2.0.0-alpha.32",
"2.0.0-alpha.31",
"2.0.0-alpha.30",
"2.0.0-alpha.29",
"2.0.0-alpha.28",
"2.0.0-alpha.27",
"2.0.0-alpha.26",
"2.0.0-alpha.25",
"2.0.0-alpha.24",
"2.0.0-alpha.23",
"2.0.0-alpha.22",
"2.0.0-alpha.21",
"2.0.0-alpha.20",
"2.0.0-alpha.19",
"2.0.0-alpha.18",
"2.0.0-alpha.17",
"2.0.0-alpha.16",
"2.0.0-alpha.15",
"2.0.0-alpha.14",
"2.0.0-alpha.13",
"2.0.0-alpha.12",
"2.0.0-alpha.11",
"2.0.0-alpha.10",
"2.0.0-alpha.9",
"2.0.0-alpha.8",
"2.0.0-alpha.7",
"2.0.0-alpha.6",
"2.0.0-alpha.5",
"2.0.0-alpha.4",
"2.0.0-alpha.3",
"2.0.0-alpha.2",
"2.0.0-alpha.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45332.json"
}
}
],
"modified": "2026-10-28T02:30:25.472802947Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45332.json",
"https://github.com/marcantondahmen/automad/security/advisories/GHSA-xm76-r88j-vm3g",
"https://nvd.nist.gov/vuln/detail/CVE-2026-45332"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200",
"CWE-306"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45332.json"
}
},
"related_cves": [
{
"value": "CVE-2026-45332",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491964,
"published_at": "2026-05-28T18:22:11.883+00:00"
}