CVE-2009-2695: Buffer Overflow

Published Aug 17, 2009
·
Updated

Description of problem: Dan Walsh's blog post mentioned in the previous comment details selinux-policy part of the issue tracked via bug #512284. As noted in the the blog, selinux-policy provides a boolean - allowunconfinedmmaplow - which controls whether mmapminaddr restriction is applied to the process. This boolean, however, did not work as expected, as unconfinedt domain (default domain for logged-in unprivileged users) was always permitted to map low memory pages regardless of the boolean setting. This problem with the boolean is being fixed and the fix will be included in future selinux-policy updates in RHEL5 and Fedora (see Dan's blog for NVRs).

Few notes specific to Red Hat Enterprise Linux 5: Support for mmapminaddr sysctl was not included in the GA version of RHEL5. It was only added in kernel update in 5.2 (it first appeared upstream in 2.6.24). selinux-policy was, to avoid breaking applications needing low memory pages mapping on upgrade from 5.1 to 5.2, configured to allow mmapzero in unconfined domains and only disallow it in confined domains (e.g. various network facing services). In 5.3, allowunconfinedmmaplow boolean was added, but it's default value for targeted policy was changed to on, i.e. allowing mmapzero in all unconfined domains by default. This default boolean value is planned to remain unchanged in 5.4.

It should also be noted, that even with allowunconfinedmmaplow boolean set to off, it is still possible for unconfinedt user to transition to other domain that is permitted to mmapzero, as details in the Dan's blog post. Upstream discussion on how to best address this issue is still ongoing.

Eric's proposed patches moving mmapminaddr check out of security were submitted. If they are accepted upstream, mmapminaddr will be checked before LSM hooks are called. Security modules will only be consulted if mmapminaddr check has passed (e.g. when mmapminaddr is 0), so SELinux may still be able to restrict mapping of the low pages / zero page for confined domains and permit mapping in unconfined, even when mmapminaddr is 0.

Eric's patches with further discussion: http://patchwork.kernel.org/patch/36540/ http://patchwork.kernel.org/patch/36539/

Updated version: http://patchwork.kernel.org/patch/36650/ http://patchwork.kernel.org/patch/36649/

Further discussion of the proposed change: http://thread.gmane.org/gmane.linux.kernel.lsm/9075

mmapminaddr on SELinux and non-SELinux systems http://eparis.livejournal.com/606.html

Confining the unconfined. Oxymoron? http://danwalsh.livejournal.com/30084.html

Kbase: http://kbase.redhat.com/faq/docs/DOC-18042

Other sources

The Linux kernel before 2.6.31-rc7 does not properly prevent mmap operations that target page zero and other low memory addresses, which allows local users to gain privileges by exploiting NULL pointer dereference vulnerabilities, related to (1) the default configuration of the allowunconfinedmmaplow boolean in SELinux on Red Hat Enterprise Linux (RHEL) 5, (2) an error that causes allowunconfinedmmaplow to be ignored in the unconfinedt domain, (3) lack of a requirement for the CAPSYSRAWIO capability for these mmap operations, and (4) interaction between the mmapminaddr protection mechanism and certain application programs.

MITRE

Affected Software

