Overview
The glibc implementation of unsetenv() fails to properly remove one of two successive occurrences of the same environment variable if the variable is redundently passed to a program.
Description
The glibc implementation of unsetenv(), if called to remove an environment variable that occurs two times in succession on the environment variable list, will fail to remove one of the occurences due to an off-by-one error in the implementation. |
Impact
An attacker can pass multiple occurrences of a sensitive environment variable (such as LD_LIBRARY_PATH, LD_PRELOAD, etc.) to a setuid root program. Even if glibc forces that program to ignore these variables, they may be passed along to a program called from the setuid root program. Using this indirect execution, an attacker might cause malicious code to be executed as root. |
Solution
Apply vendor patches; see the Systems Affected section below. |
Vendor Information
CVSS Metrics
Group | Score | Vector |
---|---|---|
Base | ||
Temporal | ||
Environmental |
References
Acknowledgements
The original report of this vulnerability was by Tymm Twillman
This document was last modified by Tim Shimeall.
Other Information
CVE IDs: | CVE-2000-0824 |
Severity Metric: | 7.09 |
Date Public: | 1999-09-17 |
Date First Published: | 2001-05-17 |
Date Last Updated: | 2002-09-13 17:19 UTC |
Document Revision: | 9 |