Zincati allows unprivileged access to rpm-ostree D-Bus `Deploy()` and `FinalizeDeployment()` methods
Zincati is an auto-update agent for Fedora CoreOS hosts. Zincati ships a polkit rule which allows the `zincati` system user to use the actions `org.projectatomic.rpmostree1.deploy` to deploy updates to the system and `org.projectatomic.rpmostree1.finalize-deployment` to reboot the system into the deployed update. Since Zincati v0.0.24, this polkit rule contains a logic error which broadens access of those polkit actions to any unprivileged user rather than just the `zincati` system user. In practice, this means that any unprivileged user with access to the system D-Bus socket is able to deploy older Fedora CoreOS versions (which may have other known vulnerabilities). Note that rpm-ostree enforces that the selected version must be from the same branch the system is currently on so this cannot directly be used to deploy an attacker-controlled update payload. This primarily impacts users running untrusted workloads with access to the system D-Bus socket. Note that in general, untrusted workloads should not be given this access, whether containerized or not. By default, containers do not have access to the system D-Bus socket. The logic error is fixed in Zincati v0.0.30. A workaround is to manually add a following polkit rule, instructions for which are available in the GitHub Security Advisory.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-27512
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 01:07 UTC · Revision 1
Source evidence
Zincati allows unprivileged access to rpm-ostree D-Bus `Deploy()` and `FinalizeDeployment()` methods
core-osv · Original sourcePublished 17 Mar 2025, 14:46 UTC
Zincati is an auto-update agent for Fedora CoreOS hosts. Zincati ships a polkit rule which allows the `zincati` system user to use the actions `org.projectatomic.rpmostree1.deploy` to deploy updates to the system and `org.projectatomic.rpmostree1.finalize-deployment` to reboot the system into the deployed update. Since Zincati v0.0.24, this polkit rule contains a logic error which broadens access of those polkit actions to any unprivileged user rather than just the `zincati` system user. In practice, this means that any unprivileged user with access to the system D-Bus socket is able to deploy older Fedora CoreOS versions (which may have other known vulnerabilities). Note that rpm-ostree enforces that the selected version must be from the same branch the system is currently on so this cannot directly be used to deploy an attacker-controlled update payload. This primarily impacts users running untrusted workloads with access to the system D-Bus socket. Note that in general, untrusted workloads should not be given this access, whether containerized or not. By default, containers do not have access to the system D-Bus socket. The logic error is fixed in Zincati v0.0.30. A workaround is to manually add a following polkit rule, instructions for which are available in the GitHub Security Advisory.
osv:CVE-2025-27512
Complete source record
{
"id": "99ae7668e930d113249eaeaa48797ac83bad88e732802ebfa3c1d7c294bfd988",
"url": "https://osv.dev/vulnerability/CVE-2025-27512",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Zincati allows unprivileged access to rpm-ostree D-Bus `Deploy()` and `FinalizeDeployment()` methods",
"summary": "Zincati is an auto-update agent for Fedora CoreOS hosts. Zincati ships a polkit rule which allows the `zincati` system user to use the actions `org.projectatomic.rpmostree1.deploy` to deploy updates to the system and `org.projectatomic.rpmostree1.finalize-deployment` to reboot the system into the deployed update. Since Zincati v0.0.24, this polkit rule contains a logic error which broadens access of those polkit actions to any unprivileged user rather than just the `zincati` system user. In practice, this means that any unprivileged user with access to the system D-Bus socket is able to deploy older Fedora CoreOS versions (which may have other known vulnerabilities). Note that rpm-ostree enforces that the selected version must be from the same branch the system is currently on so this cannot directly be used to deploy an attacker-controlled update payload. This primarily impacts users running untrusted workloads with access to the system D-Bus socket. Note that in general, untrusted workloads should not be given this access, whether containerized or not. By default, containers do not have access to the system D-Bus socket. The logic error is fixed in Zincati v0.0.30. A workaround is to manually add a following polkit rule, instructions for which are available in the GitHub Security Advisory.",
"evidence": "osv:CVE-2025-27512",
"products": [],
"severity": "low",
"structured": {
"id": "CVE-2025-27512",
"aliases": [
"CVE-2025-27512",
"GHSA-w6fv-6gcc-x825"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:U"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/coreos/zincati",
"type": "GIT",
"events": [
{
"introduced": "7f805e064575e936034e2d3ef56589e537d30c06"
},
{
"fixed": "688021f140753bddde483a9e66203fa465a3623e"
},
{
"fixed": "01d8e89f799e6ba21bdf7dc668abce23bd0d8f78"
},
{
"fixed": "28a43aa2c1edda091ba659677d73c13e6e3ea99d"
},
{
"fixed": "7f805e064575e936034e2d3ef56589e537d30c06"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0.0.24"
},
{
"fixed": "0.0.30"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "01d8e89f799e6ba21bdf7dc668abce23bd0d8f78"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "28a43aa2c1edda091ba659677d73c13e6e3ea99d"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "7f805e064575e936034e2d3ef56589e537d30c06"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v0.0.24"
},
{
"range": [
{
"fixed": "688021f140753bddde483a9e66203fa465a3623e"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v0.0.30"
}
]
}
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-27512.json"
}
}
],
"modified": "2026-10-28T02:30:24.996353211Z",
"provider": "osv",
"references": [
"https://github.com/coreos/zincati/releases/tag/v0.0.24",
"https://github.com/coreos/zincati/releases/tag/v0.0.30",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/27xxx/CVE-2025-27512.json",
"https://github.com/coreos/zincati/security/advisories/GHSA-w6fv-6gcc-x825",
"https://nvd.nist.gov/vuln/detail/CVE-2025-27512",
"https://github.com/coreos/zincati/commit/01d8e89f799e6ba21bdf7dc668abce23bd0d8f78",
"https://github.com/coreos/zincati/commit/28a43aa2c1edda091ba659677d73c13e6e3ea99d"
],
"provider_metadata": {
"cwe_ids": [
"CWE-783",
"CWE-863"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/27xxx/CVE-2025-27512.json"
}
},
"related_cves": [
{
"value": "CVE-2025-27512",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491434,
"published_at": "2025-03-17T14:46:28.219+00:00"
}