315 affected components
Linux Linux kernel=2.6.27.29
Linux Linux kernel=2.6.27.12
Linux Linux kernel=2.6.20.6
Linux Linux kernel=2.6.20.9
Linux Linux kernel=2.6.11
Linux Linux kernel=2.6.23.4
Linux Linux kernel=2.6.22.15
Linux Linux kernel=2.6.16.16
Linux Linux kernel=2.6.18.7
Linux Linux kernel=2.6.17.12
Linux Linux kernel=2.6.16.39
Linux Linux kernel=2.6.27.3
Linux Linux kernel=2.6.29.3
Linux Linux kernel=2.6.21
Linux Linux kernel=2.6.16.9
Linux Linux kernel=2.6.17.9
Linux Linux kernel=2.6.11.2
Linux Linux kernel=2.6.27.1
Linux Linux kernel=2.6.5
Linux Linux kernel=2.6.15.3
Linux Linux kernel=2.6.27.30
Linux Linux kernel=2.6.11.10
Linux Linux kernel=2.6.24.7
Linux Linux kernel=2.6.1
Linux Linux kernel=2.6.16.43
Linux Linux kernel=2.6.16.6
Linux Linux kernel=2.6.16.8
Linux Linux kernel=2.6.20.13
Linux Linux kernel=2.6.22.4
Linux Linux kernel=2.6.14.7
Linux Linux kernel=2.6.27.18
Linux Linux kernel=2.6.13
Linux Linux kernel=2.6.17.2
Linux Linux kernel=2.6.13.3
Linux Linux kernel=2.6.23.13
Linux Linux kernel=2.6.11.8
Linux Linux kernel=2.6.24.2
Linux Linux kernel=2.6.26.5
Linux Linux kernel=2.6.16.34
Linux Linux kernel=2.6.25.20
Linux Linux kernel=2.6.27.21
Linux Linux kernel=2.6.23.7
Linux Linux kernel=2.6.17.8
Linux Linux kernel=2.6.14.4
Linux Linux kernel=2.6.14
Linux Linux kernel=2.6.25.5
Linux Linux kernel=2.6.17.4
Linux Linux kernel=2.6.16.18
Linux Linux kernel=2.6.27.27
Linux Linux kernel=2.6.17.14
Linux Linux kernel=2.6.10
Linux Linux kernel=2.6.23.8
Linux Linux kernel=2.6.16.45
Linux Linux kernel=2.6.22.12
Linux Linux kernel=2.6.25.18
Linux Linux kernel=2.6.14.3
Linux Linux kernel=2.6.29
Linux Linux kernel=2.6.18.3
Linux Linux kernel=2.6.16.37
Linux Linux kernel=2.6.11.6
Linux Linux kernel=2.6.16.48
Linux Linux kernel=2.6.11.11
Linux Linux kernel=2.6.16.13
Linux Linux kernel=2.6.27.10
Linux Linux kernel=2.6.3
Linux Linux kernel=2.6.21.6
Linux Linux kernel=2.6.26.6
Linux Linux kernel=2.6.22.1
Linux Linux kernel=2.6.27.17
Linux Linux kernel=2.6.16.4
Linux Linux kernel=2.6.23.16
Linux Linux kernel=2.6.17.3
Linux Linux kernel=2.6.24.1
Linux Linux kernel=2.6.20.5
Linux Linux kernel=2.6.22
Linux Linux kernel=2.6.28.4
Linux Linux kernel=2.6.4
Linux Linux kernel=2.6.27.16
Linux Linux kernel=2.6.26
Linux Linux kernel=2.6.16.15
Linux Linux kernel=2.6.27.20
Linux Linux kernel=2.6.15.6
Linux Linux kernel=2.6.26.3
Linux Linux kernel=2.6.20.16
Linux Linux kernel=2.6.15.1
Linux Linux kernel=2.6.11.5
Linux Linux kernel=2.6.28.2
Linux Linux kernel=2.6.25.9
Linux Linux kernel=2.6.19.3
Linux Linux kernel=2.6.27.4
Linux Linux kernel=2.6.27
Linux Linux kernel=2.6.19.4
Linux Linux kernel=2.6.25.13
Linux Linux kernel=2.6.28.5
Linux Linux kernel=2.6.19.1
Linux Linux kernel=2.6.18.4
Linux Linux kernel=2.6.16.1
Linux Linux kernel=2.6.18.1
Linux Linux kernel=2.6.20.21
Linux Linux kernel=2.6.31-rc1
Linux Linux kernel=2.6.27.13
Linux Linux kernel=2.6.23.1
Linux Linux kernel=2.6.2
Linux Linux kernel=2.6.14.5
Linux Linux kernel=2.6.13.2
Linux Linux kernel=2.6.17.5
Linux Linux kernel=2.6.18.5
Linux Linux kernel=2.6.21.1
Linux Linux kernel=2.6.16.32
Linux Linux kernel=2.6.13.5
Linux Linux kernel=2.6.16.57
Linux Linux kernel=2.6.16.49
Linux Linux kernel=2.6.25.3
Linux Linux kernel=2.6.17
Linux Linux kernel=2.6.24
Linux Linux kernel=2.6.19.2
Linux Linux kernel=2.6.26.2
Linux Linux kernel=2.6.21.4
Linux Linux kernel=2.6.16.11
Linux Linux kernel=2.6.20.17
Linux Linux kernel=2.6.16.14
Linux Linux kernel=2.6.20.12
Linux Linux kernel=2.6.16.25
Linux Linux kernel=2.6.27.15
Linux Linux kernel=2.6.16.21
Linux Linux kernel=2.6.16.33
Linux Linux kernel=2.6.8
Linux Linux kernel=2.6.16.28
Linux Linux kernel=2.6.17.10
Linux Linux kernel=2.6.21.5
Linux Linux kernel=2.6.25.15
Linux Linux kernel=2.6.14.1
Linux Linux kernel=2.6.23.15
Linux Linux kernel=2.6.16.23
Linux Linux kernel=2.6.29.4
Linux Linux kernel=2.6.12.5
Linux Linux kernel=2.6.15.7
Linux Linux kernel=2.6.20
Linux Linux kernel=2.6.23.10
Linux Linux kernel=2.6.22.7
Linux Linux kernel=2.6.27.26
Linux Linux kernel=2.6.16.3
Linux Linux kernel=2.6.27.8
Linux Linux kernel=2.6.26.1
Linux Linux kernel=2.6.25.19
Linux Linux kernel=2.6.20.20
Linux Linux kernel=2.6.16.36
Linux Linux kernel=2.6.14.6
Linux Linux kernel=2.6.12.1
Linux Linux kernel=2.6.27.9
Linux Linux kernel=2.6.11.9
Linux Linux kernel=2.6.16.46
Linux Linux kernel=2.6.17.1
Linux Linux kernel=2.6.20.8
Linux Linux kernel=2.6.27.25
Linux Linux kernel=2.6.20.15
Linux Linux kernel=2.6.22.18
Linux Linux kernel=2.6.0
Linux Linux kernel=2.6.25.8
Linux Linux kernel=2.6.16.54
Linux Linux kernel=2.6.13.4
Linux Linux kernel=2.6.20.18
Linux Linux kernel=2.6.23.9
Linux Linux kernel=2.6.22.6
Linux Linux kernel=2.6.23.3
Linux Linux kernel=2.6.18.8
Linux Linux kernel=2.6.22.3
Linux Linux kernel=2.6.12.2
Linux Linux kernel=2.6.16.31
Linux Linux kernel=2.6.16.26
Linux Linux kernel=2.6.16.62
Linux Linux kernel=2.6.18.2
Linux Linux kernel=2.6.28.8
Linux Linux kernel=2.6.16.29
Linux Linux kernel=2.6.29.1
Linux Linux kernel=2.6.24.4
Linux Linux kernel=2.6.27.19
Linux Linux kernel<=2.6.31
Linux Linux kernel=2.6.25.16
Linux Linux kernel=2.6.22.9
Linux Linux kernel=2.6.25.17
Linux Linux kernel=2.6.20.11
Linux Linux kernel=2.6.19
Linux Linux kernel=2.6.20.3
Linux Linux kernel=2.6.16
Linux Linux kernel=2.6.30.4
Linux Linux kernel=2.6.28.3
Linux Linux kernel=2.6.22.13
Linux Linux kernel=2.6.19.7
Linux Linux kernel=2.6.21.3
Linux Linux kernel=2.6.27.28
Linux Linux kernel=2.6.24.5
Linux Linux kernel=2.6.16.51
Linux Linux kernel=2.6.15.2
Linux Linux kernel=2.6.20.19
Linux Linux kernel=2.6.16.22
Linux Linux kernel=2.6.22.17
Linux Linux kernel=2.6.16.58
Linux Linux kernel=2.6.16.40
Linux Linux kernel=2.6.16.47
Linux Linux kernel=2.6.16.42
Linux Linux kernel=2.6.27.22
Linux Linux kernel=2.6.23.14
Linux Linux kernel=2.6.17.11
Linux Linux kernel=2.6.16.10
Linux Linux kernel=2.6.12.4
Linux Linux kernel=2.6.16.41
Linux Linux kernel=2.6.16.52
Linux Linux kernel=2.6.11.3
Linux Linux kernel=2.6.20.10
Linux Linux kernel=2.6.16.24
Linux Linux kernel=2.6.25.10
Linux Linux kernel=2.6.22.11
Linux Linux kernel=2.6.16.55
Linux Linux kernel=2.6.23
Linux Linux kernel=2.6.12.3
Linux Linux kernel=2.6.22.10
Linux Linux kernel=2.6.29.6
Linux Linux kernel=2.6.23.17
Linux Linux kernel=2.6.27.5
Linux Linux kernel=2.6.23.2
Linux Linux kernel=2.6.25.1
Linux Linux kernel=2.6.25.4
Linux Linux kernel=2.6.28.9
Linux Linux kernel=2.6.30.2
Linux Linux kernel=2.6.7
Linux Linux kernel=2.6.21.7
Linux Linux kernel=2.6.16.30
Linux Linux kernel=2.6.21.2
Linux Linux kernel=2.6.15.4
Linux Linux kernel=2.6.27.7
Linux Linux kernel=2.6.16.59
Linux Linux kernel=2.6.30.1
Linux Linux kernel=2.6.16.38
Linux Linux kernel=2.6.16.17
Linux Linux kernel=2.6.26.8
Linux Linux kernel=2.6.20.2
Linux Linux kernel=2.6.28.6
Linux Linux kernel=2.6.16.12
Linux Linux kernel=2.6.16.27
Linux Linux kernel=2.6.16.53
Linux Linux kernel=2.6.28.7
Linux Linux kernel=2.6.12.6
Linux Linux kernel=2.6.17.7
Linux Linux kernel=2.6.20.1
Linux Linux kernel=2.6.11.7
Linux Linux kernel=2.6.16.2
Linux Linux kernel=2.6.24.6
Linux Linux kernel=2.6.31-rc3
Linux Linux kernel=2.6.18.6
Linux Linux kernel=2.6.15
Linux Linux kernel=2.6.16.44
Linux Linux kernel=2.6.23.12
Linux Linux kernel=2.6.16.35
Linux Linux kernel=2.6.19.6
Linux Linux kernel=2.6.16.50
Linux Linux kernel=2.6.25.11
Linux Linux kernel=2.6.27.31
Linux Linux kernel=2.6.29.2
Linux Linux kernel=2.6.23.5
Linux Linux kernel=2.6.22.8
Linux Linux kernel=2.6.14.2
Linux Linux kernel=2.6.16.61
Linux Linux kernel=2.6.31-rc2
Linux Linux kernel=2.6.19.5
Linux Linux kernel=2.6.18
Linux Linux kernel=2.6.27.24
Linux Linux kernel=2.6.20.4
Linux Linux kernel=2.6.17.6
Linux Linux kernel=2.6.23.6
Linux Linux kernel=2.6.27.2
Linux Linux kernel=2.6.16.7
Linux Linux kernel=2.6.17.13
Linux Linux kernel=2.6.16.60
Linux Linux kernel=2.6.22.2
Linux Linux kernel=2.6.8.1
Linux Linux kernel=2.6.27.11
Linux Linux kernel=2.6.16.56
Linux Linux kernel=2.6.22.19
Linux Linux kernel=2.6.24.3
Linux Linux kernel=2.6.25
Linux Linux kernel=2.6.20.14
Linux Linux kernel=2.6.25.2
Linux Linux kernel=2.6.22.5
Linux Linux kernel=2.6.25.7
Linux Linux kernel=2.6.30.5
Linux Linux kernel=2.6.25.14
Linux Linux kernel=2.6.20.7
Linux Linux kernel=2.6.28.1
Linux Linux kernel=2.6.16.5
Linux Linux kernel=2.6.30
Linux Linux kernel=2.6.11.4
Linux Linux kernel=2.6.26.4
Linux Linux kernel=2.6.25.12
Linux Linux kernel=2.6.16.19
Linux Linux kernel=2.6.27.6
Linux Linux kernel=2.6.26.7
Linux Linux kernel=2.6.25.6
Linux Linux kernel=2.6.11.12
Linux Linux kernel=2.6.16.20
Linux Linux kernel=2.6.15.5
Linux Linux kernel=2.6.28.10
Linux Linux kernel=2.6.22.16
Linux Linux kernel=2.6.11.1
Linux Linux kernel=2.6.30.3
Linux Linux kernel=2.6.9
Linux Linux kernel=2.6.27.23
Linux Linux kernel=2.6.13.1
Linux Linux kernel=2.6.23.11
Linux Linux kernel=2.6.27.14
Linux Linux kernel=2.6.28
Linux Linux kernel=2.6.29.5
Linux Linux kernel=2.6.22.14
Linux Linux kernel=2.6.6
Linux Linux kernel=2.6.12

Event History

Aug 17, 2009
Data Sourced
12:28 PM
DescriptionSeverityAffected Software
Aug 28, 2009
CVE Published
via MITRE·03:00 PM
Data Sourced
via MITRE·03:00 PM
Description

Frequently Asked Questions

1

What is the severity of CVE-2009-2695?

CVE-2009-2695 has been rated as a moderate severity vulnerability.

2

How do I fix CVE-2009-2695?

To fix CVE-2009-2695, users should upgrade to the latest version of the Linux kernel that addresses this vulnerability.

3

What systems are affected by CVE-2009-2695?

CVE-2009-2695 affects multiple versions of the Linux kernel up to 2.6.31.

4

Is CVE-2009-2695 a common vulnerability?

CVE-2009-2695 is considered a known vulnerability within the Linux kernel ecosystem.

5

What type of vulnerability is CVE-2009-2695?

CVE-2009-2695 is categorized as a local privilege escalation vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203