RHSA-2019:3255
Vulnerability from csaf_redhat - Published: 2019-10-30 12:35 - Updated: 2025-11-21 18:10It was found that the default configuration of Heketi does not require any authentication, potentially exposing the Heketi server API to be misused. An unauthenticated attacker could connect remotely to Heketi Server and run arbitrary commands supported by Heketi Server API via Heketi CLI.
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: 7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src | — |
Vendor Fix
fix
Workaround
|
|
| Unresolved product id: 7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64 | — |
Vendor Fix
fix
Workaround
|
|
| Unresolved product id: 7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64 | — |
Vendor Fix
fix
Workaround
|
|
| Unresolved product id: 7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64 | — |
Vendor Fix
fix
Workaround
|
|
| Unresolved product id: 7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src | — |
Vendor Fix
fix
Workaround
|
|
| Unresolved product id: 7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64 | — |
Vendor Fix
fix
Workaround
|
{
"document": {
"aggregate_severity": {
"namespace": "https://access.redhat.com/security/updates/classification/",
"text": "Moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright \u00a9 Red Hat, Inc. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "Updated heketi packages that fix one security issue, multiple bugs, and adds various enhancements is now available for OpenShift Container Storage 3.11 Batch 4 Update.\n\nRed Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section.",
"title": "Topic"
},
{
"category": "general",
"text": "Heketi provides a RESTful management interface that can be used to manage the life cycle of GlusterFS volumes. With Heketi, cloud services like OpenStack Manila, Kubernetes, and OpenShift can dynamically provision GlusterFS volumes with any of the supported durability types. Heketi will automatically determine the location for bricks across the cluster, making sure to place bricks and its replicas across different failure domains. Heketi also supports any number of GlusterFS clusters, allowing cloud services to provide network file storage without being limited to a single GlusterFS cluster.\n\nThe following packages have been upgraded to a later upstream version: heketi (9.0.0). (BZ#1710080)\n\nSecurity Fix(es):\n\n* heketi: heketi can be installed using insecure defaults (CVE-2019-3899)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n\nBug Fix(es):\n\n* Previously, it was easy to inadvertently set Heketi up in an unsecured way which increased the risk of unauthorized users to make changes to the storage managed by Heketi. The default settings have changed to require users to configure authentication and to make disabling authentication unintentionally more difficult. (BZ#1701838)\n\n* Previously, when Heketi executed commands within OpenShift/Kubernetes pods, the commands were executed without a timeout specified. Hence, some commands never returned which differed from the SSH executor which always executes commands with a timeout. With this update, the commands that are executed in the gluster containers have a timeout specified. The timeout values are the same regardless of what connection type is used. (BZ#1636912)\n\n* Previously, if Heketi managed multiple clusters and it failed to create volumes on any of the clusters it would return a generic \"No space\" error message. With this update, error messages produced when heketi manages multiple gluster clusters have been improved. Heketi now displays specific errors for when the cluster has no nodes or none of the nodes have usable devices and also reports on each cluster\u0027s error by prefixing cluster errors with the cluster ID. (BZ#1577803)\n\n* Previously, if operation cleanup was requested from the server simultaneously, the server would try to initiate cleanup for the same operation twice. This triggered panic in the server. With this update, the server no longer panics if two operation cleanups are requested at the same time. (BZ#1702162)\n\nEnhancement(s):\n\n* When a node is removed or added to a gluster trusted storage pool using heketi, the existing endpoints do not get updated automatically. With this update, to update the endpoints after node addition/removal, users can now execute the following commands:\n1. heketi-cli volume endpoint patch \u003cvolume-id\u003e\n2. oc patch ep \u003cheketi-db-endpoint-name\u003e -p \u003cchanges\u003e (BZ#1660681)\n\n* With this update, Heketi tracks additional metadata associated with disk devices even if the path of the device changes. The outputs of some commands have been updated to reflect the additional metadata. (BZ#1609553)\n\nUsers of Heketi are advised to upgrade to these updated packages, which adds these enhancements and fix these bugs.",
"title": "Details"
},
{
"category": "legal_disclaimer",
"text": "This content is licensed under the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/). If you distribute this content, or a modified version of it, you must provide attribution to Red Hat Inc. and provide a link to the original.",
"title": "Terms of Use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://access.redhat.com/security/team/contact/",
"issuing_authority": "Red Hat Product Security is responsible for vulnerability handling across all Red Hat products and services.",
"name": "Red Hat Product Security",
"namespace": "https://www.redhat.com"
},
"references": [
{
"category": "self",
"summary": "https://access.redhat.com/errata/RHSA-2019:3255",
"url": "https://access.redhat.com/errata/RHSA-2019:3255"
},
{
"category": "external",
"summary": "https://access.redhat.com/security/updates/classification/#moderate",
"url": "https://access.redhat.com/security/updates/classification/#moderate"
},
{
"category": "external",
"summary": "1577803",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1577803"
},
{
"category": "external",
"summary": "1609553",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1609553"
},
{
"category": "external",
"summary": "1636912",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1636912"
},
{
"category": "external",
"summary": "1660681",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1660681"
},
{
"category": "external",
"summary": "1701091",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1701091"
},
{
"category": "external",
"summary": "1702162",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1702162"
},
{
"category": "external",
"summary": "1710080",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1710080"
},
{
"category": "external",
"summary": "1710996",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1710996"
},
{
"category": "external",
"summary": "1725798",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1725798"
},
{
"category": "external",
"summary": "1740884",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1740884"
},
{
"category": "self",
"summary": "Canonical URL",
"url": "https://security.access.redhat.com/data/csaf/v2/advisories/2019/rhsa-2019_3255.json"
}
],
"title": "Red Hat Security Advisory: heketi security, bug fix, and enhancement update",
"tracking": {
"current_release_date": "2025-11-21T18:10:46+00:00",
"generator": {
"date": "2025-11-21T18:10:46+00:00",
"engine": {
"name": "Red Hat SDEngine",
"version": "4.6.12"
}
},
"id": "RHSA-2019:3255",
"initial_release_date": "2019-10-30T12:35:06+00:00",
"revision_history": [
{
"date": "2019-10-30T12:35:06+00:00",
"number": "1",
"summary": "Initial version"
},
{
"date": "2019-10-30T12:35:06+00:00",
"number": "2",
"summary": "Last updated version"
},
{
"date": "2025-11-21T18:10:46+00:00",
"number": "3",
"summary": "Last generated version"
}
],
"status": "final",
"version": "3"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_name",
"name": "Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product": {
"name": "Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product_id": "7Server-RH-Gluster-3.5-Server",
"product_identification_helper": {
"cpe": "cpe:/a:redhat:storage:3.5:server:el7"
}
}
},
{
"category": "product_name",
"name": "Red Hat Storage Native Client for Red Hat Enterprise Linux 7",
"product": {
"name": "Red Hat Storage Native Client for Red Hat Enterprise Linux 7",
"product_id": "7Server-RHSClient",
"product_identification_helper": {
"cpe": "cpe:/a:redhat:storage:3:client:el7"
}
}
}
],
"category": "product_family",
"name": "Red Hat Gluster Storage"
},
{
"branches": [
{
"category": "product_version",
"name": "heketi-0:9.0.0-7.el7rhgs.x86_64",
"product": {
"name": "heketi-0:9.0.0-7.el7rhgs.x86_64",
"product_id": "heketi-0:9.0.0-7.el7rhgs.x86_64",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/heketi@9.0.0-7.el7rhgs?arch=x86_64"
}
}
},
{
"category": "product_version",
"name": "heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"product": {
"name": "heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"product_id": "heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/heketi-client@9.0.0-7.el7rhgs?arch=x86_64"
}
}
},
{
"category": "product_version",
"name": "python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"product": {
"name": "python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"product_id": "python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/python-heketi@9.0.0-7.el7rhgs?arch=x86_64"
}
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_version",
"name": "heketi-0:9.0.0-7.el7rhgs.src",
"product": {
"name": "heketi-0:9.0.0-7.el7rhgs.src",
"product_id": "heketi-0:9.0.0-7.el7rhgs.src",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/heketi@9.0.0-7.el7rhgs?arch=src"
}
}
}
],
"category": "architecture",
"name": "src"
}
],
"category": "vendor",
"name": "Red Hat"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "heketi-0:9.0.0-7.el7rhgs.src as a component of Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product_id": "7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src"
},
"product_reference": "heketi-0:9.0.0-7.el7rhgs.src",
"relates_to_product_reference": "7Server-RH-Gluster-3.5-Server"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "heketi-0:9.0.0-7.el7rhgs.x86_64 as a component of Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product_id": "7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64"
},
"product_reference": "heketi-0:9.0.0-7.el7rhgs.x86_64",
"relates_to_product_reference": "7Server-RH-Gluster-3.5-Server"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "heketi-client-0:9.0.0-7.el7rhgs.x86_64 as a component of Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product_id": "7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
},
"product_reference": "heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"relates_to_product_reference": "7Server-RH-Gluster-3.5-Server"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python-heketi-0:9.0.0-7.el7rhgs.x86_64 as a component of Red Hat Gluster Storage Server 3.5 on RHEL-7",
"product_id": "7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64"
},
"product_reference": "python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"relates_to_product_reference": "7Server-RH-Gluster-3.5-Server"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "heketi-0:9.0.0-7.el7rhgs.src as a component of Red Hat Storage Native Client for Red Hat Enterprise Linux 7",
"product_id": "7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src"
},
"product_reference": "heketi-0:9.0.0-7.el7rhgs.src",
"relates_to_product_reference": "7Server-RHSClient"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "heketi-client-0:9.0.0-7.el7rhgs.x86_64 as a component of Red Hat Storage Native Client for Red Hat Enterprise Linux 7",
"product_id": "7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
},
"product_reference": "heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"relates_to_product_reference": "7Server-RHSClient"
}
]
},
"vulnerabilities": [
{
"acknowledgments": [
{
"names": [
"Daniel Moessner"
],
"organization": "Red Hat",
"summary": "This issue was discovered by Red Hat."
}
],
"cve": "CVE-2019-3899",
"cwe": {
"id": "CWE-287",
"name": "Improper Authentication"
},
"discovery_date": "2019-04-18T00:00:00+00:00",
"ids": [
{
"system_name": "Red Hat Bugzilla ID",
"text": "1701091"
}
],
"notes": [
{
"category": "description",
"text": "It was found that the default configuration of Heketi does not require any authentication, potentially exposing the Heketi server API to be misused. An unauthenticated attacker could connect remotely to Heketi Server and run arbitrary commands supported by Heketi Server API via Heketi CLI.",
"title": "Vulnerability description"
},
{
"category": "summary",
"text": "heketi: heketi can be installed using insecure defaults",
"title": "Vulnerability summary"
},
{
"category": "general",
"text": "The CVSS score(s) listed for this vulnerability do not reflect the associated product\u0027s status, and are included for informational purposes to better understand the severity of this vulnerability.",
"title": "CVSS score applicability"
}
],
"product_status": {
"fixed": [
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
]
},
"references": [
{
"category": "self",
"summary": "Canonical URL",
"url": "https://access.redhat.com/security/cve/CVE-2019-3899"
},
{
"category": "external",
"summary": "RHBZ#1701091",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=1701091"
},
{
"category": "external",
"summary": "https://www.cve.org/CVERecord?id=CVE-2019-3899",
"url": "https://www.cve.org/CVERecord?id=CVE-2019-3899"
},
{
"category": "external",
"summary": "https://nvd.nist.gov/vuln/detail/CVE-2019-3899",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2019-3899"
}
],
"release_date": "2019-04-18T00:00:00+00:00",
"remediations": [
{
"category": "vendor_fix",
"date": "2019-10-30T12:35:06+00:00",
"details": "For details on how to apply this update, which includes the changes described in this advisory, refer to:\n\nhttps://access.redhat.com/articles/11258",
"product_ids": [
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
],
"restart_required": {
"category": "none"
},
"url": "https://access.redhat.com/errata/RHSA-2019:3255"
},
{
"category": "workaround",
"details": "After installation of Heketi\n\n1. configure user and admin key in /etc/heketi/heketi.json file\n...\n{\n \"_port_comment\": \"Heketi Server Port Number\",\n \"port\": \"8080\",\n\n \"_use_auth\": \"Enable JWT authorization. Please enable for deployment\",\n \"use_auth\": true,\n\n \"_jwt\": \"Private keys for access\",\n \"jwt\": {\n \"_admin\": \"Admin has access to all APIs\",\n \"admin\": {\n \"key\": \"My Secret\"\n },\n \"_user\": \"User only has access to /volumes endpoint\",\n \"user\": {\n \"key\": \"My Secret\"\n }\n },\n...\n\n2. restart heketi server",
"product_ids": [
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "LOW",
"baseScore": 7.3,
"baseSeverity": "HIGH",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L",
"version": "3.0"
},
"products": [
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RH-Gluster-3.5-Server:heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:heketi-client-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RH-Gluster-3.5-Server:python-heketi-0:9.0.0-7.el7rhgs.x86_64",
"7Server-RHSClient:heketi-0:9.0.0-7.el7rhgs.src",
"7Server-RHSClient:heketi-client-0:9.0.0-7.el7rhgs.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"details": "Moderate"
}
],
"title": "heketi: heketi can be installed using insecure defaults"
}
]
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.