CVE-2009-0778: High severity Linux Linux kernel vulnerability

Published Feb 12, 2009
·
Updated

Created attachment 331637 [details] ipdstcache (in blue) VS route -Cn | wc -l (in green) over time

Description of problem: The value of ipdstcache (in /proc/slabinfo) continues to grow constantly, even thought the cached route table remains fairly constant. This leads to the eventual time when ipdstcache reaches the value of /proc/sys/net/ipv4/route/maxsize. When this happens, the kernel complains with 'dst cache overflow' and the server no longer responds to any network activity.

Version-Release number of selected component (if applicable): kernel 2.6.18-92.1.22.el5

How reproducible: live system being currently affected by this issue.

Steps to Reproduce: 1. Configure test machine as a router between two networks 2. send packets from network A to network B with a large number of different source/dest IPs 3. Watch the values of ipdstcache and rtcache Actual results: ipdstcache continues to grow while rtcache grows and shrinks with the traffic

Expected results: ipdstcache and rtcache follow each other closely. Values return to zero after traffic stops and route cache entries expire.

Additional info:

Other sources

The icmpsend function in net/ipv4/icmp.c in the Linux kernel before 2.6.25, when configured as a router with a REJECT route, does not properly manage the Protocol Independent Destination Cache (aka DST) in some situations involving transmission of an ICMP Host Unreachable message, which allows remote attackers to cause a denial of service (connectivity outage) by sending a large series of packets to many destination IP addresses within this REJECT route, related to an "rtcache leak."

Affected Software

