Vulnerability Details CVE-2021-47585
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix memory leak in __add_inode_ref()
Line 1169 (#3) allocates a memory chunk for victim_name by kmalloc(),
but when the function returns in line 1184 (#4) victim_name allocated
by line 1169 (#3) is not freed, which will lead to a memory leak.
There is a similar snippet of code in this function as allocating a memory
chunk for victim_name in line 1104 (#1) as well as releasing the memory
in line 1116 (#2).
We should kfree() victim_name when the return value of backref_in_log()
is less than zero and before the function returns in line 1184 (#4).
1057 static inline int __add_inode_ref(struct btrfs_trans_handle *trans,
1058 struct btrfs_root *root,
1059 struct btrfs_path *path,
1060 struct btrfs_root *log_root,
1061 struct btrfs_inode *dir,
1062 struct btrfs_inode *inode,
1063 u64 inode_objectid, u64 parent_objectid,
1064 u64 ref_index, char *name, int namelen,
1065 int *search_done)
1066 {
1104 victim_name = kmalloc(victim_name_len, GFP_NOFS);
// #1: kmalloc (victim_name-1)
1105 if (!victim_name)
1106 return -ENOMEM;
1112 ret = backref_in_log(log_root, &search_key,
1113 parent_objectid, victim_name,
1114 victim_name_len);
1115 if (ret < 0) {
1116 kfree(victim_name); // #2: kfree (victim_name-1)
1117 return ret;
1118 } else if (!ret) {
1169 victim_name = kmalloc(victim_name_len, GFP_NOFS);
// #3: kmalloc (victim_name-2)
1170 if (!victim_name)
1171 return -ENOMEM;
1180 ret = backref_in_log(log_root, &search_key,
1181 parent_objectid, victim_name,
1182 victim_name_len);
1183 if (ret < 0) {
1184 return ret; // #4: missing kfree (victim_name-2)
1185 } else if (!ret) {
1241 return 0;
1242 }
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 1.0%
CVSS Severity
CVSS v3 Score 5.5
Products affected by CVE-2021-47585
-
cpe:2.3:o:linux:linux_kernel:5.10
-
cpe:2.3:o:linux:linux_kernel:5.10.0
-
cpe:2.3:o:linux:linux_kernel:5.10.1
-
cpe:2.3:o:linux:linux_kernel:5.10.10
-
cpe:2.3:o:linux:linux_kernel:5.10.11
-
cpe:2.3:o:linux:linux_kernel:5.10.12
-
cpe:2.3:o:linux:linux_kernel:5.10.13
-
cpe:2.3:o:linux:linux_kernel:5.10.14
-
cpe:2.3:o:linux:linux_kernel:5.10.15
-
cpe:2.3:o:linux:linux_kernel:5.10.16
-
cpe:2.3:o:linux:linux_kernel:5.10.17
-
cpe:2.3:o:linux:linux_kernel:5.10.18
-
cpe:2.3:o:linux:linux_kernel:5.10.19
-
cpe:2.3:o:linux:linux_kernel:5.10.2
-
cpe:2.3:o:linux:linux_kernel:5.10.20
-
cpe:2.3:o:linux:linux_kernel:5.10.21
-
cpe:2.3:o:linux:linux_kernel:5.10.22
-
cpe:2.3:o:linux:linux_kernel:5.10.23
-
cpe:2.3:o:linux:linux_kernel:5.10.24
-
cpe:2.3:o:linux:linux_kernel:5.10.25
-
cpe:2.3:o:linux:linux_kernel:5.10.26
-
cpe:2.3:o:linux:linux_kernel:5.10.27
-
cpe:2.3:o:linux:linux_kernel:5.10.28
-
cpe:2.3:o:linux:linux_kernel:5.10.29
-
cpe:2.3:o:linux:linux_kernel:5.10.3
-
cpe:2.3:o:linux:linux_kernel:5.10.30
-
cpe:2.3:o:linux:linux_kernel:5.10.31
-
cpe:2.3:o:linux:linux_kernel:5.10.32
-
cpe:2.3:o:linux:linux_kernel:5.10.33
-
cpe:2.3:o:linux:linux_kernel:5.10.34
-
cpe:2.3:o:linux:linux_kernel:5.10.35
-
cpe:2.3:o:linux:linux_kernel:5.10.36
-
cpe:2.3:o:linux:linux_kernel:5.10.37
-
cpe:2.3:o:linux:linux_kernel:5.10.38
-
cpe:2.3:o:linux:linux_kernel:5.10.39
-
cpe:2.3:o:linux:linux_kernel:5.10.4
-
cpe:2.3:o:linux:linux_kernel:5.10.40
-
cpe:2.3:o:linux:linux_kernel:5.10.41
-
cpe:2.3:o:linux:linux_kernel:5.10.42
-
cpe:2.3:o:linux:linux_kernel:5.10.43
-
cpe:2.3:o:linux:linux_kernel:5.10.44
-
cpe:2.3:o:linux:linux_kernel:5.10.45
-
cpe:2.3:o:linux:linux_kernel:5.10.46
-
cpe:2.3:o:linux:linux_kernel:5.10.47
-
cpe:2.3:o:linux:linux_kernel:5.10.48
-
cpe:2.3:o:linux:linux_kernel:5.10.49
-
cpe:2.3:o:linux:linux_kernel:5.10.5
-
cpe:2.3:o:linux:linux_kernel:5.10.50
-
cpe:2.3:o:linux:linux_kernel:5.10.51
-
cpe:2.3:o:linux:linux_kernel:5.10.52
-
cpe:2.3:o:linux:linux_kernel:5.10.53
-
cpe:2.3:o:linux:linux_kernel:5.10.54
-
cpe:2.3:o:linux:linux_kernel:5.10.55
-
cpe:2.3:o:linux:linux_kernel:5.10.56
-
cpe:2.3:o:linux:linux_kernel:5.10.57
-
cpe:2.3:o:linux:linux_kernel:5.10.58
-
cpe:2.3:o:linux:linux_kernel:5.10.59
-
cpe:2.3:o:linux:linux_kernel:5.10.6
-
cpe:2.3:o:linux:linux_kernel:5.10.60
-
cpe:2.3:o:linux:linux_kernel:5.10.61
-
cpe:2.3:o:linux:linux_kernel:5.10.62
-
cpe:2.3:o:linux:linux_kernel:5.10.63
-
cpe:2.3:o:linux:linux_kernel:5.10.64
-
cpe:2.3:o:linux:linux_kernel:5.10.65
-
cpe:2.3:o:linux:linux_kernel:5.10.66
-
cpe:2.3:o:linux:linux_kernel:5.10.67
-
cpe:2.3:o:linux:linux_kernel:5.10.68
-
cpe:2.3:o:linux:linux_kernel:5.10.69
-
cpe:2.3:o:linux:linux_kernel:5.10.7
-
cpe:2.3:o:linux:linux_kernel:5.10.70
-
cpe:2.3:o:linux:linux_kernel:5.10.71
-
cpe:2.3:o:linux:linux_kernel:5.10.72
-
cpe:2.3:o:linux:linux_kernel:5.10.73
-
cpe:2.3:o:linux:linux_kernel:5.10.74
-
cpe:2.3:o:linux:linux_kernel:5.10.75
-
cpe:2.3:o:linux:linux_kernel:5.10.76
-
cpe:2.3:o:linux:linux_kernel:5.10.77
-
cpe:2.3:o:linux:linux_kernel:5.10.78
-
cpe:2.3:o:linux:linux_kernel:5.10.79
-
cpe:2.3:o:linux:linux_kernel:5.10.8
-
cpe:2.3:o:linux:linux_kernel:5.10.80
-
cpe:2.3:o:linux:linux_kernel:5.10.81
-
cpe:2.3:o:linux:linux_kernel:5.10.82
-
cpe:2.3:o:linux:linux_kernel:5.10.83
-
cpe:2.3:o:linux:linux_kernel:5.10.84
-
cpe:2.3:o:linux:linux_kernel:5.10.85
-
cpe:2.3:o:linux:linux_kernel:5.10.86
-
cpe:2.3:o:linux:linux_kernel:5.10.87
-
cpe:2.3:o:linux:linux_kernel:5.10.9
-
cpe:2.3:o:linux:linux_kernel:5.11
-
cpe:2.3:o:linux:linux_kernel:5.11.1
-
cpe:2.3:o:linux:linux_kernel:5.11.10
-
cpe:2.3:o:linux:linux_kernel:5.11.11
-
cpe:2.3:o:linux:linux_kernel:5.11.12
-
cpe:2.3:o:linux:linux_kernel:5.11.13
-
cpe:2.3:o:linux:linux_kernel:5.11.14
-
cpe:2.3:o:linux:linux_kernel:5.11.15
-
cpe:2.3:o:linux:linux_kernel:5.11.16
-
cpe:2.3:o:linux:linux_kernel:5.11.17
-
cpe:2.3:o:linux:linux_kernel:5.11.18
-
cpe:2.3:o:linux:linux_kernel:5.11.19
-
cpe:2.3:o:linux:linux_kernel:5.11.2
-
cpe:2.3:o:linux:linux_kernel:5.11.20
-
cpe:2.3:o:linux:linux_kernel:5.11.21
-
cpe:2.3:o:linux:linux_kernel:5.11.22
-
cpe:2.3:o:linux:linux_kernel:5.11.3
-
cpe:2.3:o:linux:linux_kernel:5.11.4
-
cpe:2.3:o:linux:linux_kernel:5.11.5
-
cpe:2.3:o:linux:linux_kernel:5.11.6
-
cpe:2.3:o:linux:linux_kernel:5.11.7
-
cpe:2.3:o:linux:linux_kernel:5.11.8
-
cpe:2.3:o:linux:linux_kernel:5.11.9
-
cpe:2.3:o:linux:linux_kernel:5.12
-
cpe:2.3:o:linux:linux_kernel:5.12.1
-
cpe:2.3:o:linux:linux_kernel:5.12.10
-
cpe:2.3:o:linux:linux_kernel:5.12.11
-
cpe:2.3:o:linux:linux_kernel:5.12.12
-
cpe:2.3:o:linux:linux_kernel:5.12.13
-
cpe:2.3:o:linux:linux_kernel:5.12.14
-
cpe:2.3:o:linux:linux_kernel:5.12.15
-
cpe:2.3:o:linux:linux_kernel:5.12.16
-
cpe:2.3:o:linux:linux_kernel:5.12.17
-
cpe:2.3:o:linux:linux_kernel:5.12.18
-
cpe:2.3:o:linux:linux_kernel:5.12.19
-
cpe:2.3:o:linux:linux_kernel:5.12.2
-
cpe:2.3:o:linux:linux_kernel:5.12.25
-
cpe:2.3:o:linux:linux_kernel:5.12.3
-
cpe:2.3:o:linux:linux_kernel:5.12.4
-
cpe:2.3:o:linux:linux_kernel:5.12.5
-
cpe:2.3:o:linux:linux_kernel:5.12.6
-
cpe:2.3:o:linux:linux_kernel:5.12.7
-
cpe:2.3:o:linux:linux_kernel:5.12.8
-
cpe:2.3:o:linux:linux_kernel:5.12.9
-
cpe:2.3:o:linux:linux_kernel:5.13
-
cpe:2.3:o:linux:linux_kernel:5.13.0-52
-
cpe:2.3:o:linux:linux_kernel:5.13.1
-
cpe:2.3:o:linux:linux_kernel:5.13.10
-
cpe:2.3:o:linux:linux_kernel:5.13.11
-
cpe:2.3:o:linux:linux_kernel:5.13.12
-
cpe:2.3:o:linux:linux_kernel:5.13.13
-
cpe:2.3:o:linux:linux_kernel:5.13.14
-
cpe:2.3:o:linux:linux_kernel:5.13.15
-
cpe:2.3:o:linux:linux_kernel:5.13.16
-
cpe:2.3:o:linux:linux_kernel:5.13.17
-
cpe:2.3:o:linux:linux_kernel:5.13.18
-
cpe:2.3:o:linux:linux_kernel:5.13.19
-
cpe:2.3:o:linux:linux_kernel:5.13.2
-
cpe:2.3:o:linux:linux_kernel:5.13.3
-
cpe:2.3:o:linux:linux_kernel:5.13.4
-
cpe:2.3:o:linux:linux_kernel:5.13.5
-
cpe:2.3:o:linux:linux_kernel:5.13.6
-
cpe:2.3:o:linux:linux_kernel:5.13.7
-
cpe:2.3:o:linux:linux_kernel:5.13.8
-
cpe:2.3:o:linux:linux_kernel:5.13.9
-
cpe:2.3:o:linux:linux_kernel:5.14
-
cpe:2.3:o:linux:linux_kernel:5.14.1
-
cpe:2.3:o:linux:linux_kernel:5.14.10
-
cpe:2.3:o:linux:linux_kernel:5.14.11
-
cpe:2.3:o:linux:linux_kernel:5.14.12
-
cpe:2.3:o:linux:linux_kernel:5.14.13
-
cpe:2.3:o:linux:linux_kernel:5.14.14
-
cpe:2.3:o:linux:linux_kernel:5.14.15
-
cpe:2.3:o:linux:linux_kernel:5.14.16
-
cpe:2.3:o:linux:linux_kernel:5.14.17
-
cpe:2.3:o:linux:linux_kernel:5.14.18
-
cpe:2.3:o:linux:linux_kernel:5.14.19
-
cpe:2.3:o:linux:linux_kernel:5.14.2
-
cpe:2.3:o:linux:linux_kernel:5.14.20
-
cpe:2.3:o:linux:linux_kernel:5.14.21
-
cpe:2.3:o:linux:linux_kernel:5.14.3
-
cpe:2.3:o:linux:linux_kernel:5.14.4
-
cpe:2.3:o:linux:linux_kernel:5.14.5
-
cpe:2.3:o:linux:linux_kernel:5.14.6
-
cpe:2.3:o:linux:linux_kernel:5.14.7
-
cpe:2.3:o:linux:linux_kernel:5.14.8
-
cpe:2.3:o:linux:linux_kernel:5.14.9
-
cpe:2.3:o:linux:linux_kernel:5.15
-
cpe:2.3:o:linux:linux_kernel:5.15.0
-
cpe:2.3:o:linux:linux_kernel:5.15.0-58
-
cpe:2.3:o:linux:linux_kernel:5.15.1
-
cpe:2.3:o:linux:linux_kernel:5.15.10
-
cpe:2.3:o:linux:linux_kernel:5.15.2
-
cpe:2.3:o:linux:linux_kernel:5.15.3
-
cpe:2.3:o:linux:linux_kernel:5.15.4
-
cpe:2.3:o:linux:linux_kernel:5.15.5
-
cpe:2.3:o:linux:linux_kernel:5.15.6
-
cpe:2.3:o:linux:linux_kernel:5.15.7
-
cpe:2.3:o:linux:linux_kernel:5.15.8
-
cpe:2.3:o:linux:linux_kernel:5.15.9
-
cpe:2.3:o:linux:linux_kernel:5.5
-
cpe:2.3:o:linux:linux_kernel:5.5.0
-
cpe:2.3:o:linux:linux_kernel:5.5.1
-
cpe:2.3:o:linux:linux_kernel:5.5.10
-
cpe:2.3:o:linux:linux_kernel:5.5.11
-
cpe:2.3:o:linux:linux_kernel:5.5.12
-
cpe:2.3:o:linux:linux_kernel:5.5.13
-
cpe:2.3:o:linux:linux_kernel:5.5.14
-
cpe:2.3:o:linux:linux_kernel:5.5.15
-
cpe:2.3:o:linux:linux_kernel:5.5.16
-
cpe:2.3:o:linux:linux_kernel:5.5.17
-
cpe:2.3:o:linux:linux_kernel:5.5.18
-
cpe:2.3:o:linux:linux_kernel:5.5.19
-
cpe:2.3:o:linux:linux_kernel:5.5.2
-
cpe:2.3:o:linux:linux_kernel:5.5.3
-
cpe:2.3:o:linux:linux_kernel:5.5.4
-
cpe:2.3:o:linux:linux_kernel:5.5.5
-
cpe:2.3:o:linux:linux_kernel:5.5.6
-
cpe:2.3:o:linux:linux_kernel:5.5.7
-
cpe:2.3:o:linux:linux_kernel:5.5.8
-
cpe:2.3:o:linux:linux_kernel:5.5.9
-
cpe:2.3:o:linux:linux_kernel:5.6
-
cpe:2.3:o:linux:linux_kernel:5.6.1
-
cpe:2.3:o:linux:linux_kernel:5.6.10
-
cpe:2.3:o:linux:linux_kernel:5.6.11
-
cpe:2.3:o:linux:linux_kernel:5.6.12
-
cpe:2.3:o:linux:linux_kernel:5.6.13
-
cpe:2.3:o:linux:linux_kernel:5.6.14
-
cpe:2.3:o:linux:linux_kernel:5.6.15
-
cpe:2.3:o:linux:linux_kernel:5.6.16
-
cpe:2.3:o:linux:linux_kernel:5.6.17
-
cpe:2.3:o:linux:linux_kernel:5.6.18
-
cpe:2.3:o:linux:linux_kernel:5.6.19
-
cpe:2.3:o:linux:linux_kernel:5.6.2
-
cpe:2.3:o:linux:linux_kernel:5.6.3
-
cpe:2.3:o:linux:linux_kernel:5.6.4
-
cpe:2.3:o:linux:linux_kernel:5.6.5
-
cpe:2.3:o:linux:linux_kernel:5.6.6
-
cpe:2.3:o:linux:linux_kernel:5.6.7
-
cpe:2.3:o:linux:linux_kernel:5.6.7-1
-
cpe:2.3:o:linux:linux_kernel:5.6.8
-
cpe:2.3:o:linux:linux_kernel:5.6.9
-
cpe:2.3:o:linux:linux_kernel:5.7
-
cpe:2.3:o:linux:linux_kernel:5.7.0
-
cpe:2.3:o:linux:linux_kernel:5.7.1
-
cpe:2.3:o:linux:linux_kernel:5.7.10
-
cpe:2.3:o:linux:linux_kernel:5.7.11
-
cpe:2.3:o:linux:linux_kernel:5.7.12
-
cpe:2.3:o:linux:linux_kernel:5.7.13
-
cpe:2.3:o:linux:linux_kernel:5.7.14
-
cpe:2.3:o:linux:linux_kernel:5.7.15
-
cpe:2.3:o:linux:linux_kernel:5.7.16
-
cpe:2.3:o:linux:linux_kernel:5.7.17
-
cpe:2.3:o:linux:linux_kernel:5.7.18
-
cpe:2.3:o:linux:linux_kernel:5.7.19
-
cpe:2.3:o:linux:linux_kernel:5.7.2
-
cpe:2.3:o:linux:linux_kernel:5.7.3
-
cpe:2.3:o:linux:linux_kernel:5.7.4
-
cpe:2.3:o:linux:linux_kernel:5.7.5
-
cpe:2.3:o:linux:linux_kernel:5.7.6
-
cpe:2.3:o:linux:linux_kernel:5.7.7
-
cpe:2.3:o:linux:linux_kernel:5.7.8
-
cpe:2.3:o:linux:linux_kernel:5.7.9
-
cpe:2.3:o:linux:linux_kernel:5.8
-
cpe:2.3:o:linux:linux_kernel:5.8.0
-
cpe:2.3:o:linux:linux_kernel:5.8.1
-
cpe:2.3:o:linux:linux_kernel:5.8.10
-
cpe:2.3:o:linux:linux_kernel:5.8.11
-
cpe:2.3:o:linux:linux_kernel:5.8.12
-
cpe:2.3:o:linux:linux_kernel:5.8.13
-
cpe:2.3:o:linux:linux_kernel:5.8.14
-
cpe:2.3:o:linux:linux_kernel:5.8.15
-
cpe:2.3:o:linux:linux_kernel:5.8.16
-
cpe:2.3:o:linux:linux_kernel:5.8.17
-
cpe:2.3:o:linux:linux_kernel:5.8.18
-
cpe:2.3:o:linux:linux_kernel:5.8.2
-
cpe:2.3:o:linux:linux_kernel:5.8.3
-
cpe:2.3:o:linux:linux_kernel:5.8.4
-
cpe:2.3:o:linux:linux_kernel:5.8.5
-
cpe:2.3:o:linux:linux_kernel:5.8.6
-
cpe:2.3:o:linux:linux_kernel:5.8.7
-
cpe:2.3:o:linux:linux_kernel:5.8.8
-
cpe:2.3:o:linux:linux_kernel:5.8.9
-
cpe:2.3:o:linux:linux_kernel:5.9
-
cpe:2.3:o:linux:linux_kernel:5.9.0
-
cpe:2.3:o:linux:linux_kernel:5.9.1
-
cpe:2.3:o:linux:linux_kernel:5.9.10
-
cpe:2.3:o:linux:linux_kernel:5.9.11
-
cpe:2.3:o:linux:linux_kernel:5.9.12
-
cpe:2.3:o:linux:linux_kernel:5.9.13
-
cpe:2.3:o:linux:linux_kernel:5.9.14
-
cpe:2.3:o:linux:linux_kernel:5.9.15
-
cpe:2.3:o:linux:linux_kernel:5.9.16
-
cpe:2.3:o:linux:linux_kernel:5.9.2
-
cpe:2.3:o:linux:linux_kernel:5.9.3
-
cpe:2.3:o:linux:linux_kernel:5.9.4
-
cpe:2.3:o:linux:linux_kernel:5.9.5
-
cpe:2.3:o:linux:linux_kernel:5.9.6
-
cpe:2.3:o:linux:linux_kernel:5.9.7
-
cpe:2.3:o:linux:linux_kernel:5.9.8
-
cpe:2.3:o:linux:linux_kernel:5.9.9