The state of the memory-management community in 2024
In 2022, Morton had described his (then) new plans for a Git-based patch-management scheme, involving separate mm-unstable and mm-stable trees for work in different stages of development. He started the 2024 session by saying that he had hoped that patches would move relatively quickly from the mm-unstable tree into mm-stable, but in reality it tends to take rather longer. As a result, his hopes that developers would be able to work against mm-stable have not really worked out. He is not sure how to make that aspect of the process work better.
A recurring problem, he said, comes about when he is holding onto version 3 of
a patch set, and the discussion has made it clear that a fourth revision is
needed. In such cases, he asked, should he keep version 3 while
waiting, or simply drop it? There is benefit in keeping patches in
mm-unstable, even if they will eventually be superseded, because the higher
visibility means that new problems and potential improvements continue to
turn up. He asked for feedback, but the room was uncharacteristically
silent in response.
He observed that he does get a bit tired of asking developers to describe the user-visible effects of the bugs they are fixing (here's an example that came by as this article was being written). He said that he always tries to make the request a little different but, in the end, asking that question has become what he does for a career.
There is, he noted, a new CVE process for the kernel. He wondered who was evaluating potential CVE assignments for memory-management patches, and said that he would like for the memory-management community to help where they can. Security implications, in the end, are user-visible effects of bugs as well. Michal Hocko said that, if developers try to think about this aspect a bit more, they can start noting in their changelogs whether patches are security relevant. But, he said, most of the people in the room are not security experts; the obvious security issues can be called out, but developers often do not know when they are fixing a security bug.
Brendan Jackman said that whether a given problem can be triggered from user space is valuable information to include in a changelog. Liam Howlett said that he had once fixed a use-after-free bug that, at the time, seemed benign, but it turned out that it could be exploited in combination with another bug. He had thought it couldn't be triggered from user space, but he was wrong and the result was a severe vulnerability. Jason Gunthorpe said that trying to score the security impact of bugs has legal implications, and he does not want to go anywhere near that. Saying that a bug is not exploitable is a scary claim to make, he added. Vlastimil Babka said that, even if a changelog notes that a bug can only be triggered by privileged users, that bug will still have a CVE number assigned to it. Jackman said that he would still like to know if capabilities are required to trigger a bug, though.
Changing subjects, Hocko asked developers to refrain from sending new versions of their patches before the discussion on the previous version has completed. He also said that, once a patch lands in Morton's tree, the potential for significant changes drops. It is better, he said, to keep work out of that tree until there is some consensus that it is good. David Hildenbrand said that Morton will often pull in work just to see if it will compile; maybe there is a need for a separate "stabilizing" tree that is not fed into linux-next. The linux-next kernel, he said, still blows up too easily. Morton said maybe he should add an "mm-stupid" tree.
Howlett said that he is being copied on patches far less frequently than before, and is missing work that he should have seen; he wondered if something has changed somewhere. Hocko suggested ensuring that the MAINTAINERS file is up-to-date. Morton said that he spends a lot of time ensuring that the right people see patches. Gunthorpe took a moment to suggest that more developers should be using the lei tool. It can be used to subscribe to a file and will collect all of the patches that touch that file; there is no need to change the MAINTAINERS file to see them. It is even possible to subscribe to specific functions.
Matthew Wilcox pointed out that there is a group of Rust developers trying to get their work in; that work includes things like wrappers for the page structure. What was the plan for getting that work into the mainline? Morton protested "but it's all in Rust!" More seriously, he said that this work should go upstream via the Rust tree.
Wilcox also complained about a series of header-splitting patches that had been posted recently. The author, he said, is exclusively focused on reducing compilation time and does not understand the memory-management subsystem. These changes will make maintenance harder, and he would like to reject them. Morton said that he looked at some of those patches when they went by, saw that they were "broken", and has not looked at them since.
The final topic was briefly raised by Wilcox, who noted that a number of kernel
subsystems have moved to a group-maintainership model; he wondered if
memory management needed to do that too. He was unsure that such a change
would actually fix any problems. Morton said that, for all practical
purposes, the subsystem is group-maintained now, even if he solely
maintains the tree that eventually goes upstream. Wilcox closed the
session by saying that he was happy with the process overall and thanking
Morton for doing a great job.
Index entries for this article | |
---|---|
Kernel | Memory management/Development process |
Conference | Storage, Filesystem, Memory-Management and BPF Summit/2024 |
Posted May 28, 2024 18:49 UTC (Tue)
by kleptog (subscriber, #1183)
[Link] (11 responses)
That... can't be right. Surely the scoring is done based on what you know? That is, you have either 'known to be remotely exploitable', or 'not known to be remotely exploitable'. You can't be asked to assert 'this bug is not remotely exploitable' because that's something you simply can't know. Our IT systems are so complex there's no way you can assert that for everyone.
If scoring something as 'requires physical access' is considered an assertion it's not remotely exploitable, then that needs to be fixed.
(It's similar to the reason security screenings only ever assert 'no known red flags' and not that you are actually trustworthy.)
Posted May 29, 2024 7:49 UTC (Wed)
by taladar (subscriber, #68407)
[Link] (2 responses)
Posted May 29, 2024 9:46 UTC (Wed)
by bluca (subscriber, #118303)
[Link] (1 responses)
Posted May 29, 2024 16:00 UTC (Wed)
by tux3 (subscriber, #101245)
[Link]
I mean, that subset of customers who have to spend months fixing low level problems themselves? Not evenly distributed.
Those LTS customers who spend months firefighting whenever the seasons have the insolence to keep changing drown out the sound of everything else still humming along quietly.
Posted May 29, 2024 9:38 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (7 responses)
There are two separate issues in my jurisdiction, IIRC (had this discussion in a previous job with a lawyer):
This means that scoring something as "requires physical access" is legally complicated to get right, first because of the expert opinion problem (where your role as someone who scores vulnerabilities means that you are an expert), and second because of the "what should I reasonably know" problem.
And note that the "should reasonably have known" thing comes from a past where people did things like burn mail that came from the city a creditor was based in so that they could claim honestly in court that they did not know that their creditor was chasing them for repayment; we're thus not going to get rid of that any time soon, to avoid all the problems that come from proving what someone actually knew.
Posted May 29, 2024 10:30 UTC (Wed)
by Wol (subscriber, #4433)
[Link]
Which is related to where the legal test of "the man on the Clapham Omnibus" comes from, if you ever come across that. I think that term tends to be used in trademark law - "would the man on the Clapham Omnibus be deceived?" Or patent law - "someone reasonably skilled in the art".
At the end of the day the law expects you to be well-informed - "Ignorance is no excuse". The other thing is to remember that individuals have a lot of consumer protection law in their favour - businesses (even sole traders) do not. Which is unfair, but hey that's life.
Cheers,
Posted May 29, 2024 16:07 UTC (Wed)
by kleptog (subscriber, #1183)
[Link] (5 responses)
All of this is only relevant if giving something an incorrect CVSS score is actually actionable. Near as I can tell they're slightly better than throwing dice and if anyone starts to believe the values are accurate in any meaningful sense they need to be educated. Also, the idea that I can be held accountable for an opinion I hold outside of a contract paying for said opinion sounds a bit weird.
From my point of view, the number of people in the world that can actually correctly score a random CVE rounds down to zero. If we really want these scores to be useful we need to accept that one person is not going to give a meaningful value, and you need to start working with error bars and confidence intervals. That one person can only give a provisional score and you need a few people to agree to give a real score.
I suspect however we don't really care enough to actually want to spend the effort on getting accurate scores and we should simply educate people that the scores are slightly better than dice rolls and any policy using them is broken by design. We should simply be encouraging people to give it their best guess (with confidence intervals) and accept they might be wrong. Otherwise we'll never get meaningful scores for any useful fraction of CVEs.
Posted May 29, 2024 19:00 UTC (Wed)
by farnz (subscriber, #17727)
[Link] (4 responses)
If people think you're giving an opinion, then there's no claim. In order for the "expert" part to come in, I have to present my opinion as a fact (e.g. "vulnerability CVE-xxxx-yyyy has CVSS score zz") and be an expert in the field. To go to a cause of action, you then have to show that I should have known that my statement was wrong, that a reasonable person would believe that my opinion as presented by me was a statement of fact, and that you suffered harm as a result of reasonably relying on my statement that you would not have suffered if you'd never encountered my statement.
That last one is often killer to a cause of action; you have to show that whatever happened caused you harm, wouldn't have happened if you'd never encountered my statement, and would have been a reasonable reaction to my statement if it had been true, not false. This is a lot to demonstrate…
Posted May 30, 2024 1:05 UTC (Thu)
by Heretic_Blacksheep (guest, #169992)
[Link] (3 responses)
Posted May 30, 2024 9:06 UTC (Thu)
by farnz (subscriber, #17727)
[Link] (2 responses)
The trouble in my jurisdiction (England & Wales) is that if you're publishing statements of fact, then you can create an existing client-expert relationship with anyone who reads your publications regularly (assuming, of course, that you're an expert). No money needs to change hands for this to be the case, nor does a separate contract have to exist.
This is why lawyers make that statement - they are experts (in law), and they need it to be clear that what they're publishing is an opinion, not a statement of fact, so that their publication record cannot create an expert-client relationship by mistake, since their publication record is not statements of fact (and thus you cannot argue that you became a client by relying on their expert opinions).
Posted May 30, 2024 16:02 UTC (Thu)
by kleptog (subscriber, #1183)
[Link] (1 responses)
Here we do have a similar concept of responsibility during pre-contractual negotiations and the concept of duty of care, but they're legislative concepts and our civil law system doesn't allow courts to extend these concepts in such a vague way. But given that a UK court did say a contractual relationship is not required, there haven't been any cases that to clarify a blog isn't covered and the legislature hasn't seen fit to clarify the situation, I can understand that people are disinclined to set themselves up to be a test case.
So I guess the answer is to write to your MP? I'm sure they'll get right on it. /s
(It does feel like this whole argument also applies to something like OpenStreetMaps. I don't think anyone has tried suing OSM contributors for creating incorrect maps, but if you're not feeling secure about publishing CVSS scores, I don't suppose modifying OSM or Wikipedia feels any safer.)
Posted May 30, 2024 19:36 UTC (Thu)
by farnz (subscriber, #17727)
[Link]
OpenStreetMap, Wikipedia and similar are a different case, because I can make the argument that I did not publish the statements under consideration myself, but instead gave a statement to OpenStreetMap Foundation, Wikimedia Foundation or similar who chose to publish it, and who could have refused to publish it if they thought it was problematic. That extra degree of separation is apparently enough (but check with your lawyer) to get you out of trouble, since you have to have published the statement for the case law to come into play, and you didn't publish it - the entity you gave the statement to did.
Posted Jun 28, 2024 18:38 UTC (Fri)
by deltragon (guest, #159552)
[Link]
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
People delegate the dirty work to more competent dependencies. Rarely does anyone who lives on top of a big standard runtime notice anything when upgrading the kernel, with a very finite number of exceptions.
The state of the memory-management community in 2024
The state of the memory-management community in 2024
Wol
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
The state of the memory-management community in 2024
Header-splitting patches