Reject SET commands with newline characters in the string values
authorJouni Malinen <jouni@qca.qualcomm.com>
Tue, 5 Apr 2016 20:55:48 +0000 (23:55 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 2 May 2016 08:08:25 +0000 (11:08 +0300)
commit2a3f56502b52375c3bf113cf92adfa99bad6b488
tree2b176e78ae74e3c6b7116c6586c6f8cdc40aa561
parent596a3fef83f23634f5ad4a30afcbb2c0f73fab06
Reject SET commands with newline characters in the string values

Many of the global configuration parameters are written as strings
without filtering and if there is an embedded newline character in the
value, unexpected configuration file data might be written.

This fixes an issue where wpa_supplicant could have updated the
configuration file global parameter with arbitrary data from the control
interface or D-Bus interface. While those interfaces are supposed to be
accessible only for trusted users/applications, it may be possible that
an untrusted user has access to a management software component that
does not validate the value of a parameter before passing it to
wpa_supplicant.

This could allow such an untrusted user to inject almost arbitrary data
into the configuration file. Such configuration file could result in
wpa_supplicant trying to load a library (e.g., opensc_engine_path,
pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
controlled location when starting again. This would allow code from that
library to be executed under the wpa_supplicant process privileges.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/config.c