In Gluster GlusterFS 11.0, there is an xlators/cluster/dht/src/dht-common.c dhtsetxattrmdscbk use-after-free.
In Gluster GlusterFS 11.0, there is an xlators/mount/fuse/src/fuse-bridge.c notify stack-based buffer over-read.
A vulnerability was found in Gluster's features/locks translator An user-controlled string is given to snprintf without a proper format string. Sending a specially crafted string would result in a denial of service.
A flaw was found in glusterfs server through versions 4.1.4 and 3.1.2 which allowed repeated usage of GFMETALOCKKEY xattr. A remote, authenticated attacker could use this flaw to create multiple locks for single inode by using setxattr repetitively resulting in memory exhaustion of glusterfs server node.
Gluster versions 3.12.14 and 4.1.4 included incomplete fixes for the vulnerabilities, CVE-2018-10927, CVE-2018-10928, CVE-2018-10929, CVE-2018-10930 and CVE-2018-10926. All five vulnerabilities remain exploitable via symlinks pointing to relative paths. A remote authenticated attacker could exploit one of these vulnerabilities to force a server to resolve target paths and achieve a maximum impact of arbitrary code execution.
It was discovered that fsync(2) system call in glusterfs client code leaks memory. An authenticated attacker could use this flaw to launch a denial of service attack by making gluster clients consume memory of the host machine.
A flaw was found in RPC request using gfs3mknodreq supported by glusterfs server. An authenticated attacker could use this flaw to write files to an arbitrary location via path traversal and execute arbitrary code on a glusterfs server node.
A flaw was found in RPC request using gfs3renamereq in glusterfs server. An authenticated attacker could use this flaw to write to a destination outside the gluster volume.
A flaw was found in RPC request using gfs2createreq in glusterfs server. An authenticated attacker could use this flaw to create arbitrary files and execute arbitrary code on glusterfs server nodes.
A flaw was found in RPC request using gfs3symlinkreq in glusterfs server which allows symlink destinations to point to file paths outside of the gluster volume. An authenticated attacker could use this flaw to create arbitrary symlinks pointing anywhere on the server and execute arbitrary code on glusterfs server nodes.
A flaw was found in RPC request using gfs3lookupreq in glusterfs server. An authenticated attacker could use this flaw to leak information and execute remote denial of service by crashing gluster brick process.
It was found that the "mknod" call derived from mknod(2) can create files pointing to devices on a glusterfs server node. An authenticated attacker could use this to create an arbitrary device and read data from any device attached to the glusterfs server node.
A flaw was found in GlusterFS. A NULL pointer dereference vulnerability due to an improper implementation of the posixgetfilecontents function. An attacker could exploit this to perform a Denial of Service attack.
A flaw was found in GlusterFS. An Information Exposure vulnerability due to an improper implementation of the glusterfs.file function. An attacker could exploit this to obtain information about the files available.
A flaw was found in the way dicunserialize function of glusterfs does not handle negative key length values. An attacker could use this flaw to read memory from other locations into the stored dict value.
GlusterFS is vulnerable to multiple stack-based buffer overflows due to functions in server-rpc-fops.c allocating fixed-size buffers using 'alloca(3)'. A remote attacker could expliot this by mounting a Gluster volume and sending a string longer than the fixed buffer to cause a crash or potential code execution.
GlusterFS does not properly sanitize file paths in the "trusted.io-stats-dump" extended attribute (xattr) as used by the "debug/io-stats" translator. The value of this extended attribute is not properly sanitized and can be exploited by an attacker to create files in arbitrary locations and subsequently execute arbitrary code. To exploit this an attacker would require sufficient access to modify the extended attributes of files on a Gluster volume.
A flaw was found in glusterfs which can lead to privilege escalation on gluster server nodes.
It was found that any gluster client authenticated via TLS could use gluster cli with --remote-host command to add itself to gluster trusted pool and perform all gluster operations like peer probe itself or other machines, start, stop, delete volumes etc.
A flaw was found in glusterfs which can lead to privilege escalation on gluster server nodes.
It was found that any gluster client authenticated via TLS could use gluster cli with --remote-host command to add itself to gluster trusted pool and perform all gluster operations like peer probe itself or other machines, start, stop, delete volumes etc.
glusterfs server before versions 3.10.12, 4.0.2 is vulnerable when using 'auth.allow' option which allows any unauthenticated gluster client to connect from any network to mount gluster storage volumes. NOTE: this vulnerability exists because of a CVE-2018-1088 regression.
A flaw was found in GlusterFS in versions prior to 3.10. A null pointer dereference in sendbrickreq function in glusterfsd/src/gfattach.c may be used to cause denial of service.
IssueDescription:
A denial of service flaw was found in the way the socketprotostatemachine() function of glusterfs processed certain fragment headers. A remote attacker could send a specially crafted fragment header that, when processed, would cause the glusterfs process to enter an infinite loop.
IssueDescription:
A denial of service flaw was found in the way the socketprotostatemachine() function of glusterfs processed certain fragment headers. A remote attacker could send a specially crafted fragment header that, when processed, would cause the glusterfs process to enter an infinite loop.
Following the fixing of several /tmp/ flaws in CVE-2012-4417 we have the remaining issues in Gluster reported by Kurt Seifried (kseifried):
============== This issue was previously not reported: This should probably use /var/run/gluster/glusterdump.%d.options
tests/volume.rc: rm -f /tmp/glusterdump.$mountpid.dump. 2>/dev/null tests/volume.rc: fname=$(ls /tmp | grep -E "glusterdump.$mountpid.dump.") tests/volume.rc: echo /tmp/$fname ============== ============== This issue was previously not reported: This should use mktemp Also this should use cp instead of mv so you don't lose SELinux context when copying the file back to /etc/samba/smb.conf which might break Samba
extras/hook-scripts/S30samba-stop.sh: cp /etc/samba/smb.conf /tmp/smb.conf extras/hook-scripts/S30samba-stop.sh: sed -i "/gluster-$volname/,/^$/d" /tmp/smb.conf &&\ extras/hook-scripts/S30samba-stop.sh: mv /tmp/smb.conf /etc/samba/smb.conf ==============
============== This issue was previously reported: This should use mkstemp()
libglusterfs/src/run.c: fd = open ("/tmp/foof", OWRONLY|OCREAT|OTRUNC, 0600); ==============
============== This issue was previously reported: This should probably use /var/run/gluster/glusterdump.%d.options
libglusterfs/src/statedump.c:/ These options are dumped by default if /tmp/glusterdump.options libglusterfs/src/statedump.c: / glusterd will create a file /tmp/glusterdump.<pid>.options and libglusterfs/src/statedump.c: both cli command and SIGUSR1, /tmp/glusterdump.options file libglusterfs/src/statedump.c: "/tmp/glusterdump.options"); libglusterfs/src/statedump.c: "/tmp/glusterdump.%d.options", getpid ()); libglusterfs/src/statedump.c: ((ctx->statedumppath != NULL)?ctx->statedumppath:"/tmp")), ==============
============== This issue was previously reported: This should probably use /var/run/gluster/glusterdump.%d.options
xlators/protocol/server/src/server.c: .defaultvalue = "/tmp", xlators/protocol/server/src/server.c: " statedumps. By default it is the /tmp directory" ============== ============== This issue was previously reported: This should probably use /var/run/gluster/%s-"RBCLIENTMOUNTPOINT
xlators/mgmt/glusterd/src/glusterd-replace-brick.c: snprintf (path, len, "/tmp/%s-"RBCLIENTMOUNTPOINT, volinfo->volname); ==============
============== This issue was previously reported: This should probably use /var/run/gluster/glusterdump.%d.options
xlators/mgmt/glusterd/src/glusterd-utils.c: snprintf (dumpoptionspath, sizeof (dumpoptionspath), "/tmp/glusterdump.%d.options", pid); xlators/mgmt/glusterd/src/glusterd-utils.c: snprintf (dumpoptionspath, sizeof (dumpoptionspath), "/tmp/glusterdump.%d.options", pid); ==============