Summary: |
|
||||||||||||||||||||||||
Any user that can run the glexec executable, can insert arbitrary lines into the glexec log file. |
|||||||||||||||||||||||||
| |||||||||||||||||||||||||
Access Required: |
local user |
||||||||||||||||||||||||
This vulnerability requires local access to the machine with the ability to execute glexec. |
|||||||||||||||||||||||||
Effort Required: |
low |
||||||||||||||||||||||||
To exploit this vulnerability requires the ability to write a simple C program. |
|||||||||||||||||||||||||
Impact/Consequences: |
low / medium |
||||||||||||||||||||||||
The impact of this vulnerability depends upon the use of the log file produced by glexec. The impact is a low level nuisance if the log file is used solely for debugging purposes. On the other hand, if the log file is used for audit or billing purposes the impact can be of a high consequence. If glexec is configured to use syslog instead of directly writing to a log file, and the syslog on the machine prevents new-lines in the log record from being written to the log file, then this vulnerability does not exist. |
|||||||||||||||||||||||||
Full Details: |
|
||||||||||||||||||||||||
Log records in glexec are written using the function None of the format strings include a new-line character, and most of the user
supplied values are checked to make sure they do not contain a new-line
character by the function The value of The the An attacker can insert a valid log line ending for "line 1", a complete log record for "line 2", and a log prefix for "line 3" to evade detection, by making it appear that all log lines are formatted correctly. There are other values passed as parameters to the |
|||||||||||||||||||||||||
Cause: |
improper data validation |
||||||||||||||||||||||||
This vulnerability is caused by failure to verify the validity of all the
data used to create log records. This includes values used internally in
|
|||||||||||||||||||||||||
Proposed Fix: |
|
||||||||||||||||||||||||
Once the entire log line is created, the entire line should be scanned for
new-line characters. If found these characters should be replaced by valid
character (or sequence of characters). This would catch all current and
future problems that arise by user supplied data injecting a new-line
character in the values used to create the prefix and by the values passed to
Also the value of |
|||||||||||||||||||||||||
Acknowledgment: |
|
||||||||||||||||||||||||
This research funded in part by National Science Foundation grant OCI-0844219, NATO grant CLG 983049, and National Science Foundation grants CNS-0627501 and CNS-0716460. |