364 affected components
Linux Linux kernel=2.6.11-rc3
Linux Linux kernel=2.6.20.6
Linux Linux kernel=2.6.4-rc3
Linux Linux kernel=2.6.17-rc6
Linux Linux kernel=2.6.20.9
Linux Linux kernel=2.6.18-rc3
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.20-rc2
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.21
Linux Linux kernel=2.6.21-git3
Linux Linux kernel=2.6.16.9
Linux Linux kernel=2.6.12-rc1
Linux Linux kernel=2.6.12-rc4
Linux Linux kernel=2.6.17.9
Linux Linux kernel=2.6.19-rc4
Linux Linux kernel=2.6.14-rc2
Linux Linux kernel=2.6.4-rc1
Linux Linux kernel=2.6.11.2
Linux Linux kernel=2.6.5
Linux Linux kernel=2.6.15.3
Linux Linux kernel=2.6.21-git5
Linux Linux kernel=2.6.11.10
Linux Linux kernel=2.6.10-rc3
Linux Linux kernel=2.6.13-rc5
Linux Linux kernel=2.6.1
Linux Linux kernel=2.6.16.43
Linux Linux kernel=2.6.21-git4
Linux Linux kernel=2.6.16.6
Linux Linux kernel=2.6.16.8
Linux Linux kernel=2.6.16-rc6
Linux Linux kernel=2.6.20.13
Linux Linux kernel=2.6.21-rc5
Linux Linux kernel=2.6.22.4
Linux Linux kernel=2.6.7-rc3
Linux Linux kernel=2.6.14.7
Linux Linux kernel=2.6.18-rc2
Linux Linux kernel=2.6.16-rc1
Linux Linux kernel=2.6.3-rc2
Linux Linux kernel=2.6.13
Linux Linux kernel=2.6.17.2
Linux Linux kernel=2.6.15-rc4
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.18-rc5
Linux Linux kernel=2.6.21-rc7
Linux Linux kernel<=2.6.24.7
Linux Linux kernel=2.6.21-rc4
Linux Linux kernel=2.6.16.34
Linux Linux kernel=2.6.18-rc4
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.17.4
Linux Linux kernel=2.6.16.18
Linux Linux kernel=2.6.17.14
Linux Linux kernel=2.6.10
Linux Linux kernel=2.6.13-rc1
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.14.3
Linux Linux kernel=2.6.13-rc6
Linux Linux kernel=2.6.24-rc3
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.0-test5
Linux Linux kernel=2.6.16.13
Linux Linux kernel=2.6.3
Linux Linux kernel=2.6.13-rc7
Linux Linux kernel=2.6.21.6
Linux Linux kernel=2.6.0-test2
Linux Linux kernel=2.6.22.1
Linux Linux kernel=2.6.9-rc1
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.4
Linux Linux kernel=2.6.16.15
Linux Linux kernel=2.6.13-rc2
Linux Linux kernel=2.6.15.6
Linux Linux kernel=2.6.24-rc5
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.7-rc1
Linux Linux kernel=2.6.9-rc3
Linux Linux kernel=2.6.19.3
Linux Linux kernel=2.6.19.4
Linux Linux kernel=2.6.15-rc5
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.8-rc4
Linux Linux kernel=2.6.23.1
Linux Linux kernel=2.6.2
Linux Linux kernel=2.6.6-rc3
Linux Linux kernel=2.6.14.5
Linux Linux kernel=2.6.13.2
Linux Linux kernel=2.6.12-rc5
Linux Linux kernel=2.6.1-rc3
Linux Linux kernel=2.6.8-rc1
Linux Linux kernel=2.6.0-test11
Linux Linux kernel=2.6.17.5
Linux Linux kernel=2.6.14-rc3
Linux Linux kernel=2.6.2-rc3
Linux Linux kernel=2.6.24-rc4
Linux Linux kernel=2.6.18.5
Linux Linux kernel=2.6.4-rc2
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.17
Linux Linux kernel=2.6.24
Linux Linux kernel=2.6.12-rc2
Linux Linux kernel=2.6.1-rc2
Linux Linux kernel=2.6.19.2
Linux Linux kernel=2.6.21.4
Linux Linux kernel=2.6.11-rc4
Linux Linux kernel=2.6.16.11
Linux Linux kernel=2.6.20.17
Linux Linux kernel=2.6.21-git2
Linux Linux kernel=2.6.16.14
Linux Linux kernel=2.6.15.10
Linux Linux kernel=2.6.20.12
Linux Linux kernel=2.6.16.25
Linux Linux kernel=2.6.15-rc3
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.3-rc3
Linux Linux kernel=2.6.15.11
Linux Linux kernel=2.6.14.1
Linux Linux kernel=2.6.19-rc1
Linux Linux kernel=2.6.23.15
Linux Linux kernel=2.6.16.23
Linux Linux kernel=2.6.0-test1
Linux Linux kernel=2.6.16-rc5
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.7-rc2
Linux Linux kernel=2.6.22.7
Linux Linux kernel=2.6.16.3
Linux Linux kernel=2.6.0-test6
Linux Linux kernel=2.6.17-rc3
Linux Linux kernel=2.6.12-rc3
Linux Linux kernel=2.6.24-rc1
Linux Linux kernel=2.6.15-rc2
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.11.9
Linux Linux kernel=2.6.10-rc2
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.0-test4
Linux Linux kernel=2.6.21-rc6
Linux Linux kernel=2.6.20.15
Linux Linux kernel=2.6.2-rc1
Linux Linux kernel=2.6.22.18
Linux Linux kernel=2.6.0
Linux Linux kernel=2.6.16-rc4
Linux Linux kernel=2.6.5-rc1
Linux Linux kernel=2.6.21-git7
Linux Linux kernel=2.6.16.54
Linux Linux kernel=2.6.13.4
Linux Linux kernel=2.6.22.20
Linux Linux kernel=2.6.23-rc2
Linux Linux kernel=2.6.17-rc1
Linux Linux kernel=2.6.20.18
Linux Linux kernel=2.6.23.9
Linux Linux kernel=2.6.17-rc2
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.11-rc1
Linux Linux kernel=2.6.16.62
Linux Linux kernel=2.6.18.2
Linux Linux kernel=2.6.16.29
Linux Linux kernel=2.6.23-rc1
Linux Linux kernel=2.6.24.4
Linux Linux kernel=2.6.14-rc1
Linux Linux kernel=2.6.22.9
Linux Linux kernel=2.6.6-rc2
Linux Linux kernel=2.6.20.11
Linux Linux kernel=2.6.9-rc2
Linux Linux kernel=2.6.19
Linux Linux kernel=2.6.20.3
Linux Linux kernel=2.6.16
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.24.5
Linux Linux kernel=2.6.0-test10
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.15.9
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.15.8
Linux Linux kernel=2.6.0-test9
Linux Linux kernel=2.6.10-rc1
Linux Linux kernel=2.6.16.47
Linux Linux kernel=2.6.16.42
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.22.11
Linux Linux kernel=2.6.16.55
Linux Linux kernel=2.6.23
Linux Linux kernel=2.6.9-rc4
Linux Linux kernel=2.6.12.3
Linux Linux kernel=2.6.22.10
Linux Linux kernel=2.6.23.17
Linux Linux kernel=2.6.13-rc4
Linux Linux kernel=2.6.23.2
Linux Linux kernel=2.6.7
Linux Linux kernel=2.6.11-rc2
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.16.59
Linux Linux kernel=2.6.3-rc4
Linux Linux kernel=2.6.16.38
Linux Linux kernel=2.6.24-rc2
Linux Linux kernel=2.6.16.17
Linux Linux kernel=2.6.1-rc1
Linux Linux kernel=2.6.21-git1
Linux Linux kernel=2.6.20.2
Linux Linux kernel=2.6.16.12
Linux Linux kernel=2.6.6-rc1
Linux Linux kernel=2.6.16.27
Linux Linux kernel=2.6.16.53
Linux Linux kernel=2.6.18-rc7
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.5-rc2
Linux Linux kernel=2.6.16.2
Linux Linux kernel=2.6.24.6
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.15-rc6
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.15-rc1
Linux Linux kernel=2.6.16-rc3
Linux Linux kernel=2.6.18-rc6
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.14-rc4
Linux Linux kernel=2.6.19.5
Linux Linux kernel=2.6.18
Linux Linux kernel=2.6.19-rc2
Linux Linux kernel=2.6.20.4
Linux Linux kernel=2.6.0-test7
Linux Linux kernel=2.6.15-rc7
Linux Linux kernel=2.6.17.6
Linux Linux kernel=2.6.5-rc3
Linux Linux kernel=2.6.23.6
Linux Linux kernel=2.6.14-rc5
Linux Linux kernel=2.6.16.7
Linux Linux kernel=2.6.17.13
Linux Linux kernel=2.6.2-rc2
Linux Linux kernel=2.6.22-rc6
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.16.56
Linux Linux kernel=2.6.12-rc6
Linux Linux kernel=2.6.22.19
Linux Linux kernel=2.6.24.3
Linux Linux kernel=2.6.13-rc3
Linux Linux kernel=2.6.19-rc3
Linux Linux kernel=2.6.20.14
Linux Linux kernel=2.6.17-rc4
Linux Linux kernel=2.6.11-rc5
Linux Linux kernel=2.6.8-rc2
Linux Linux kernel=2.6.3-rc1
Linux Linux kernel=2.6.22.5
Linux Linux kernel=2.6.21-rc3
Linux Linux kernel=2.6.8-rc3
Linux Linux kernel=2.6.20.7
Linux Linux kernel=2.6.16.5
Linux Linux kernel=2.6.11.4
Linux Linux kernel=2.6.16.19
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.22.16
Linux Linux kernel=2.6.0-test8
Linux Linux kernel=2.6.11.1
Linux Linux kernel=2.6.16-rc2
Linux Linux kernel=2.6.18-rc1
Linux Linux kernel=2.6.21-git6
Linux Linux kernel=2.6.9
Linux Linux kernel=2.6.13.1
Linux Linux kernel=2.6.23.11
Linux Linux kernel=2.6.17-rc5
Linux Linux kernel=2.6.22.14
Linux Linux kernel=2.6.6
Linux Linux kernel=2.6.0-test3
Linux Linux kernel=2.6.12
VMware Server=2.0.0
VMware ESX=3.5
VMware ESX=4.0
VMware ESX=2.5.5
VMware ESX=3.0.3
VMware vCenter=4.0
VMware VirtualCenter=2.0.2
VMware VirtualCenter=2.5
Microsoft Windows
VMware vMA=4.0
redhat Enterprise Linux=5.0
All of the following
Any of the following
VMware vCenter=4.0
VMware VirtualCenter=2.0.2
VMware VirtualCenter=2.5
Microsoft Windows
All of the following
VMware vMA=4.0
redhat Enterprise Linux=5.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Linux kernel to a version that resolves this vulnerability.

    Fixed in 2.6.25
  2. Operational

    Monitor ip_dst_cache (from /proc/slabinfo) and rt_cache and the value of /proc/sys/net/ipv4/route/max_size; watch kernel logs for 'dst cache overflow'.

  3. Operational

    If ip_dst_cache reaches /proc/sys/net/ipv4/route/max_size or 'dst cache overflow' occurs, stop the traffic generating many distinct destination addresses; values return to zero after traffic stops and route cache entries expire.

Event History

Feb 12, 2009
Data Sourced
via Red Hat·12:31 AM
DescriptionSeverityAffected Software
Mar 12, 2009
CVE Published
via MITRE·03:00 PM
Data Sourced
via MITRE·03:00 PM
Description
Rejected
03:20 PM
Data Sourced
via NVD·03:20 PM
DescriptionSeverityAffected Software
Jun 16, 2026
Rejected
via NVD·11:05 PM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2009-0778?

CVE-2009-0778 is classified as a high-severity vulnerability that affects several versions of the Linux kernel.

2

How do I fix CVE-2009-0778?

To fix CVE-2009-0778, it is recommended to update the Linux kernel to version 2.6.25 or later.

3

What specific versions of Linux Kernel are affected by CVE-2009-0778?

CVE-2009-0778 affects Linux Kernel versions from 2.6.11 to 2.6.24.

4

What types of attacks can exploit CVE-2009-0778?

Exploitation of CVE-2009-0778 can enable a local user to execute arbitrary code with elevated privileges.

5

Is there a workaround for CVE-2009-0778 if I cannot update?

A recommended workaround for CVE-2009-0778 includes reducing user permissions to limit the potential for arbitrary code execution.

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