BookStack < 26.05.4 Broken Access Control via Image Gallery API
BookStack before 26.05.4 contains a broken access control vulnerability that allows authenticated API users with image-update or image-delete permissions to manipulate other users' avatars by exploiting missing content-type restrictions in the Image Gallery API endpoints. Attackers can supply a user avatar's ID to the API controller, which loads any image type without the web controller's gallery and drawio restrictions, and when the avatar's uploaded_to field matches a page ID accessible to the attacker, the authorization check passes allowing the attacker to rename, replace, or delete the target user's avatar without requiring user-management permission.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-67204
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 13:57 UTC · Revision 1
Source evidence
BookStack < 26.05.4 Broken Access Control via Image Gallery API
core-osv · Original sourcePublished 24 Aug 2026, 15:33 UTC
BookStack before 26.05.4 contains a broken access control vulnerability that allows authenticated API users with image-update or image-delete permissions to manipulate other users' avatars by exploiting missing content-type restrictions in the Image Gallery API endpoints. Attackers can supply a user avatar's ID to the API controller, which loads any image type without the web controller's gallery and drawio restrictions, and when the avatar's uploaded_to field matches a page ID accessible to the attacker, the authorization check passes allowing the attacker to rename, replace, or delete the target user's avatar without requiring user-management permission.
osv:CVE-2026-67204
Complete source record
{
"id": "78f871a7d972867188665c2736fc73f20cd1e4808d6fc218a3c508a025bd9750",
"url": "https://osv.dev/vulnerability/CVE-2026-67204",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "BookStack < 26.05.4 Broken Access Control via Image Gallery API",
"summary": "BookStack before 26.05.4 contains a broken access control vulnerability that allows authenticated API users with image-update or image-delete permissions to manipulate other users' avatars by exploiting missing content-type restrictions in the Image Gallery API endpoints. Attackers can supply a user avatar's ID to the API controller, which loads any image type without the web controller's gallery and drawio restrictions, and when the avatar's uploaded_to field matches a page ID accessible to the attacker, the authorization check passes allowing the attacker to rename, replace, or delete the target user's avatar without requiring user-management permission.",
"evidence": "osv:CVE-2026-67204",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-67204",
"aliases": [
"CVE-2026-67204"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/bookstackapp/bookstack",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "cec78b1bcf096a74bf0a79fae3f884dc1d0803e4"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "26.05.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "cec78b1bcf096a74bf0a79fae3f884dc1d0803e4"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v26.05.4"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "26.05.4"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"v26.05.3",
"v26.05.2",
"v26.05.1",
"v26.05",
"v26.03.5",
"v26.03.4",
"v26.03.3",
"v26.03.2",
"v26.03.1",
"v26.03",
"v25.12.9",
"v25.12.8",
"v25.12.7",
"v25.12.6",
"v25.12.5",
"v25.12.4",
"v25.12.3",
"v25.12.2",
"v25.12.1",
"v25.12",
"v25.11.6",
"v25.11.5",
"v25.11.4",
"v24.11.4",
"v25.11.3",
"v25.11.2",
"v25.11.1",
"v25.11",
"v25.07.3",
"v25.07.2",
"v25.07.1",
"v25.07",
"v25.05.2",
"v25.05.1",
"v25.05",
"v25.02.5",
"v25.02.4",
"v25.02.3",
"v25.02.2",
"v25.02.1",
"v25.02",
"v24.12.1",
"v24.12",
"v24.10.3",
"v24.10.2",
"v24.10.1",
"v24.10",
"v24.05.4",
"v24.05.3",
"v24.05.2",
"v24.05.1",
"v24.05",
"v24.02.3",
"v24.02.2",
"v24.02.1",
"v24.02",
"v23.12.3",
"v23.12.2",
"v23.12.1",
"v23.12",
"v23.10.4",
"v23.10.3",
"v23.10.2",
"v23.10.1",
"v23.10",
"v23.08.3",
"v23.08.2",
"v23.08.1",
"v23.08",
"v23.06.2",
"v23.06.1",
"v23.06",
"v23.05.2",
"v23.05.1",
"v23.05",
"v23.02.3",
"v23.02.2",
"v23.02.1",
"v23.02",
"v23.01.1",
"v23.01",
"v22.11.1",
"v22.11",
"v22.10.2",
"v22.10.1",
"v22.10",
"v22.09.1",
"v22.09",
"v22.07.3",
"v22.07.2",
"v22.07.1",
"v22.07",
"v22.06.2",
"v22.06.1",
"v22.06",
"v22.04.2",
"v22.04.1",
"v22.04",
"v22.03.1",
"v22.03",
"v22.02.3",
"v22.02.2",
"v22.02.1",
"v22.02",
"v21.12.5",
"v21.12.4",
"v21.12.3",
"v21.12.2",
"v21.12.1",
"v21.12",
"v21.11.3",
"v21.11.2",
"v21.11.1",
"v21.11",
"v21.10.3",
"v21.10.2",
"v21.10.1",
"v21.10",
"v21.08.6",
"v21.08.5",
"v21.08.4",
"v21.08.3",
"v21.08.2",
"v21.08.1",
"v21.08",
"v21.05.4",
"v21.05.3",
"v21.05.2",
"v21.05.1",
"v21.05",
"v21.04.6",
"v21.04.5",
"v21.04.4",
"v21.04.3",
"v21.04.2",
"v21.04.1",
"v21.04",
"v0.31.8",
"v0.31.7",
"v0.31.6",
"v0.31.5",
"v0.31.4",
"v0.31.3",
"v0.31.2",
"v0.31.1",
"v0.31.0",
"v0.30.7",
"v0.30.6",
"v0.30.5",
"v0.30.4",
"v0.30.3",
"v0.30.2",
"v0.30.1",
"v0.30.0",
"v0.29.3",
"v0.29.2",
"v0.29.1",
"v0.29.0",
"v0.28.3",
"v0.28.2",
"v0.28.1",
"v0.28.0",
"v0.27.5",
"v0.27.4",
"v0.27.3",
"v0.27.2",
"v0.27.1",
"v0.27",
"v0.26.4",
"v0.26.3",
"v0.26.2",
"v0.26.1",
"v0.26.0",
"v0.25.5",
"v0.25.4",
"v0.25.3",
"v0.25.2",
"v0.25.1",
"v0.25.0",
"v0.24.3",
"v0.24.2",
"v0.24.1",
"v0.24.0",
"v0.23.2",
"v0.23.1",
"v0.23.0",
"v0.22.0",
"v0.21.0",
"v0.20.3",
"v0.20.2",
"v0.20.1",
"v0.20.0",
"v0.19.0",
"v0.18.5",
"v0.18.4",
"v0.18.3",
"v0.18.2",
"v0.18.1",
"v0.18.0",
"v0.17.4",
"v0.17.3",
"v0.17.2",
"v0.17.1",
"v0.17.0",
"v0.16.3",
"v0.16.2",
"v0.16.1",
"v0.16.0",
"v0.15.3",
"v0.15.2",
"v0.15.1",
"v0.15.0",
"v0.14.3",
"v0.14.2",
"v0.14.1",
"v0.14.0",
"v0.13.1",
"v0.13.0",
"v0.12.2",
"v0.12.1",
"v0.12.0",
"v0.11.2",
"v0.11.1",
"v0.11.0",
"v0.10.0",
"v0.9.3",
"v0.9.2",
"v0.9.1",
"v0.9.0",
"v0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.6",
"v0.7.5",
"v0.7.4",
"v0.7.3",
"0.7.2",
"v.0.7.1",
"v0.7.0",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.6.0",
"v0.5.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-67204.json"
}
}
],
"modified": "2026-10-28T02:30:35.906122199Z",
"provider": "osv",
"references": [
"https://codeberg.org/bookstack/bookstack/releases/tag/v26.05.4",
"https://github.com/BookStackApp/BookStack/releases/tag/v26.05.4",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/67xxx/CVE-2026-67204.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-67204",
"https://www.bookstackapp.com/blog/bookstack-release-v26-05-4/",
"https://www.vulncheck.com/advisories/bookstack-broken-access-control-via-image-gallery-api",
"https://github.com/BookStackApp/BookStack"
],
"provider_metadata": {
"cwe_ids": [
"CWE-863"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/67xxx/CVE-2026-67204.json"
}
},
"related_cves": [
{
"value": "CVE-2026-67204",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 503387,
"published_at": "2026-08-24T15:33:13.649+00:00"
}