-
Notifications
You must be signed in to change notification settings - Fork 10
[LTS 9.2] netfilter: CVE-2022-{48641, 49917, 49918}, CVE-2023-{3777, 4015, 4244, 5197, 52620, 52923, 52924, 53549, 53635, 7192} #668
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@pvts-mat I know this is still in draft, but wanted to upload the output from our upstream bug and cve checker script. Most of the |
|
As you mentioned in the PR summary and we've discussed in slack, for the moment this PR seems large enough and pulling in the bugfixes above would only make it bigger. I'm ok with kicking the bugfixes down the road to a future PR. |
Thanks, that's exactly why I put it out there instead of drafting it locally, there's a lot to look into here, I wanted to have the discussion rolling. Let me address the logs, I'll start with
Here's the detailed breakdown: |
|
Yep, that one is wrong in the commit, and I have it correct in the PR so it must have been a cherry-picking mistake. |
2919917 to
520390b
Compare
|
All the fixes reported are addressed in the
I'll explain the Rows
Then there are the 6da5f1b and 8d1c918 fixes for 73db1b8 mentioned in the script's log. I guess the SHA codes are truncated to less than 7 characters in the searches, because the "Fixes" commit referenced there isn't 73db1b8 actually, but 73db1b5. Funnily enough it's also |
With respect to this since it is in our kernel but not upstream kernel but is upstream to CIQ its in the CentOS-Stream that we maintain a copy of in our tree. Maybe we need to make add some additional logic to see if its in our tree. We have some examples in commits for CIQ-6.12.y branch where we pull from |
|
These two need reordered
Order should be: |
Hmm, it seems unlikely that 2cdaa3e( Indeed the 47d4b36( Perhaps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is wild at this point it all seems the same, but the diffs between our and upstream make this super hard to read.
No I'm wrong I got mixed up, i missed this part of a9e9413
Let me think about and get back to you on the second part its been several hours looking through this. |
-Fixed relocation failure observed on [1] -Fixed spurious (and massive) added or deleted code blocks appearing in the output for rejected hunks, encountered with [1] -Fixed N value passed to --fuzzy not getting honored correctly, causing more fuzzing to occur than desired -Fixed too few context lines in the output which hurt readability; now there are more context lines in the output [1] #668
Apologies for the delay, yes despite it being a clean cherry-pick since we're missing 0fabd2aa199faeb8754aee94658f2c48ccb2c8c3(kernel-mainline) its probably worth mentioning because they code never moved in the first place. We're also not referencing that code anywhere, So yes lets add the |
b413376 to
740e770
Compare
|
@PlaidCat So how about the "tagging policy"? Do we keep the CVE tags as they are? (I hope not). The issue is: how to cve-tag commits which do not address any specific CVE and which neither are bugfixes to any specific CVE nor they are prerequisites (or establishing those would be impractical and not even reflecting the workflow). |
In this sort of case feel free to change those to basically like what we did here:
is there more?? Let me know i'll process this.
I can make one but i'll need all the merges you're basing this off of and I can create a ticket. |
But that's not a subsystem sync. A subsystem sync has a specific codebase endpoint to achieve as a goal. Here no specific codebase revision was achieved, nor was it ever a goal, so both the version number - whatever is chosen - will be misleading as well as the implication of methodology. I was careful not to make the actual sync, which would be over 3x the volume of this merge. This is just a backport, but big one. A "wholesale backporting" if you like. I don't think it has a precedent in Rocky patching, or at least I didn't see it in the public PRs.
Please see the comment #668 (comment). |
In the case of this specific PR it's quite clear - the effort was driven by the CVE-2023-4244 fix, which has the associated jira ticket I was asking for a more general rule covering less clear-cut cases, like the next |
Maybe something like: That is a reference to the centos stream 9 merge commit that we are emulating. Just spitballing |
|
Commit is not a clean cherry pick due to missing |
Similar for |
Those are the commits no.
Notice the values in the
Also from the "Backporting strategy":
It should be added perhaps that in the case of clean picks from mainline the commits were equivalent to those in 9.4, so sourcecode-wise it made no difference whether it was mainline or 9.4 (so we're not doing some wild
I like this one. I would add this line even to those commits which do have |
I meant you should update the commit message to reflect that they are not clean cherry picks. At the moment we don't have a way to differentiate between multiple sources, so even if it's a clean cherry pick from 9.4 let's say, an upstream-diff mention should be added. You did so for other cherry picks. |
Ok, so the issue is the lack of |
…lush jira VULN-430 subsystem-update netfilter: centos-stream-9 cfd9694 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 26cec9d Use the element object that is already offered instead. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 26cec9d) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-430 subsystem-update netfilter: centos-stream-9 cfd9694 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 6509a2e .flush is always successful since this results from iterating over the set elements to toggle mark the element as inactive in the next generation. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 6509a2e) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
|
I looked into the commits listed in #668 (comment). They all belong to the same CentOS 9 branch c05955e, identified in the PR as (2), and constitute the whole branch, so dropping them would not go against the assumed "Backporting full branches" guideline. The branch (2) was included because
Other commits from (2) were only included to keep the branch intact. However, the conflicts in the two mentioned commits are contextual only and indeed can be easily resolved, the interdiff is actually the same. I have the compiling patch prepared with the branch (2) completely dropped, which is most probably the same what @kerneltoast arrived at in #668 (comment). This solution may still not be minimal in the sense of
but it does address everything in #668 (comment) and avoids introducing the features listed in #668 (comment). It would require repeating the general |
|
To clarify @pvts-mat, Are you suggesting (1) we go forward with the PR as is and test the additional functionality, or (2) we go forward dropping the patches with the additional features and go through the netfilter tests again? I am fine with either solution. My goal is to make sure. that we have a tested solution and we aren't breaking existing features for customers using them. |
I'm suggesting (2) |
|
Sounds good to me. Thanks for the clarification and let's move forward with it. |
0ed918e
1a8251f to
0ed918e
Compare
jira VULN-430 subsystem-update netfilter: centos-stream-9 cfd9694 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 9dad402 upstream-diff Context conflict with the cve fix 5d4bb57 (wrong application order). Add placeholder structure and place it at the beginning of each struct nft_*_elem for each existing set backend, instead of exposing elements as void type to the frontend which defeats compiler type checks. Use this pointer to this new type to replace void *. This patch updates the following set backend API to use this new struct nft_elem_priv placeholder structure: - update - deactivate - flush - get as well as the following helper functions: - nft_set_elem_ext() - nft_set_elem_init() - nft_set_elem_destroy() - nf_tables_set_elem_destroy() This patch adds nft_elem_priv_cast() to cast struct nft_elem_priv to native element representation from the corresponding set backend. BUILD_BUG_ON() makes sure this .priv placeholder is always at the top of the opaque set element representation. Suggested-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 9dad402) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
subsystem-update netfilter: centos-stream-9 cfd9694 cve CVE-2023-6111 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 93995bf upstream-diff Used the cleanly applying 9.4 backport 54e39cc The expired catchall element is not deactivated and removed from GC sync path. This path holds mutex so just call nft_setelem_data_deactivate() and nft_setelem_catchall_remove() before queueing the GC work. Fixes: 4a9e12e ("netfilter: nft_set_pipapo: call nft_trans_gc_queue_sync() in catchall GC") Reported-by: lonial con <kongln9170@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 93995bf) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-430 subsystem-update netfilter: centos-stream-9 cfd9694 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 8837ba3 upstream-diff Used the cleanly applying 9.4 backport 45aad05 list_for_each_entry_safe() does not work for the async case which runs under RCU, therefore, split GC logic for catchall in two functions instead, one for each of the sync and async GC variants. The catchall sync GC variant never sees a _DEAD bit set on ever, thus, this handling is removed in such case, moreover, allocate GC sync batch via GFP_KERNEL. Fixes: 93995bf ("netfilter: nf_tables: remove catchall element in GC sync path") Reported-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 8837ba3) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
…_entry() jira VULN-430 cve-bf CVE-2023-4244 commit-author Ilya Leoshkevich <iii@linux.ibm.com> commit 837723b bpf_nf testcase fails on s390x: bpf_skb_ct_lookup() cannot find the entry that was added by bpf_ct_insert_entry() within the same BPF function. The reason is that this entry is deleted by nf_ct_gc_expired(). The CT timeout starts ticking after the CT confirmation; therefore nf_conn.timeout is initially set to the timeout value, and __nf_conntrack_confirm() sets it to the deadline value. bpf_ct_insert_entry() sets IPS_CONFIRMED_BIT, but does not adjust the timeout, making its value meaningless and causing false positives. Fix the problem by making bpf_ct_insert_entry() adjust the timeout, like __nf_conntrack_confirm(). Fixes: 2cdaa3e ("netfilter: conntrack: restore IPS_CONFIRMED out of nf_conntrack_hash_check_insert()") Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Cc: Florian Westphal <fw@strlen.de> Link: https://lore.kernel.org/bpf/20230830011128.1415752-3-iii@linux.ibm.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> (cherry picked from commit 837723b) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-34700 cve CVE-2023-42756 commit-author Jozsef Kadlecsik <kadlec@netfilter.org> commit 7433b6d Kyle Zeng reported that there is a race between IPSET_CMD_ADD and IPSET_CMD_SWAP in netfilter/ip_set, which can lead to the invocation of `__ip_set_put` on a wrong `set`, triggering the `BUG_ON(set->ref == 0);` check in it. The race is caused by using the wrong reference counter, i.e. the ref counter instead of ref_netlink. Fixes: 24e2278 ("netfilter: ipset: Add schedule point in call_ad().") Reported-by: Kyle Zeng <zengyhkyle@gmail.com> Closes: https://lore.kernel.org/netfilter-devel/ZPZqetxOmH+w%2Fmyc@westworld/#r Tested-by: Kyle Zeng <zengyhkyle@gmail.com> Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org> Signed-off-by: Florian Westphal <fw@strlen.de> (cherry picked from commit 7433b6d) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-8184 cve CVE-2024-26581 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 60c0c23 rbtree lazy gc on insert might collect an end interval element that has been just added in this transactions, skip end interval elements that are not yet active. Fixes: f718863 ("netfilter: nft_set_rbtree: fix overlap expiration walk") Cc: stable@vger.kernel.org Reported-by: lonial con <kongln9170@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 60c0c23) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
…ith timeout jira VULN-836 cve CVE-2024-26643 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 552705a While the rhashtable set gc runs asynchronously, a race allows it to collect elements from anonymous sets with timeouts while it is being released from the commit path. Mingi Cho originally reported this issue in a different path in 6.1.x with a pipapo set with low timeouts which is not possible upstream since 7395dfa ("netfilter: nf_tables: use timestamp to check for set element timeout"). Fix this by setting on the dead flag for anonymous sets to skip async gc in this case. According to 08e4c8c ("netfilter: nf_tables: mark newset as dead on transaction abort"), Florian plans to accelerate abort path by releasing objects via workqueue, therefore, this sets on the dead flag for abort path too. Cc: stable@vger.kernel.org Fixes: 5f68718 ("netfilter: nf_tables: GC transaction API to avoid race with control plane") Reported-by: Mingi Cho <mgcho.minic@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 552705a) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-4906 cve-pre CVE-2024-26925 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit a45e688 Unlike early commit path stage which triggers a call to abort, an explicit release of the batch is required on abort, otherwise mutex is released and commit_list remains in place. Add WARN_ON_ONCE to ensure commit_list is empty from the abort path before releasing the mutex. After this patch, commit_list is always assumed to be empty before grabbing the mutex, therefore 03c1f1e ("netfilter: Cleanup nft_net->module_list from nf_tables_exit_net()") only needs to release the pending modules for registration. Cc: stable@vger.kernel.org Fixes: c0391b6 ("netfilter: nf_tables: missing validation from the abort path") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit a45e688) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
jira VULN-4906 cve CVE-2024-26925 commit-author Pablo Neira Ayuso <pablo@netfilter.org> commit 0d459e2 The commit mutex should not be released during the critical section between nft_gc_seq_begin() and nft_gc_seq_end(), otherwise, async GC worker could collect expired objects and get the released commit lock within the same GC sequence. nf_tables_module_autoload() temporarily releases the mutex to load module dependencies, then it goes back to replay the transaction again. Move it at the end of the abort phase after nft_gc_seq_end() is called. Cc: stable@vger.kernel.org Fixes: 7203443 ("netfilter: nf_tables: GC transaction race with abort path") Reported-by: Kuan-Ting Chen <hexrabbit@devco.re> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> (cherry picked from commit 0d459e2) Signed-off-by: Marcin Wcisło <marcin.wcislo@conclusive.pl>
0ed918e to
b1df305
Compare
|
Pushed the reduced solution and updated the
In the following comments the test results will be included. |
Functional tests: passed relativeReferenceSame as in the PR Patchkselftests–ciqlts9_2-CVE-batch-10–leaner–run1.log ComparisonKFENCE tests: passedAll tests in functional testing were run on kernel with default (enabled) settings for KFENCE: In case of any KFENCE errors a message like would occur in the dmesg logs. No such messages were found: |
PlaidCat
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
![]()
I am content with the additional changes
@kerneltoast do you have any more request needing to keep this blocked?
KASAN & kmemleak tests are still running, though they're fine so far. Should be ready today |
kerneltoast
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The commits look good and I verified that the conflicts from dropping those 6 commits were resolved correctly. 🚢
KASAN tests: passedThe patched kernel PR1 was compiled with the following options changed:
The tests set from the functional testing was run 50 times with KASAN debug messages switched on. No KASAN logs appeared in the kernel's console: |
Kmemleak tests: passedThe patched kernel PR1 was compiled with the following options changed:
The tests from functional testing was run 10 times. The script: No memory leaks were found. |
|
Re-ran nftables tests. No regressions with the latest commit set: |
bmastbergen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥌
[LTS 9.2]
Fixed:
CVE-2022-48641 VULN-34024
CVE-2022-49917 VULN-66461
CVE-2022-49918 VULN-66488
CVE-2023-3777 VULN-6585
CVE-2023-4015 VULN-6613
CVE-2023-4244 VULN-430
CVE-2023-5197 VULN-34732
CVE-2023-52620 VULN-645
CVE-2023-52923 VULN-158865
CVE-2023-52924 VULN-158864
CVE-2023-53549 VULN-157585
CVE-2023-53635 VULN-158282
CVE-2023-7192 VULN-6817
Introduced:
CVE-2024-27012
CVE-2024-27017
CVE-2024-42109
CVE-2024-0193 VULN-6825
Introduced & fixed:
CVE-2023-42756 VULN-34700
CVE-2023-52433 VULN-158866
CVE-2023-52581 VULN-598
CVE-2023-52925 VULN-158863
CVE-2023-53304 VULN-155012
CVE-2023-53566 VULN-157645
CVE-2023-6111
CVE-2024-26581 VULN-8184
CVE-2024-26643 VULN-836
CVE-2024-26925 VULN-4906
Background
This PR was driven by CVE-2023-4244. The official upstream fix is given in the merge commit a2dd023. The merged branch of 5 commits had to be ported in whole. Although they fixed the CVE-2023-4244 problem they introduced multiple more. Additionally, the LTS 9.2
netfiltercodebase was not suited for the backport.The CVE-2023-4244 bug was already addressed in LTS 9.4 as part of the CentOS 9 "netlink api rebase" merge request. It was decided to port it in whole as it already dealt with similar unsuitability of the fix to the
netfiltercodebase of CentOS 9 at that time, and with the subsequent fixes. From the CentOS MR:Some of the involved commits required prerequisites contained in other, similar branches, ported in whole as well. Coupled with a few "loose" bugfixes the solution grew to almost 100 commits, although without any custom adaptations (clean cherry-picks).
The ported commits validated the CVE-2024-26581 which was put on hold before due to the modified code missing from the
ciqlts9_2codebase. The fix for CVE-2024-26581 was therefore included in this PR as well. All other CVEs were solved as a byproduct of backporting the CentOS 9 branches and some of their loose bugfixes.Solution strategy
Backporting strategy
Strategy for backporting CVE fixes, their prerequisites, and their bug fixes:
ciqlts9_4branch. For all commits obtained that way thekernel-mainlineSHA was nevertheless used in thecommitproperty and theupstream-diffcomment was included with reference to theciqlts9_4SHA actually used for the backport. The picks from 9.4 were only used if the picks from mainline generated conflicts. One commit (d2fd2e4) didn't even have an upstream equivalent.ciqlts9_2in next PRs.There were some exceptions to these rules, each of them addressed briefly in the Comment column of the Commits table, which see.
Tagging policy
Because of the "full branches" rule many commits incorporated in the PR contain fixes to bugs which don't have any specific CVE assigned. While some of them might have been identified as bugfixes for commits which do have specific CVE assigned (easy), or as their prerequisites (difficult), it was decided to not dwelve into these details and simplify the tagging.
cveandjiraproperties.cve-pre CVE-2023-4244: if they appear before the commit netfilter: nf_tables: GC transaction API to avoid race with control plane (official CVE-2023-4244 fix), orcve CVE-2023-4244: for all the commits after, as long as they still belong to the branch1(see Branches), orcve-bf CVE-2023-4244: for all the commits after branch1if they fix any of the commits in branches1,2,3.Conflicts
With the help of LTS 9.4 backports the solution for LTS 9.2 was obtained without any meaningful conflicts. The only ones occured when backporting 9dad402 and 2413893 and it stemmed from the 5d4bb57 fix present in
ciqlts9_2, which disturbed the chronology of changes. The conflicts might have been avoided entirely if it was reverted before the commits in this PR and then re-applied after, but that would result in an odd history. The conflicts were solved manually instead, preserving the meaning of the changes.Solution details
Tables
The internal structure of the solution can best be described by the Commits table. It's augmented with the CVEs, Branches and Commit titles tables providing some details about the entities referenced in the
Commitstable.The
CommitsandCVEstables were aimed to be fully enclosing the PR, which means:Commitscontains all commits from the PR (but not only them),Commitscontains all "Fixes" commits of every commit in the PR,Commitscontains all "Fixed by" commits of every commit in the PR,CVEscontains all CVEs associated with every commit in the PR,Commitscontains all commits associated with each CVE from theCVEstable (which may fall outside of PR).In this way a full picture of all solved and introduced problems can be painted.
Fields
Some cell values have universal meaning in all tables:
-: The value was considered / checked and it either doesn't apply or the value is missing, or the associated list is empty, depending on column context.Commits
Columns:
Id: Short numerical identifier of the commit
mainline: Commit hash in the
kernel-mainlinebranch9.4: Commit hash in the
ciqlts9_4branch9.2: Commit hash in the
ciqlts9_2branchFixes: All commits listed under the "Fixes" tag, specified by
Idfrom the previous column.B: The branch identifier
1,2, …,7: CentOS 9 merge branches. For more information see the Branches table. Branches1,2,3are shown in full (all their commits included), others - not necessarily.0: The commit is part of CentOS 9 history but isn't a part of any merged branch.-: The commit is not even present in9.4history, so talking about "CentOS 9" branch is meaningless.H: Special "branch" id to identify commits belonging tociqlts9_2history.PR / PR1: Whether the commit was included in the PR / PR1, and how, also under which commit.
Values:
-: Commit not part of the PR.Clean ch-p mainline: The commit was cherry-picked cleanly directly from thekernel-mainlinebranch.Clean ch-p 9.4: The commit was cherry-picked cleanly from theciqlts9_4backported version.Conflict mainline: The cherry pick of thekernel-mainlinecommit resulted in conflicts and likewise theciqlts9_4version. See Conflicts for details about these cases.Contextual conflict ch-p 9.4: The cherry pick of theciqlts9_4commit resulted in conflicts, but only contextual (with interdiff remaining the same after resolution).ΔPR: Whether the commit in PR1 differs from original PR (either code commited or message or the existence of commit itself)
!: There is a change0: No change-: Doesn't applyComment: Justification of why the commit was / wasn't included in the PR.
CVE: List of associated commits
(F): Fixing.(I): Introducing.(?): Not established whether the commit was fixing or introducing this CVE.The sequence preserves ordering of commits in this PR, and of commits in branches
1,2,3(from the most recent). Within theB:-andB:Hgroups the commits are ordered by the commit date of thekernel-mainlineversion (from the most recent).CVE-2023-4563 (F), CVE-2023-52924 (F), CVE-2023-52925 (I)CVE-2023-4563 (I), CVE-2023-52923 (I), CVE-2023-52924 (I), CVE-2023-6817 (?), CVE-2024-26924 (I), CVE-2024-57947 (I), CVE-2025-38162 (I)CVE-2023-4563 (I), CVE-2023-52923 (I), CVE-2023-52924 (I)CVE-2023-4563 (I), CVE-2023-52923 (I), CVE-2023-52924 (I)Commit titles
The following table provides the link between
Idcolumn in theCommitstable and the commit's title for identification purposes.CVEs
Columns:
Branches
Columns:
Bin the Commits tableCommitstable.kABI check: passed
Boot test: passed
boot-test.log
Testing
The testing angle was running the selftests from the
netfiltertest suite in different debugging conditions.The tests set
The
netfiltersubsystem has its dedicatednetfilterselftests suite. The table below summarizes allnetfilterselftests available inciqlts9_2and their evaluation status.Functional tests: passed
Reference
kselftests–ciqlts9_2–run1.log
kselftests–ciqlts9_2–run2.log
kselftests–ciqlts9_2–run3.log
Patch
kselftests–ciqlts9_2-CVE-batch-10–run1.log
kselftests–ciqlts9_2-CVE-batch-10–run2.log
kselftests–ciqlts9_2-CVE-batch-10–run3.log
kselftests–ciqlts9_2-CVE-batch-10–run4.log
kselftests–ciqlts9_2-CVE-batch-10–run5.log
kselftests–ciqlts9_2-CVE-batch-10–run6.log
Comparison
KFENCE tests: passed
All tests in Functional tests were run on kernel with default (enabled) settings for KFENCE:
In case of any KFENCE errors a message like
would occur in the dmesg logs. No such messages were found
KASAN tests: passed
The patched kernel was compiled with the following options changed:
The tests set from the Functional testing was run 50 times with KASAN debug messages switched on. No KASAN logs appeared in the kernel's console.
kasan-console.log
To ensure the KASAN was set up properly the KUnit tests for KASAN were run.
kasan-self-test.log
Kmemleak tests: passed
The patched kernel was compiled with the following options changed:
The tests set from the Functional testing was run 50 times. Kmemleak scan was triggered at the end and the logs were read
No memory leaks were found.
KCSAN tests: passed relative
The patched
ciqlts9_2-CVE-batch-10and reference kernelciqlts9_2were compiled with KCSAN enabled:The tests set from Functional testing was run a couple of times on the patched kernel with some KCSAN bugs reported:
kcsan-patch.log
Likewise, the same set of test was run on the reference kernel:
kcsan-reference.log
The data race errors reported can be summarized as follows, where
xmeans the error occured and-that it did not.No data race in the patched kernel was encountered which wasn't encountered in the reference kernel as well. Additionally, judging by the stack traces, none of the races detected seemed to be associated with the
netfiltersubsystem.