Bug 1221554 (CVE-2021-47125) - VUL-0: CVE-2021-47125: kernel: sch_htb: fix refcount leak in htb_parent_to_leaf_offload
Summary: VUL-0: CVE-2021-47125: kernel: sch_htb: fix refcount leak in htb_parent_to_le...
Status: RESOLVED FIXED
Alias: CVE-2021-47125
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Security Team bot
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/397859/
Whiteboard: CVSSv3.1:SUSE:CVE-2021-47125:5.5:(AV:...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-18 08:56 UTC by SMASH SMASH
Modified: 2024-06-05 12:56 UTC (History)
2 users (show)

See Also:
Found By: Security Response Team
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description SMASH SMASH 2024-03-18 08:56:15 UTC
In the Linux kernel, the following vulnerability has been resolved:

sch_htb: fix refcount leak in htb_parent_to_leaf_offload

The commit ae81feb7338c ("sch_htb: fix null pointer dereference
on a null new_q") fixes a NULL pointer dereference bug, but it
is not correct.

Because htb_graft_helper properly handles the case when new_q
is NULL, and after the previous patch by skipping this call
which creates an inconsistency : dev_queue->qdisc will still
point to the old qdisc, but cl->parent->leaf.q will point to
the new one (which will be noop_qdisc, because new_q was NULL).
The code is based on an assumption that these two pointers are
the same, so it can lead to refcount leaks.

The correct fix is to add a NULL pointer check to protect
qdisc_refcount_inc inside htb_parent_to_leaf_offload.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-47125
https://git.kernel.org/stable/c/944d671d5faa0d78980a3da5c0f04960ef1ad893
https://www.cve.org/CVERecord?id=CVE-2021-47125
https://git.kernel.org/stable/c/2411c02d03892a5057499f8102d0cc1e0f852416
https://bugzilla.redhat.com/show_bug.cgi?id=2269839
Comment 1 Gabriele Sonnu 2024-03-18 09:08:01 UTC
Offending commit (ae81feb7338c) found in:
 - ALP-current
 - cve/linux-5.14
 - SLE15-SP4-LTSS
 - SLE15-SP5
 - SLE15-SP6
 - stable

Fixing commit (944d671d5faa) found in:
 - ALP-current
 - cve/linux-5.14
 - SLE15-SP4-LTSS
 - SLE15-SP5
 - SLE15-SP6
 - stable

All branches fixed, @kernel-team please add the reference.
Comment 3 Andrea Mattiazzo 2024-06-05 12:56:43 UTC
All done, closing.