2019-08-16 20:33:56 +00:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
[ISO 8601](https://xkcd.com/1179/).
|
|
|
|
|
|
|
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
2023-04-07 21:38:30 +00:00
|
|
|
## [2.1.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Graceful shutdown on ^C while kernels generation.
|
|
|
|
|
|
|
|
- Flag to set the container runtime command.
|
|
|
|
|
|
|
|
- out-of-tree image --dry-run for printing full qemu command.
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- No exit at the end of the retries, will continue with the other
|
|
|
|
kernels.
|
|
|
|
|
|
|
|
- All temporary files moved to ~/.out-of-tree/tmp/.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Discrepancies between /lib/modules and /boot should no longer lead
|
|
|
|
to fatal errors.
|
|
|
|
|
|
|
|
- Podman support on macOS.
|
|
|
|
|
2023-04-06 22:48:54 +00:00
|
|
|
## [2.0.0]
|
2023-01-31 07:21:53 +00:00
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
### Breaking
|
|
|
|
|
|
|
|
- Layers with kernels in containers have been abandoned in favor of
|
|
|
|
installation to mounted volumes.
|
|
|
|
|
|
|
|
- Command line interface has been changed to alecthomas/kong.
|
|
|
|
|
2023-01-31 07:21:53 +00:00
|
|
|
### Added
|
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
- Command `kernel install` to install specific kernel.
|
2023-01-31 07:21:53 +00:00
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
- Command `containers` to manage containers.
|
2023-01-31 07:21:53 +00:00
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
- Command `image edit` to edit qemu image.
|
2023-01-31 07:21:53 +00:00
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
- Flag `--force` to force reinstallation of the kernel.
|
2023-01-31 07:21:53 +00:00
|
|
|
|
2023-02-01 07:37:08 +00:00
|
|
|
- Flag `--artifact-config` to specify the path to .out-of-tree.toml.
|
|
|
|
|
2023-04-06 22:46:46 +00:00
|
|
|
- Flag `--no-headers` flag to install kernel and initrd only.
|
|
|
|
|
|
|
|
- Flag `--shuffle` to randomize the order of kernels for
|
|
|
|
installation/testing.
|
|
|
|
|
|
|
|
- Support make targets in artifact config.
|
|
|
|
|
|
|
|
- Support patches in artifact config.
|
|
|
|
|
|
|
|
- Support for copying standard modules to qemu.
|
|
|
|
|
|
|
|
- Script artifact type for various automation and information gathering.
|
|
|
|
|
|
|
|
- Add TestFiles to artifact config, transfers additional test files to VM.
|
|
|
|
|
|
|
|
- Improved logging, with logfile at ~/.out-of-tree/logs/out-of-tree.log
|
|
|
|
|
|
|
|
- Kernel installation will retry (10 times by default) in case of
|
|
|
|
network problems.
|
|
|
|
|
|
|
|
- Stdout trace (with --log-level=trace, and always to logfile) for
|
|
|
|
qemu and container execution.
|
|
|
|
|
|
|
|
- Compatibility with Podman.
|
|
|
|
|
|
|
|
- Support for Ubuntu 22.04.
|
|
|
|
|
2020-06-14 21:03:12 +00:00
|
|
|
## [1.4.0]
|
2020-06-14 17:32:57 +00:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Parameter `--docker-timeout` may also be set in the artifact
|
|
|
|
configuration file.
|
|
|
|
|
2020-06-14 20:14:59 +00:00
|
|
|
- Preload modules before inserting module or run exploit. Modules can
|
|
|
|
be specified by git repository path in the `repo` parameter of
|
|
|
|
section `[[preload]]`. Also, there is a `path` parameter for local
|
|
|
|
projects. Note that `repo` is using a cache that uses last commit
|
|
|
|
hash to check is project needs to be rebuilt, so it's not suitable
|
|
|
|
for local development (except if you will commit each time before
|
|
|
|
run out-of-tree).
|
|
|
|
|
|
|
|
- Flag `--disable-preload` to ignore `[[preload]]` section of
|
|
|
|
configuration file.
|
|
|
|
|
2020-06-14 20:46:56 +00:00
|
|
|
- Now `out-of-tree log dump` will show the last log if no ID
|
|
|
|
specified.
|
|
|
|
|
2020-05-30 14:26:12 +00:00
|
|
|
## [1.3.0] 2020-05-30
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Support for Ubuntu 20.04 and CentOS 8.
|
|
|
|
|
2019-12-25 14:38:30 +00:00
|
|
|
## [1.2.1] 2019-12-25
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- macOS support.
|
|
|
|
|
2019-11-15 07:50:55 +00:00
|
|
|
## [1.2.0] 2019-11-15
|
2019-11-14 15:37:34 +00:00
|
|
|
|
2019-11-14 15:38:16 +00:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Flag for Verbose output. Right now only qemu status messages is
|
|
|
|
implemented.
|
|
|
|
|
2019-11-14 15:37:34 +00:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Kpti settings was not affected for regular runs.
|
|
|
|
|
2019-09-05 18:18:18 +00:00
|
|
|
## [1.1.2] 2019-09-05
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Added policykit-1 to rootfs for Ubuntu.
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Avoided slow mirrors with use of mirror://mirrors.ubuntu.com for
|
|
|
|
Ubuntu 16.04 and newer.
|
|
|
|
|
2019-08-31 07:50:29 +00:00
|
|
|
## [1.1.1] 2019-08-31
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- macOS support.
|
|
|
|
|
2019-08-30 17:40:01 +00:00
|
|
|
## [1.1.0] 2019-08-30
|
2019-08-29 22:29:23 +00:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Global configuration file (~/.out-of-tree/out-of-tree.toml) allow to
|
|
|
|
set up default values for settings.
|
|
|
|
|
|
|
|
- rootfs generator for Ubuntu 14.04.
|
|
|
|
|
2019-08-29 22:49:59 +00:00
|
|
|
- Parameter for setting up docker registry server.
|
|
|
|
|
2019-08-30 00:05:50 +00:00
|
|
|
- Support for (distro-specific) custom docker commands that will be
|
|
|
|
executed before the base template.
|
|
|
|
|
2019-08-30 00:34:14 +00:00
|
|
|
- Parameter for setting up a reliability threshold for exit code.
|
|
|
|
|
|
|
|
- Parameter for setting up global timeout, after which no new tasks
|
|
|
|
will be started.
|
|
|
|
|
2019-08-29 22:29:23 +00:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Spelling in output.
|
|
|
|
|
|
|
|
- Now kernel generation will not fail if there are no directory
|
|
|
|
/lib/modules inside the container.
|
|
|
|
|
2019-08-20 21:58:42 +00:00
|
|
|
## [1.0.0] 2019-08-20
|
2019-08-16 20:33:56 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- New parameter `--max=X` is added for `autogen` (generate kernels
|
2019-08-17 09:12:49 +00:00
|
|
|
base on `.out-of-tree.toml` definitions) and `pew` (automated
|
|
|
|
runs) and allows to specify a maximum number of runs per each
|
|
|
|
supported kernel in module/exploit definition.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- New command `genall` -- generate all kernels for specified
|
|
|
|
distro/version.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- All logs stores in sqlite3 database. Implemented specific commands
|
|
|
|
for making simple queries and export data to markdown and json.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Implemented success rate calculation for previous runs.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Save of build results supported by parameter `--dist` for `pew`.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Support for generating kernels info from host system.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Support for build on host.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Support for custom kernels.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- Now debugging environment is automatically looking for debug
|
|
|
|
kernel on the host system.
|
|
|
|
|
2019-08-20 00:05:19 +00:00
|
|
|
- Added ability to enable/disable kaslr/smep/smap/kpti for debugging
|
|
|
|
by command line flags.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- New parameter `--threads=N` is added for `pew` and allows to
|
|
|
|
specify maximum number of threads that will be used for parallel
|
2019-08-17 01:30:29 +00:00
|
|
|
build/run/test.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- Tagging for runs. Tags write to log and can be used for
|
|
|
|
statistics.
|
2019-08-17 01:30:29 +00:00
|
|
|
|
2019-08-17 15:13:21 +00:00
|
|
|
- Added non-regex way to set kernel version in .out-of-tree.toml (see
|
|
|
|
examples).
|
2019-08-17 15:12:48 +00:00
|
|
|
|
2019-08-18 17:49:11 +00:00
|
|
|
- New command `pack` that perform tests in subdirectories.
|
|
|
|
|
2019-08-20 00:05:19 +00:00
|
|
|
- Added ability to disable kaslr/smep/smap/kpti for in artifact
|
|
|
|
definition.
|
2019-08-19 18:34:13 +00:00
|
|
|
|
|
|
|
- Added ability to change amount of memory/CPUs and set qemu timeout
|
|
|
|
in artifact definition (`.out-of-tree.toml`).
|
|
|
|
|
2019-08-20 09:09:38 +00:00
|
|
|
- Now images downloading while `kernel autogen`, bootstrap is not
|
|
|
|
required anymore.
|
|
|
|
|
2019-08-20 19:22:47 +00:00
|
|
|
- Support CentOS kernels.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
### Changed
|
|
|
|
|
2019-08-17 09:12:49 +00:00
|
|
|
- Now if there's no base image found — out-of-tree will try to use
|
|
|
|
an image from closest previous version, e.g. image from Ubuntu
|
|
|
|
18.04 for Ubuntu 18.10.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Kernel modules tests will not be failed if there are no tests
|
|
|
|
exists.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- Now *out-of-tree* will return negative error code if at least one
|
|
|
|
of the stage was failed.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Project is switch to use Go modules.
|
|
|
|
|
2019-08-18 15:04:24 +00:00
|
|
|
- Now test.sh is used by default if copying is not implemented in
|
|
|
|
Makefile.
|
|
|
|
|
2019-08-19 05:15:55 +00:00
|
|
|
- dmesg is not cleaned before the start of module/exploit anymore.
|
|
|
|
|
2019-08-19 05:16:17 +00:00
|
|
|
- qemu/kvm will use all host cpu features.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
### Removed
|
|
|
|
|
|
|
|
- *Kernel factory* is removed completely in favor of incremental
|
|
|
|
Dockerfiles.
|
|
|
|
|
2019-08-20 09:09:38 +00:00
|
|
|
- `bootstrap` is not doing anything anymore. It'll be removed in next
|
|
|
|
release.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Command `timeout` is not required anymore.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
- Errors is more meaningful.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- Temporary files is moved to `~/.out-of-tree/tmp/` to avoid docker
|
|
|
|
mounting issues on some systems.
|
2019-08-16 20:33:56 +00:00
|
|
|
|
2020-06-14 20:14:59 +00:00
|
|
|
## [0.2.0] - 2018-12-01
|
2019-08-16 20:33:56 +00:00
|
|
|
|
|
|
|
The main purpose of the release is to simplify installation.
|
|
|
|
|
2019-08-17 01:30:29 +00:00
|
|
|
### Changes
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-16 20:33:56 +00:00
|
|
|
- All configuration moved to `~/.out-of-tree`.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-16 20:33:56 +00:00
|
|
|
- Now prebuilt images can be downloaded with bootstrap.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
|
|
|
- Ability to generate kernels specific to .out-of-tree.toml in
|
|
|
|
current directory. So now there's no need to wait for several
|
|
|
|
hours for start work on specific kernel with module/exploit.
|
|
|
|
|
2019-08-16 20:33:56 +00:00
|
|
|
- Now there's no need to keep source tree and _out-of-tree_ can be
|
|
|
|
distributed in binary form.
|
2019-08-17 09:12:49 +00:00
|
|
|
|
2019-08-16 20:33:56 +00:00
|
|
|
- New command: **debug**. Creates interactive environment for kernel
|
|
|
|
module/exploit development. Still work-in-progress.
|
|
|
|
|
2019-08-17 12:42:14 +00:00
|
|
|
- No warning anymore if test.sh is not exists.
|
|
|
|
|
2020-06-14 20:14:59 +00:00
|
|
|
## [0.1.0] - 2018-11-20
|
2019-08-16 20:33:56 +00:00
|
|
|
|
|
|
|
Initial release that was never tagged.
|
|
|
|
|
|
|
|
Refer to state after first public release on ZeroNights 2018
|
|
|
|
([video](https://youtu.be/2tL7bbCdIio),
|
2019-08-16 20:36:46 +00:00
|
|
|
[slides](https://2018.zeronights.ru/wp-content/uploads/materials/07-Ways-to-automate-testing-Linux-kernel-exploits.pdf)).
|