Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2021-47585— btrfs: fix memory leak in __add_inode_ref()

EPSS 0.02% · P5
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2021-47585

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
btrfs: fix memory leak in __add_inode_ref()
Source: NVD (National Vulnerability Database)
Vulnerability Description
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 }
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs add_inode_ref() 中存在内存泄漏。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux d3316c8233bb05e0dd855d30aac347bb8ad76ee4 ~ 005d9292b5b2e71a009f911bd85d755009b37242 -
LinuxLinux 5.5 -

II. Public POCs for CVE-2021-47585

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2021-47585

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-06-19 · 122 CVEs total

CVE-2024-38612ipv6: sr: fix invalid unregister error path
CVE-2021-47584iocost: Fix divide-by-zero on donation from low hweight cgroup
CVE-2021-47582USB: core: Make do_proc_control() and do_proc_bulk() killable
CVE-2021-47583media: mxl111sf: change mutex_init() location
CVE-2021-47579ovl: fix warning in ovl_create_real()
CVE-2021-47580scsi: scsi_debug: Fix type in min_t to avoid stack OOB
CVE-2021-47578scsi: scsi_debug: Don't call kcalloc() if size arg is zero
CVE-2021-47576scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
CVE-2021-47577io-wq: check for wq exit after adding new worker task_work
CVE-2024-38617kunit/fortify: Fix mismatched kvalloc()/vfree() usage
CVE-2024-38618ALSA: timer: Set lower bound of start tick time
CVE-2024-38616wifi: carl9170: re-fix fortified-memset warning
CVE-2024-38615cpufreq: exit() callback is optional
CVE-2024-38614openrisc: traps: Don't send signals to kernel mode threads
CVE-2024-38613m68k: Fix spinlock race in kernel thread creation
CVE-2024-38611media: i2c: et8ek8: Don't strip remove function when driver is builtin
CVE-2024-38603drivers/perf: hisi: hns3: Actually use devm_add_action_or_reset()
CVE-2024-38601ring-buffer: Fix a race between readers and resize checks
CVE-2024-38600ALSA: Fix deadlocks with kctl removals at disconnection
CVE-2024-38602ax25: Fix reference count leak issues of ax25_dev

Showing top 20 of 122 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2021-47585

No comments yet


Leave a comment