Alexander Popov [Fri, 10 Mar 2023 20:39:02 +0000 (23:39 +0300)]
Add the links to the project badges
Alexander Popov [Fri, 10 Mar 2023 20:36:34 +0000 (23:36 +0300)]
Add the unit-test badge
Alexander Popov [Fri, 10 Mar 2023 20:33:24 +0000 (23:33 +0300)]
Rename the workflow file with the functional test
Alexander Popov [Fri, 10 Mar 2023 20:22:47 +0000 (23:22 +0300)]
Create a separate CI workflow for unit-tests
Alexander Popov [Fri, 10 Mar 2023 20:12:58 +0000 (23:12 +0300)]
Add a template for unit-tests
Alexander Popov [Fri, 10 Mar 2023 20:03:04 +0000 (23:03 +0300)]
Erase coverage to prepare for unit-testing
Alexander Popov [Mon, 6 Mar 2023 17:06:38 +0000 (20:06 +0300)]
Limit the number of parallel GitHub Action jobs to 3
That hopefully prevents the error "codecov failed with exit code 255".
Alexander Popov [Mon, 6 Mar 2023 15:49:42 +0000 (18:49 +0300)]
Add more automatic tests (and increase the coverage)
Alexander Popov [Mon, 6 Mar 2023 15:21:08 +0000 (18:21 +0300)]
Update the GitHub Actions to newer versions
Alexander Popov [Mon, 6 Mar 2023 14:59:53 +0000 (17:59 +0300)]
Drop a useless 'if'
This condition has been checked at the beginning of the function.
Noticed this in the code coverage report.
Alexander Popov [Mon, 6 Mar 2023 14:51:47 +0000 (17:51 +0300)]
Refactor normalize_cmdline_options() for better style and test coverage
Alexander Popov [Mon, 6 Mar 2023 14:35:29 +0000 (17:35 +0300)]
Drop the 'kvm.nx_huge_pages' check
It's not really about security
Alexander Popov [Sun, 5 Mar 2023 20:56:45 +0000 (23:56 +0300)]
Fix the bug in OptCheck.check() introduced in
cb779a71bf57d95b
Use 'elif' instead of 'if' to avoid wrong self.result when
self.state is 'off'.
We need unit-tests for the engine checking the correctness: #79
Alexander Popov [Sun, 5 Mar 2023 14:42:58 +0000 (17:42 +0300)]
Improve the test coverage
Alexander Popov [Sun, 5 Mar 2023 14:40:16 +0000 (17:40 +0300)]
Fix style in the CI script
Alexander Popov [Sun, 5 Mar 2023 13:55:44 +0000 (16:55 +0300)]
Improve the slab_nomerge check
Alexander Popov [Sun, 5 Mar 2023 13:23:14 +0000 (16:23 +0300)]
Add my files to gitignore
Alexander Popov [Sun, 5 Mar 2023 13:19:41 +0000 (16:19 +0300)]
Use similar f-strings for more cases
Alexander Popov [Sun, 5 Mar 2023 12:57:43 +0000 (15:57 +0300)]
Compare with None explicitly
These objects should be compared for identity with None using 'is' operator.
Alexander Popov [Sun, 5 Mar 2023 10:02:21 +0000 (13:02 +0300)]
Add the GitHub link
Alexander Popov [Wed, 1 Mar 2023 15:26:02 +0000 (18:26 +0300)]
Allow not setting specific CPU bug mitigations only if 'mitigations=auto,nosmt'
Alexander Popov [Sun, 26 Feb 2023 20:08:07 +0000 (23:08 +0300)]
Improve the 'pylint disable' statements
Alexander Popov [Sun, 26 Feb 2023 20:05:44 +0000 (23:05 +0300)]
Add docstrings for the modules
Alexander Popov [Sun, 26 Feb 2023 19:06:08 +0000 (22:06 +0300)]
Split into Python modules
Alexander Popov [Sun, 26 Feb 2023 07:02:04 +0000 (10:02 +0300)]
Fix pylint: Using open without explicitly specifying an encoding
Alexander Popov [Sun, 26 Feb 2023 06:44:26 +0000 (09:44 +0300)]
Fix pylint warning: formatting a regular string which could be a f-string (IV)
Part IV, sys.exit()
Alexander Popov [Sun, 26 Feb 2023 06:37:21 +0000 (09:37 +0300)]
Fix pylint warning: formatting a regular string which could be a f-string (III)
Part III, strings
Alexander Popov [Sun, 26 Feb 2023 06:31:05 +0000 (09:31 +0300)]
Fix pylint warning: formatting a regular string which could be a f-string (II)
Part II, assert()
Alexander Popov [Sun, 26 Feb 2023 05:58:45 +0000 (08:58 +0300)]
Fix pylint warning: formatting a regular string which could be a f-string (I)
Part I, print()
Alexander Popov [Fri, 17 Feb 2023 17:12:52 +0000 (20:12 +0300)]
Improve the 'mitigations' check
Thanks to @izh1979
Alexander Popov [Thu, 16 Feb 2023 16:11:38 +0000 (19:11 +0300)]
Add more info about perf_event_paranoid
Thanks to @izh1979
Alexander Popov [Sat, 4 Feb 2023 14:04:40 +0000 (17:04 +0300)]
Return the AIO check
Linus about AIO: https://lwn.net/Articles/671657/
LWN: Fixing asynchronous I/O, again: https://lwn.net/Articles/671649/
Alexander Popov [Sat, 4 Feb 2023 13:22:42 +0000 (16:22 +0300)]
Add the NOUVEAU_LEGACY_CTX_SUPPORT check
See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=
b30a43ac7132cdda833ac4b13dd1ebd35ace14b7
Dave Airlie:
There was a nouveau DDX that relied on legacy context ioctls to work,
but we fixed it years ago, give distros that have a modern DDX the
option to break the uAPI and close the mess of holes that legacy
context support is.
Alexander Popov [Sat, 4 Feb 2023 11:57:54 +0000 (14:57 +0300)]
Don't use the uninitialized 'parsed_cmdline_options' variable
Alexander Popov [Sun, 22 Jan 2023 00:37:51 +0000 (03:37 +0300)]
Update the README
Ready for release 0.6.1.
Alexander Popov [Sun, 22 Jan 2023 22:16:52 +0000 (01:16 +0300)]
Fix the 'decision' for the slub_merge check
Alexander Popov [Sun, 22 Jan 2023 00:16:01 +0000 (03:16 +0300)]
Fix the pylint R1714 issues
No functional changes
Alexander Popov [Sat, 21 Jan 2023 22:52:33 +0000 (01:52 +0300)]
Add the check for the 'kvm.nx_huge_pages' cmdline parameter
Alexander Popov [Sat, 21 Jan 2023 22:41:43 +0000 (01:41 +0300)]
Add the check for the slub_merge cmdline parameter
Alexander Popov [Sat, 21 Jan 2023 22:07:42 +0000 (01:07 +0300)]
Rename the file with the KSPP cmdline recommendations to avoid breaking the CI
Alexander Popov [Sat, 21 Jan 2023 22:00:31 +0000 (01:00 +0300)]
Clean up the comments
Alexander Popov [Sat, 21 Jan 2023 21:58:41 +0000 (00:58 +0300)]
Add the check for the iommu cmdline option
Refers to #76
Alexander Popov [Sat, 21 Jan 2023 12:30:56 +0000 (15:30 +0300)]
Add the KSPP cmdline recommendations for x86_64
Alexander Popov [Sat, 21 Jan 2023 12:23:13 +0000 (15:23 +0300)]
Include parsed_cmdline_options in the print_unknown_options() call
Alexander Popov [Sat, 21 Jan 2023 10:53:39 +0000 (13:53 +0300)]
Rename the files with the KSPP recommendations
Alexander Popov [Thu, 19 Jan 2023 15:54:49 +0000 (18:54 +0300)]
Drop get-nix-kconfig.py (`nix-build get-nixos-kconfig.nix` does the job)
Refers to #77 and #63.
Alexander Popov [Thu, 19 Jan 2023 15:34:12 +0000 (18:34 +0300)]
Add the NixOS kernel configs
Refers to #77
Alexander Popov [Thu, 19 Jan 2023 15:10:54 +0000 (18:10 +0300)]
Merge branch 'from-o8opi-2'
Thanks, @o8opi
Alexander Popov [Sun, 15 Jan 2023 21:10:12 +0000 (00:10 +0300)]
Update the VMAP_STACK check: it is available for ARM
Alexander Popov [Sun, 15 Jan 2023 20:06:20 +0000 (23:06 +0300)]
Fix the arch condition for the SCHED_CORE check (II)
Alexander Popov [Sat, 14 Jan 2023 15:46:45 +0000 (18:46 +0300)]
Update the KSPP recommendations
Alexander Popov [Sat, 14 Jan 2023 15:07:29 +0000 (18:07 +0300)]
Fix the IOMMU_DEFAULT_DMA_STRICT check: it is in defconfig for arm64 and arm
Alexander Popov [Sat, 14 Jan 2023 10:47:21 +0000 (13:47 +0300)]
Add the COMPAT and X86_X32_ABI checks
KSPP has added them to the recommendations.
Refers to #74.
Alexander Popov [Sat, 14 Jan 2023 10:39:49 +0000 (13:39 +0300)]
Fix the WERROR check: it is in defconfig for X86_64 and X86_32 now
Alexander Popov [Sat, 14 Jan 2023 10:33:33 +0000 (13:33 +0300)]
Fix the DEBUG_WX check: it is in defconfig for X86_64 and X86_32 now
Alexander Popov [Fri, 13 Jan 2023 19:12:22 +0000 (22:12 +0300)]
Add defconfigs for Linux v6.1
o8opi [Thu, 29 Dec 2022 09:02:02 +0000 (10:02 +0100)]
add get-nixos-kconfig nix script
Alexander Popov [Mon, 26 Dec 2022 09:58:06 +0000 (12:58 +0300)]
Add the repository mirrors
Alexander Popov [Sun, 25 Dec 2022 18:03:04 +0000 (21:03 +0300)]
Backup the pull requests and issues into a Markdown file using gh2md
That would allow to have more information in the mirror repositories.
I used the mattduck/gh2md tool for that purpose.
It employs https://api.github.com/graphql, so I had to generate
a GitHub personal access token (classic) with public access.
Alexander Popov [Fri, 16 Dec 2022 23:35:43 +0000 (02:35 +0300)]
Remove the AIO check
Currently GrapheneOS doesn't have it.
Alexander Popov [Sat, 10 Dec 2022 18:25:13 +0000 (21:25 +0300)]
Remember about the nosmt sysfs control file
Alexander Popov [Sat, 10 Dec 2022 18:24:42 +0000 (21:24 +0300)]
Drop the comment about mitigations of CPU vulnerabilities
The corresponding checks have been developed.
Alexander Popov [Sat, 10 Dec 2022 18:18:34 +0000 (21:18 +0300)]
Save the list of disabled mitigations of CPU vulnerabilities (for history)
Alexander Popov [Sat, 10 Dec 2022 17:44:23 +0000 (20:44 +0300)]
Add the nospectre_bhb check
Alexander Popov [Sat, 10 Dec 2022 08:01:16 +0000 (11:01 +0300)]
Add the kpti check
1. Don't add an exception to normalize_cmdline_options() since strtobool()
is used for kpti
2. Use new '0' check of 'is not off'
Alexander Popov [Sat, 10 Dec 2022 07:47:05 +0000 (10:47 +0300)]
Compare against '0' in the 'is not off' check
Alexander Popov [Sat, 10 Dec 2022 07:08:23 +0000 (10:08 +0300)]
Add the tsx check
Alexander Popov [Sat, 10 Dec 2022 07:07:10 +0000 (10:07 +0300)]
Change the 'decision' of X86_INTEL_TSX_MODE_OFF check to defconfig
Alexander Popov [Sat, 10 Dec 2022 06:33:43 +0000 (09:33 +0300)]
Add the nomte check
Alexander Popov [Sat, 10 Dec 2022 06:32:51 +0000 (09:32 +0300)]
Add the nopauth check
Alexander Popov [Sat, 10 Dec 2022 06:32:21 +0000 (09:32 +0300)]
Add the nobti check
Alexander Popov [Fri, 9 Dec 2022 18:00:08 +0000 (21:00 +0300)]
Add the sysrq_always_enabled check
Alexander Popov [Fri, 9 Dec 2022 17:37:49 +0000 (20:37 +0300)]
Add the ssbd check
Alexander Popov [Thu, 8 Dec 2022 22:38:05 +0000 (01:38 +0300)]
Avoid the YAML parsing mistake
3.10 is parsed as a number and it is trimmed to 3.1.
That is expected behavior for numbers, but it's crazy for versions.
Alexander Popov [Thu, 8 Dec 2022 22:29:03 +0000 (01:29 +0300)]
Fix `python-version` in the GitHub Actions
Current `ubuntu-latest` (Ubuntu 22.04 for x86_64) provides the following
versions of Python:
- 3.10.8
- 3.11.0
- 3.7.15
- 3.8.15
- 3.9.15
Alexander Popov [Thu, 8 Dec 2022 21:59:38 +0000 (00:59 +0300)]
Reorder some checks, no functional changes
Alexander Popov [Thu, 17 Nov 2022 16:39:32 +0000 (19:39 +0300)]
Add the srbds check
Alexander Popov [Thu, 17 Nov 2022 16:29:26 +0000 (19:29 +0300)]
Add the retbleed check
Alexander Popov [Thu, 17 Nov 2022 16:23:55 +0000 (19:23 +0300)]
Add the mmio_stale_data check
Alexander Popov [Thu, 17 Nov 2022 16:19:55 +0000 (19:19 +0300)]
Add the tsx_async_abort check
Alexander Popov [Thu, 17 Nov 2022 14:34:24 +0000 (17:34 +0300)]
Add the mds check
Alexander Popov [Thu, 17 Nov 2022 14:28:28 +0000 (17:28 +0300)]
Add the l1tf check
Alexander Popov [Thu, 17 Nov 2022 14:19:21 +0000 (17:19 +0300)]
Add the spectre_v2_user check
Alexander Popov [Thu, 17 Nov 2022 13:57:25 +0000 (16:57 +0300)]
Do refactoring in normalize_cmdline_options()
Alexander Popov [Thu, 17 Nov 2022 13:56:18 +0000 (16:56 +0300)]
Add the spec_store_bypass_disable check
Alexander Popov [Thu, 17 Nov 2022 13:42:30 +0000 (16:42 +0300)]
Add the spectre_v2 check
Alexander Popov [Thu, 17 Nov 2022 12:23:55 +0000 (15:23 +0300)]
Introduce the 'is present' check instead of expected=None constructor parameter
Alexander Popov [Fri, 11 Nov 2022 14:39:19 +0000 (17:39 +0300)]
Add the 'mitigations' check
The default value for the 'mitigations' option is 'auto'.
So this option should be enabled ('is not off') or not set at all.
Alexander Popov [Wed, 9 Nov 2022 15:32:52 +0000 (18:32 +0300)]
Add the nosmt check
Alexander Popov [Wed, 9 Nov 2022 15:24:52 +0000 (18:24 +0300)]
Add a special 'desired val' -- 'is not off'
This check gives FAIL if the option value is 'off' or
the option is not found. In other cases this check gives OK.
This feature is needed for checking that the CPU vulnerability mitigations
are not disabled. Let's see how it works and maybe improve it in future.
Alexander Popov [Wed, 9 Nov 2022 14:46:38 +0000 (17:46 +0300)]
Improve the result descriptions
Alexander Popov [Tue, 8 Nov 2022 21:31:16 +0000 (00:31 +0300)]
Add assertions to check arguments of the Class constructors
Alexander Popov [Sun, 23 Oct 2022 17:08:29 +0000 (20:08 +0300)]
Update the README
Alexander Popov [Sun, 23 Oct 2022 16:31:16 +0000 (19:31 +0300)]
Add the ARM64_E0PD check
Alexander Popov [Sun, 23 Oct 2022 16:14:46 +0000 (19:14 +0300)]
Fix the SCHED_CORE check: it's now available for ARM64 and ARM
Alexander Popov [Sun, 23 Oct 2022 15:23:55 +0000 (18:23 +0300)]
Update the self-protection checks adopted by KSPP (part V)
Thanks to @kees
Alexander Popov [Sat, 22 Oct 2022 21:05:45 +0000 (00:05 +0300)]
Update the self-protection checks adopted by KSPP (part IV): IOMMU
Thanks to @kees
Alexander Popov [Sat, 22 Oct 2022 21:02:55 +0000 (00:02 +0300)]
Update the self-protection checks adopted by KSPP (part III)
Thanks to @kees
Alexander Popov [Sat, 22 Oct 2022 18:34:56 +0000 (21:34 +0300)]
Update the KSPP recommendations again
Alexander Popov [Thu, 13 Oct 2022 16:33:11 +0000 (19:33 +0300)]
Update the self-protection checks adopted by KSPP (part II)
Thanks to @kees