Bug 971170

Summary: Kernel: Infinite loop in the ext4 support could cause a denial of service.
Product: [Fedora] Fedora Reporter: Jonathan Salwan <jonathan.salwan>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-23 18:10:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
PoC none

Description Jonathan Salwan 2013-06-05 21:24:23 UTC
Created attachment 757373 [details]
PoC

In ./fs/ext4/balloc.c the "test_root" inline function is vulnerable to
'infinite' loop.

static inline int test_root(ext4_group_t a, int b)
{
    int num = b;

    while (a > num)
        num *= b;
    return num == a;
}

The 'a' argument is controlled from the userspace and its type is an
'unsigned int'. If 'a' value is 0xffffffff, we will seldom break the
'while' condition. With CAP_SYS_RESOURCE, an unprivileged user could 
use this flaw to cause a denial of service.

We can trigger this 'infinite' loop with the attached PoC.

Comment 1 Jonathan Salwan 2013-06-12 15:02:16 UTC
Maintainer notified on linux-ext4 mailing list.

Comment 3 Fedora End Of Life 2013-09-16 14:06:20 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 20 development cycle.
Changing version to '20'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora20

Comment 4 Josh Boyer 2013-09-23 18:10:38 UTC
This went into Linus' tree as commit b302ef2d3c73d8a07ed2f0679ce35f00b6dcacef and is included in 3.11-rc2.