DescriptionEugene Teo (Security Response)
2012-04-04 04:11:07 UTC
Commit 503358ae01b70ce6909d19dd01287093f6b6271c ("ext4: avoid divide by zero when trying to mount a corrupted file system") fixes CVE-2009-4307 by performing a sanity check on s_log_groups_per_flex, since it can be set to a bogus value by an attacker.
More info from Wang Xi:
The first commit (503358ae) fixes the division by zero. The fix is not perfect because:
1) Theoretically, a standard-conforming C compiler could generate code that is still vulnerable to division by zero, but I was not aware of any compilers doing that.
2) Logically, we should have groups_per_flex = 2^s_log_groups_per_flex, and the fix doesn't really ensure that. This is obviously not good, but not sure how bad the consequence would be.
Introduced by:
http://git.kernel.org/linus/503358ae01b70ce6909d19dd01287093f6b6271c
Upstream commit:
http://git.kernel.org/linus/d50f2ab6f050311dbf7b8f5501b25f0bf64a439b
Comment 3Eugene Teo (Security Response)
2012-04-04 04:19:24 UTC
Created kernel tracking bugs for this issue
Affects: fedora-all [bug 809693]
Comment 4Eugene Teo (Security Response)
2012-04-04 04:24:58 UTC