db4455cfc9
Add a check for path traversal to sysctl.
References:
commit f25d462166
Signed-off-by: Craig Small <csmall@dropbear.xyz>
30 lines
992 B
Plaintext
30 lines
992 B
Plaintext
#
|
|
# Dejagnu tests for sysctl (read only) - part of procps
|
|
#
|
|
set sysctl ${topdir}sysctl
|
|
set hostname [ exec cat "/proc/sys/kernel/hostname" ]
|
|
|
|
set test "sysctl with no arguments"
|
|
spawn $sysctl
|
|
expect_pass "$test" "^\\s+Usage:\\s+\(lt-\)?sysctl \\\[options\\\] \\\[variable\\\[=value\\\] \.\.\.\\\]"
|
|
|
|
set test "sysctl reading a variable using slash delimiter"
|
|
spawn $sysctl kernel/hostname
|
|
expect_pass "$test" "kernel.hostname = ${hostname}"
|
|
|
|
set test "sysctl reading a variable using dot delimiter"
|
|
spawn $sysctl kernel.hostname
|
|
expect_pass "$test" "kernel.hostname = ${hostname}"
|
|
|
|
set test "sysctl reading a variable suppress key"
|
|
spawn $sysctl -n kernel.hostname
|
|
expect_pass "$test" "${hostname}"
|
|
|
|
set test "sysctl reading a variable suppress value"
|
|
spawn $sysctl -N kernel.hostname
|
|
expect_pass "$test" "kernel.hostname"
|
|
|
|
set test "sysctl reading using a path traversal"
|
|
spawn $sysctl /../../etc/passwd
|
|
expect_pass "$test" "sysctl: Path is not under /proc/sys/: /proc/sys//../../etc/passwd"
|