Todd C. Miller
65df01dd71
Add more passes to policy fuzzer
...
Now execises list, list other user and show_version.
2021-02-25 15:27:46 -07:00
Todd C. Miller
b3b80fe6df
Implement sudoers_policy_deregister_hooks()
...
Register/deregister hooks in fuzz_policy and also call show_version().
2021-02-25 15:02:09 -07:00
Todd C. Miller
e6dc13229f
Add sudoers debug register/deregister.
2021-02-25 13:35:29 -07:00
Todd C. Miller
7bafd52fac
Remove unnecessary break statement.
2021-02-25 13:19:55 -07:00
Todd C. Miller
0d04bbdbe2
Include a sha384 digest in the test corpus.
2021-02-25 13:13:32 -07:00
Todd C. Miller
ea341e2d34
Parse sudoers file in the C locale.
2021-02-25 13:08:12 -07:00
Todd C. Miller
24e1774ce3
Add regress test with all current Defaults settings.
...
Currently skips SELinux and Solaris privilege settings.
2021-02-25 11:26:55 -07:00
Todd C. Miller
e7b414ce4e
Move env hooks into sudoers_hooks.c.
2021-02-24 19:09:46 -07:00
Todd C. Miller
f82890e5d7
No need to call check_defaults() and check_aliases() in quiet mode.
2021-02-24 19:09:16 -07:00
Todd C. Miller
b4e86a911f
sudoers_gc_init() is not currently used
2021-02-24 19:08:43 -07:00
Todd C. Miller
38c381a0cc
Split fmtsudoers.c into the parts used by sudoers plugin and cvtsudoers.
...
Only testsudoers and cvtsudoers use the full set of formatting functions.
2021-02-24 17:14:51 -07:00
Todd C. Miller
39e80e47ba
Check defaults settings too.
2021-02-24 16:44:15 -07:00
Todd C. Miller
05767145b3
Add fuzzer-specific stubs source file.
2021-02-24 16:43:59 -07:00
Todd C. Miller
792407fbe5
Do not overwrite existing ChangeLog file if there is no hg/git dir.
...
We don't want "make install" from a source tarball to nuke the ChangeLog.
2021-02-24 16:06:18 -07:00
Todd C. Miller
1ae4c1bf67
Remove fuzzer targets in "make clean"
2021-02-24 15:25:44 -07:00
Todd C. Miller
39774e2389
Ignore fuzzer targets
2021-02-24 15:23:16 -07:00
Todd C. Miller
a3f38fac0c
Set program name in fuzzers so we get consisten warnings.
2021-02-24 15:14:58 -07:00
Todd C. Miller
9d27880af8
Use real eventlog config fuctions instead of stubs.
2021-02-24 15:08:53 -07:00
Todd C. Miller
b93aad4e95
Move iolog info log writing to iolog_loginfo.c
2021-02-24 15:01:37 -07:00
Todd C. Miller
a56f7daeea
Split iolog_util.c into iolog_loginfo.c and iolog_timing.c.
...
Also rename check_iolog_util -> check_iolog_timing.
2021-02-24 14:40:33 -07:00
Todd C. Miller
2a657e2a12
Move legacy I/O log info file parsing to iolog_legacy.c
2021-02-24 14:34:14 -07:00
Todd C. Miller
4128582723
Move eventlog config code into eventlog_conf.c
2021-02-24 14:25:39 -07:00
Todd C. Miller
f399c449ad
Move eventlog_free() into its own file.
2021-02-24 13:59:17 -07:00
Todd C. Miller
dba37768bb
Stub out eventlog and iolog configuration setters.
2021-02-24 13:02:14 -07:00
Todd C. Miller
cbd11c44d2
Update Defaults settings after parsing sudoers.
...
Also stub out dump_defaults when fuzzing as it is not used.
2021-02-24 12:29:34 -07:00
Todd C. Miller
33551acd1f
Split base64 encode/decode functions into separate source files.
...
They are independent functions.
2021-02-24 12:20:36 -07:00
Todd C. Miller
f35d9c8be1
fuzz_printf and fuzz_conversation can be stubs.
2021-02-24 11:31:43 -07:00
Todd C. Miller
9f5aed70a1
Exercise tilde expansion if used in runcwd or runchroot.
2021-02-23 19:37:19 -07:00
Todd C. Miller
c702957879
Move alias checking code out of visudo.c and into check_aliases.c.
2021-02-23 19:07:12 -07:00
Todd C. Miller
2a0ba4008c
Check aliases in fuzz_sudoers if the policy parsed correctly.
2021-02-23 18:48:47 -07:00
Todd C. Miller
5a85543c16
Move alias checking code out of visudo.c and into check_aliases.c.
2021-02-23 18:42:37 -07:00
Todd C. Miller
c71a397368
We don't need to link fuzz_sudoers with file.c.
2021-02-23 16:39:32 -07:00
Todd C. Miller
03e610dab5
Strings in dictionary files need to be quoted.
2021-02-23 12:38:02 -07:00
Todd C. Miller
081e219e23
Add dictionary files for fuzzers where possible.
2021-02-23 11:28:47 -07:00
Todd C. Miller
e0761b9e3b
Also free safe_cmnd so it doesn't leak.
2021-02-22 20:18:49 -07:00
Todd C. Miller
322e0b3693
Return NOT_FOUND from the set_cmnd_path() stub since we don't set user_cmnd.
...
The purpose of set_cmnd_path() is to reset user_cmnd based on a new
runchroot. For the stub version we don't modify user_cmnd and so
must not return a status of FOUND.
Fixes oss-fuzz issue #31250 which only affected the fuzzer and not sudo.
2021-02-22 19:53:08 -07:00
Todd C. Miller
5fc6b8c177
Fix fuzz_sudoers output matching.
2021-02-22 16:43:34 -07:00
Todd C. Miller
4adc11e335
Print "running" and "executed" lines to stderr like libfuzzer does.
2021-02-22 15:43:45 -07:00
Todd C. Miller
39db44b041
Support passing sudo_make_gidlist_item() an array of gids.
...
The gids are formatted as strings, not gid_t.
2021-02-22 12:33:21 -07:00
Todd C. Miller
f92080be62
Prime user/group cached and set the interface list.
...
Also match parsed policy against multiple users.
2021-02-22 10:59:58 -07:00
Todd C. Miller
7463a1989f
Add sudo_mkgrent(), to be used to prime the group cache in tests/fuzzers.
2021-02-22 08:00:46 -07:00
Todd C. Miller
df42c0c1d2
Perform matching in fuzz_sudoers for inputs that parse correctly.
...
The fuzzer now exercised the normal match code as well as the
pseudo-command (list, validate, etc) match code.
Privileges are also listed for well-formed sudoers file.
2021-02-21 14:59:29 -07:00
Todd C. Miller
921097cb67
Add back SUDOERS_NAME_MATCH and enable it when fuzzing.
...
This avoids the test environment from influencing sudoers matching.
2021-02-21 13:39:56 -07:00
Todd C. Miller
ecbe95589a
Add missing globfree(3) in command_matches_glob() when matching a directory.
2021-02-21 13:35:00 -07:00
Todd C. Miller
387169ac67
Add support on AIX for loading plugins that are .a (not .so) files.
...
It is possible to specify the member name in parens after the path,
e.g. sudoers.a(shr.o) for 32-bit or sudoers.a(shr_64.o) for 64-bit.
If no member is specified in the path and dlopen() fails with ENOEXEC,
try again with an explicit member, either shr.o or shr_64.o.
2021-02-19 11:03:26 -07:00
Todd C. Miller
14c71eaa86
Add clean rules to .PHONY target.
2021-02-19 08:54:04 -07:00
Todd C. Miller
9f1e016cde
Add install-fuzz Makefile target to install the fuzzers and seed corpus.
...
The FUZZ_DESTDIR make variable needs to be set in the environment
or on the command line.
2021-02-18 19:38:54 -07:00
Todd C. Miller
5ea2acc4c2
Only display fuzz_policy output if the fuzzer exits with an error.
2021-02-18 15:12:42 -07:00
Todd C. Miller
d02cc9c3ac
Call list, validate and invalidate entry points too.
...
We need a separate open/close for each one.
2021-02-18 15:09:26 -07:00
Todd C. Miller
90534b5b27
Add --disable-ssp configure option.
...
This allows for disabling -fstack-protector without turning off the
other hardening options.
2021-02-18 13:58:09 -07:00