It was found that xorg-x11-server before 1.19.0 including uses memcmp() to check the received MIT cookie against a series of valid cookies. If the cookie is correct, it is allowed to attach to the Xorg session. Since most memcmp() implementations return after an invalid byte is seen, this causes a time difference between a valid and invalid byte, which could allow an efficient brute force attack.
Covert timing channels convey information by modulating some aspect of system behavior over time, so that the program receiving the information can observe system behavior and infer protected information.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Xorg-server | X.org | * | 1.19.4 (including) |
Xorg-server | Ubuntu | precise | * |
Xorg-server | Ubuntu | trusty | * |
Xorg-server | Ubuntu | upstream | * |
Xorg-server | Ubuntu | vivid/stable-phone-overlay | * |
Xorg-server | Ubuntu | xenial | * |
Xorg-server | Ubuntu | yakkety | * |
Xorg-server-hwe-16.04 | Ubuntu | xenial | * |
Xorg-server-lts-quantal | Ubuntu | precise | * |
Xorg-server-lts-raring | Ubuntu | precise | * |
Xorg-server-lts-saucy | Ubuntu | precise | * |
Xorg-server-lts-trusty | Ubuntu | precise | * |
Xorg-server-lts-utopic | Ubuntu | trusty | * |
Xorg-server-lts-vivid | Ubuntu | trusty | * |
Xorg-server-lts-wily | Ubuntu | trusty | * |
Xorg-server-lts-xenial | Ubuntu | trusty | * |
In some instances, knowing when data is transmitted between parties can provide a malicious user with privileged information. Also, externally monitoring the timing of operations can potentially reveal sensitive data. For example, a cryptographic operation can expose its internal state if the time it takes to perform the operation varies, based on the state. Covert channels are frequently classified as either storage or timing channels. Some examples of covert timing channels are the system’s paging rate, the time a certain transaction requires to execute, and the time it takes to gain access to a shared bus.