|
|
Subscribe / Log in / New account

Intentionally buggy commits for fame—and papers

By Jake Edge
April 21, 2021

A buggy patch posted to the linux-kernel mailing list in early April was apparently the last straw for Greg Kroah-Hartman as it led to the planned reversion of a whole slew of commits with one thing in common: their origin at the University of Minnesota (UMN). The patch to the NFSv4 authorization mechanism was duly questioned by two NFS developers, but it is not an honest mistake; according to Kroah-Hartman, there has been an attack of sorts underway as part of some academic research at the university. In order to be sure that these intentional bugs, many with security implications, do not continue to haunt Linux, he is working on reverting commits that came from email addresses with the umn.edu domain.

The buggy patch was posted by Aditya Pakki on April 6, questioned by J. Bruce Fields the next day, and NACKed by Trond Myklebust the day after that. On April 20, Kroah-Hartman responded to it in decidedly unhappy fashion:

Please stop submitting known-invalid patches. Your professor is playing around with the review process in order to achieve a paper in some strange and bizarre way.

This is not ok, it is wasting our time, and we will have to report this, AGAIN, to your university...

Fields asked for more details, some of which were filled in by Leon Romanovsky. A paper [PDF] by Qiushi Wu and Kangjie Lu, both of the University of Minnesota, details the process of introducing use-after-free bugs into the kernel for the purposes of, essentially, showing that it can be done—and presenting a paper about it, naturally. Romanovsky continued: "Yesterday, I took a look on 4 accepted patches from Aditya [Pakki] and 3 of them added various severity security 'holes'."

Kernel developers have enough problems with bugs being added by mistake, so patches with intentional bugs are obviously unwelcome. Kroah-Hartman said that all of the patches coming from these developers need to be reverted because "what they are doing is intentional malicious behavior and is not acceptable and totally unethical". He put together a patch set of 190 reversions that he called the "easy" reverts; there is a set of 68 additional patches that need manual review to determine what to do about them. "Some of them are not able to be reverted as they already have been reverted, or fixed up with follow-on patches as they were determined to be invalid. Proof that these submissions were almost universally wrong."

He asked that maintainers review the 190 reversions to see if some actually fixed real problems; so far, a small handful have been determined to either be real fixes or to be harmless. The real fixes, at least, will remain in the tree. Kroah-Hartman had a warning for maintainers, though, in light of this situation:

[...] but [maintainers] should be aware that future submissions from anyone with a umn.edu address should be by default-rejected unless otherwise determined to actually be a valid fix (i.e. they provide proof and you can verify it, but really, why waste your time doing that extra work?)

Of course, it is not just the mainline that is affected by these dubious patches. As Sudip Mukherjee pointed out, some have already made their way into stable kernels. Those need reversion too, Kroah-Hartman said.

There is a question of whether this type of research is ethical. Abhi Shelat said: "Academic research should NOT waste the time of a community." He suggested reporting the behavior to the review board that is responsible for ensuring that research at UMN remains ethical and, in particular, anything that might be considered human experimentation is supposed to be pre-reviewed by that board. While making a report of that nature may happen, kernel developers have a much more direct "fix", as Romanovsky pointed out: "Our solution to ignore all @umn.edu contributions is much more reliable to us who are suffering from these researchers."

That fix is, of course, fairly drastic; there are surely some folks with umn.edu addresses that are not part of the research, nor trying to intentionally slip bugs into the kernel. In fact, Pakki claimed to not be purposely doing so in email to Kroah-Hartman, who replied on the list. Pakki said that the patches were based on the output of a new static analyzer that he wrote, but its "sensitivity is obviously not great". Kroah-Hartman was not buying that explanation, however:

Our community welcomes developers who wish to help and enhance Linux. That is NOT what you are attempting to do here, so please do not try to frame it that way.

Our community does not appreciate being experimented on, and being "tested" by submitting known patches that are either do nothing on purpose, or introduce bugs on purpose. If you wish to do work like this, I suggest you find a different community to run your experiments on, you are not welcome here.

Of course, it is hard to imagine that other communities are looking forward to having their time wasted with known-buggy patches either. In fact, a thorough review of patches emanating from UMN over the last year or two is probably in order for other projects, particularly high-profile ones. There is, of course, nothing stopping "researchers" from using other kinds of email addresses for these patches, though the umn.edu domain does at least provide a fig leaf of cover; otherwise, introducing security holes into the kernel from a personal address is pretty much indistinguishable from an attempt to backdoor the kernel—which may be a criminal offense. In addition, a maintainer receiving email from a .edu domain may be less likely to deeply scrutinize a patch that looks like a simple bug fix.

It may not quite have sunk in yet, but these researchers have damaged not only their own reputations, but the entire university's, which is obviously unfair, but there are not really any workable alternatives. Some efforts at damage control have been tried, but the statements made do not mesh well with the situation on the ground. On the home page for Lu, one of the authors of the paper, there is a note and a link to a three-page clarification [PDF] on the entry for the paper. The note says:

The experiment did not introduce any bug or bug-introducing commit into OSS. It demonstrated weaknesses in the patching process in a safe way. No user was affected, and IRB exempt was issued. The experiment actually fixed three real bugs.

The clarification continued in the same vein, claiming that no code used by the study made it into the kernel; it did note that "unfortunately" maintainers' time was wasted in the process, however. But various kernels have been found with bugs introduced by suspect commits. In fact, Guenter Roeck, in a reply to an apparently private email from Lu pointed to a commit authored by Lu that introduced a problem. Roeck probably summed up the thinking of many in his reply:

It might be worthwhile to have a discussion at the upcoming maintainers summit on how to handle contributions from untrusted sources in the future, and how to identify trusted contributors. Quite obviously the paradigm has finally changed from "assume the contribution is well-intended" to "assume the contribution is malicious". I guess that was prone to happen, but it is sad to experience it anyway.

For my part, congratulations (in a negative sense): You made me much less inclined to accept minor bug fixes from people I don't know in the future.

UMN is now aware of the problems; the Computer Science department put out a statement acknowledging the concerns expressed by the kernel community. An investigation will be undertaken:

We take this situation extremely seriously. We have immediately suspended this line of research. We will investigate the research method and the process by which this research method was approved, determine appropriate remedial action, and safeguard against future issues, if needed. We will report our findings back to the community as soon as practical.

It is a horrifically messy situation, seemingly brought about by researchers who were not too concerned about the effects of their research on others. While Linux developers hardly need the additional work, the resulting "extra" scrutiny of new patches will be beneficial. It is a bit hard to see that as a silver lining, exactly—more like a sad but necessary outcome that was inevitable, as Roeck put it. This incident also should serve as a warning to researchers, at least hopefully, going forward: our communities are not playthings. Our code is free and open, but not for abuse.


Index entries for this article
KernelSecurity
SecurityLinux kernel


to post comments

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 22:35 UTC (Wed) by blackwood (guest, #44174) [Link] (6 responses)

On the bright side there's another publishable paper in this about how to throughroughly destroy your entire university's reputation.

But also the kernel community imposing severe restrictions and additional scrutiny on entire companies and groups is also not really a novel research insight. And if you screw up with sufficient malice and intention you get banned.

My take away is that yes reputation can be subverted, but also it's still long term trusted people who contribute most of the bugs. So the fix there is more testing and better fuzzers/tools/checkers to catch bugs. Also reputation is still very easy to loose. There's delays, but I think the process is working.

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 23:08 UTC (Wed) by warrax (subscriber, #103205) [Link] (5 responses)

You make a great point. This is a social problem.

Anyone who works in regulated industries is (and must be) vetted to an extent proportional to their ability to exploit the systems they're supposed to be implementing and/or safeguarding. (On top of the regular code review, etc.) One example I have personal experience with is working in payment processing where a criminal record (for financial or financial-adjacent crimes) would be an instant DQ from the job.

Given the amount of use Linux is seeing in all kinds of mission/life-critical industries it may be time to rethink the trust model of patch acceptance for the kernel.

(There are *some* technical things that could lessen the burden on reviewers to catch security-bugs, but that's not relevant at this exact moment in time.)

Linux development shouldn't become less open

Posted Apr 22, 2021 11:46 UTC (Thu) by milesrout (subscriber, #126894) [Link] (4 responses)

I don't see why people should be excluded from contributing to the Linux kernel because some "mission/life-critical industries" can't be bothered to develop their own software to their own standards.

If they have such exacting standards for code quality, they should pay for and develop code that meets it. It's not everyone else's responsibility, least of all the responsibility of the developers of a hobbyist ("not big and professional like gnu") operating system kernel.

Linux development shouldn't become less open

Posted Apr 22, 2021 11:52 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link]

> It's not everyone else's responsibility, least of all the responsibility of the developers of a hobbyist ("not big and professional like gnu") operating system kernel.

Linux kernel hasn't been just a hobbyist kernel in decades. Most of the kernel development is funded by large commercial corporations.

Linux development shouldn't become less open

Posted Apr 22, 2021 22:13 UTC (Thu) by roc (subscriber, #30627) [Link] (2 responses)

Retreating to "they're just hobbyists"/"they're just volunteers" when kernel devs are challenged about unprofessional practices is a cop-out. Fortunately, I seldom see actual kernel devs using it.

Linux development shouldn't become less open

Posted Apr 22, 2021 23:10 UTC (Thu) by NYKevin (subscriber, #129325) [Link] (1 responses)

That is beside the point.

There are, broadly speaking, two categories of organizations we might be talking about:

1. Those that contribute to the kernel in some way.
2. Those that merely use it.

Of course, "we send patches to LKML from time to time" does not entitle an organization to demand change; LKML is not some tech company's private property. But it does at least give them a little bit of credibility when they *ask* for such changes. They can plausibly say "Yes, this will cost more work, but we will help you do it, and we genuinely believe this is in everyone's best interests in the long run." Group #2, by contrast, may not even properly understand LKML's normal development practices, let alone the exact change they want to propose, and so if they complain that the current process is "insecure," it will be ignored. As a GPLv2 project, Linux is of course offered "WITH NO WARRANTY" etc., so ignoring such complaints is not wrong. In fact, those working in highly regulated industries are probably wrong to ignore this admonition. You're supposed to get devices and software approved by your regulatory body, not just download random warranty-free software off of the internet, right?

Ultimately, the people in group #2 only have so many options to choose from:

1. Audit and fuzz test Linux very aggressively to make sure that bugs and regressions don't make it in.
2. Use something that is not Linux.
3. Contribute to Linux and help make things better. The easiest way to start is probably to take the tests from option #1 and try to upstream them.
4. Accept that no software is perfect, Linux will inevitably have security bugs, and you're just going to have to deal with them when they are discovered.

Linux development shouldn't become less open

Posted Apr 23, 2021 17:56 UTC (Fri) by ale2018 (guest, #128727) [Link]

> 4. Accept that no software is perfect, Linux will inevitably have security bugs, and you're just going to have to deal with them when they are discovered.

As a single user, small office, or even a company with a limited tech dept, one can only afford #4. The alternative choice, to pay for a doubtfully warranted OS, is not much better, and in addition has privacy implications which are becoming more and more stifling.

The NO WARRANTY statements in GPLv2 are meant to be a legal stamp to cover programmers' arse from arbitrary claims of damage. It doesn't describe the real intent. Here the mission is an OS that all people can depend on, software for the mankind if you look at it from an evolution viewpoint.

The fact that software development can be exposed to vandalism like wikipedia needs more consideration.

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 22:51 UTC (Wed) by warrax (subscriber, #103205) [Link] (16 responses)

The really weird thing about this that it's proving an entirely trivial point: Sufficiently motivated malicious actors can get patches into Linux.

Code review is not particularly good at finding bugs in the first place (though it has to be said that the kernel patch review process is probably one of the more stringent ones), and a sufficiently motivated actor can always chain together enough innocuous-enough-looking patches to achieve an exploit.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 2:30 UTC (Thu) by wtarreau (subscriber, #51152) [Link] (13 responses)

It is always the case and is expected. Did you have a look at these patches ? They all claim to fix potential issues with a good justification. Verifying if the issue is real requires to do the same analysis work that was supposedly done before the patch, which is extremely time-consuming. If in the end we required that everyone in the chain had to redo all analysis, it wouldn't be a community project anymore and we'd have barely gone past linux 1.2.

The principle of distributed development is that you need to invest a little bit of trust and that in exchange the persons you trust risk their reputation. That's why commits are rarely accepted from dummy names and addresses.

These people just managed to break the chain of trust and ruin their reputation. In addition their contributions were detected as bad during the review process, rejected and eventually reverted. They proved the process works.

In the end it's probably much easier to inject bad code in some software by being a contractor for a closed software company, where reviews are often less common or where anyone can push code. You know, the typical Friday afternoon's "please merge my code, I want to finish my activity for this week".

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 3:39 UTC (Thu) by rsidd (subscriber, #2582) [Link]

> The principle of distributed development is that you need to invest a little bit of trust and that in exchange the persons you trust risk their reputation. That's why commits are rarely accepted from dummy names and addresses.

This is hugely important and is why I am nervous about, eg, xda (for android roms and mods) where nearly everyone is pseudonymous.

In the kernel case, I would guess an institutional address helps more than a random gmail address with an unknown "real name" on it. Normally it would have been a plus if the institution was a well-known university.

Academic people should understand the reputation aspect. If you put out dubious research, you damage your own reputation. Which is what they did. There are pressures in academia, to publish, make headlines, generate funding. Sometimes people succumb to that pressure and end up hurting themselves.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 10:54 UTC (Thu) by jani (subscriber, #74547) [Link] (10 responses)

> The principle of distributed development is that you need to invest a little bit of trust and that in exchange the persons you trust risk their reputation. That's why commits are rarely accepted from dummy names and addresses.

Recently, before the incident at hand, there was a discussion on contributions from people using pseudonyms or aliases. Basically, there's no way of knowing if the names are real or not anyway, so it was suggested that you build reputation for an alias, and it does not matter if it's Reputable Name or Foo12345. It was also suggested that the requirement for using real name in submitting-patches.rst is outdated and does not reflect reality.

Surely we can't start requiring signed patches only from people within the web of trust...

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:42 UTC (Thu) by nix (subscriber, #2304) [Link]

Quite. What matters isn't that your name is real: it's that it has a reputation. Real names are if anything a kludge around the bootstrapping problem that nobody has a reputation to begin with, and at least with a real name you can in theory, I dunno, phone the person up and rant at him or something. (Or get the police involved, if it's really bad). But if your pseudonym has a reputation that's bigger than your real name's, so be it.

I mean, I've been using the same pseudonym on the net ever since I started, for about 30 years now. I'm certainly better known under that pseudonym than under my real name, and frankly (for the same reason) I probably care more about spoiling the reputation of that pseudonym than I do about my real name. In that situation, the only justification for using my real name instead is as a legal figleaf. The name with the rep is the other one.

Chosen rather than externally-granted identities are the in thing these days. If they have a good reputation, why not treat them as similar to the legal one? (I suspect that if you don't do that you're significantly reducing your chances of getting input from younger people anyway.)

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 14:47 UTC (Thu) by cesarb (subscriber, #6266) [Link] (7 responses)

> It was also suggested that the requirement for using real name in submitting-patches.rst is outdated and does not reflect reality.

I might be misremembering, but wasn't the requirement to use your real name, and the whole Signed-off-by: stuff, added as a response to the SCO case? That is, it's not about reputation, it's about legal issues related to copyright.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 15:32 UTC (Thu) by jani (subscriber, #74547) [Link] (6 responses)

> I might be misremembering, but wasn't the requirement to use your real name, and the whole Signed-off-by: stuff, added as a response to the SCO case? That is, it's not about reputation, it's about legal issues related to copyright.

Regardless, it's pretty much impossible to enforce, isn't it? All you can say is, "Please tell me that is your real name", or "Please use a name that I subjectively with my cultural background feel could be a genuine name."

Also, https://www.kalzumeus.com/2010/06/17/falsehoods-programme...

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 16:18 UTC (Thu) by mathstuf (subscriber, #69389) [Link] (4 responses)

We have a warning for author and committer names that aren't "full". Basically the only guideline I could come up with that made any sense and wasn't liable to false positives[1] was "contains a space". This still likely affects names in non-alphabetic languages and those who change their name to be just a single "word", but the former generally have Latin-ized names used in English communities (if not at least to make it easier for others to type and read) and the latter aren't generally contributing to FOSS. Either way, the check is just a warning and is meant to catch those who don't set up the `user.name` config and instead just have their local account's username in there instead.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 22:19 UTC (Thu) by pbonzini (subscriber, #60935) [Link] (1 responses)

Lots of people in Indonesia have only one name. Some might make up an English-sounding name just to please westerners, but it's a fairly large country to say that people with one name (whether by changing it or being born with one name one) aren't generally contributing to FOSS.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 0:31 UTC (Fri) by mathstuf (subscriber, #69389) [Link]

Ah, I wasn't aware of that. Handy to keep in the back of the mind for the future. In any case, it's not a hard error that block merging, so it's not a tall barrier (other than the robot warning about the "full name policy").

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 23:25 UTC (Thu) by pabs (subscriber, #43278) [Link] (1 responses)

There is a Debian contributor whose legal name contains no spaces: Wookey

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 8:23 UTC (Fri) by fulke (guest, #140430) [Link]

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 23:27 UTC (Thu) by rgmoore (✭ supporter ✭, #75) [Link]

What they really mean isn't quite "give me your real name"; it's closer to "give me a legal identity that can be held accountable for your behavior". That could be an individual identity, or it could be the contributor's employer vouching for them. The key point is that contributions can come with legal responsibility, e.g. if someone tries to contribute code they don't have the copyright for. The project wants to be able to link that code to an individual who can bear legal responsibility if something like that happens. Otherwise, the project as a whole will bear responsibility.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 11:36 UTC (Fri) by wtarreau (subscriber, #51152) [Link]

The deep issue isn't indeed the name but the ability to create throw-away identities via random email addresses. Seeing foo12345@gmail.com doesn't please me, and it doesn't please me more to see "Phil Scott" or "Jonathan Mars" in front of it. During the discussion abount the PRNG last year with "George Spelvin" I had no idea this name was not correct, but it had a pretty short address that didn't look temporary at all, and that was sufficient to me to believe it wasn't a troll.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 12:45 UTC (Thu) by mss (subscriber, #138799) [Link]

> That's why commits are rarely accepted from dummy names and addresses.

How do you tell them apart from real names?
Inventing a plausible name doesn't seem to be a very hard thing to do.
And even if you personally do a detailed due diligence on each new contributor there are many maintainers to choose from, it's enough to find one too overworked to do that.

> In addition their contributions were detected as bad during the review process, rejected and eventually reverted. They proved the process works.

I think their "detection" owns much to the paper they have published where they described what their research is about.
As far as I know, these three earlier patches, that intentionally introduced bugs, that were submitted as a part of doing research for that paper weren't recognized as such at that time.

In general, I think the problem described in that paper is *very* real and have worried me a lot for years.

Even if kernel introduces some super-vetting process getting a vulnerability into a popular user space library is almost as good as getting one into kernel.
Besides that, there are also volunteer-run distributions, almost every one of them severely understaffed.

FreeBSD's PHK has made a good talk about this and much more *7 years ago*: https://www.youtube.com/watch?v=fwcl17Q0bpk
While he talked about an industry-wide subversion activities program by a state actor, there is also a part about subverting OSS (it starts around 23:30),
which certainly does not need nation-state resources to execute.

That's why I think that while we might disagree how the research was handled we he have to be careful not to shot the messenger.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 2:33 UTC (Thu) by fratti (guest, #105722) [Link] (1 responses)

The recommendations for improving the patching process in their response[1] was laughable as well:

> OSS projects would be suggested to update the code of conduct, something like “By submitting the patch, I agree to not intend to introduce bugs."

Because just asking nicely not to be backdoored will apparently stop malicious actors. Bonus points that they assume receiving malicious backdoors is opt-out.

> We need automated tools for testing and verifying patches.

What an original idea.

>OSS maintaining is understaffed.

This one is pulled straight from an HN headline or something, and is once again not really making a novel observation, which is especially bad considering they actively contributed to the issue.

And their last recommendation is just an advertisement for their paper.

[1]: https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 4:01 UTC (Thu) by wtarreau (subscriber, #51152) [Link]

> Because just asking nicely not to be backdoored will apparently stop malicious actors. Bonus points that they assume receiving malicious backdoors is opt-out.

Reminds me of the evil bit in RFC3514 :-)

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 23:38 UTC (Wed) by roc (subscriber, #30627) [Link] (12 responses)

Lu definitely made a big mistake in the way they approached their Oakland 2021 paper.

But, while pile-ons are fun, I think the reaction is a bit over the top. In particular I don't yet see any reason to doubt the clarification they issued: https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf

Their paper lists the three buggy patches they intentionally submitted. AFAICT the "evidence" that intentionally buggy changes landed in the kernel is actually other commits that were unintentionally buggy. E.g. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/... doesn't seem to be associated with the work in the Oakland paper.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 0:05 UTC (Thu) by itsmycpu (guest, #139639) [Link]

I'd expect the University to make a larger monetary contribution to make up for the trouble and overtime they have caused.
And to volunteer a list of all bogus patches, all that are a mix of bogus and real patches, and clarifications why they think that any real ones are in fact real, if any.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 2:24 UTC (Thu) by fratti (guest, #105722) [Link] (2 responses)

If 3 out of 4 of their patches introduce security holes, it's not a stretch to assume they're busy writing their next paper showing practical examples of how to get backdoors into Linux. The problem is that once you experiment on non-consenting humans, the benefit of the doubt is gone.

Intent is hard to quantify, so I wouldn't rely on anyone's claim of intent and let the actions themselves speak. And those currently look like there's a lot of garbage patches coming out of UMN, with one particular example where a patch submitter ignored an automated coverity report pointing out a NULL deref in their patch.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:50 UTC (Thu) by nix (subscriber, #2304) [Link]

> Intent is hard to quantify, so I wouldn't rely on anyone's claim of intent and let the actions themselves speak. And those currently look like there's a lot of garbage patches coming out of UMN, with one particular example where a patch submitter ignored an automated coverity report pointing out a NULL deref in their patch.

Exactly. Right now they are on the horns of a dilemma: either they are intentionally introducing bad patches (in violation of appendix A in their own paper, though perhaps their *next* paper will have some *different* ethical wossname which its unconsenting subjects can't read yet because the paper isn't published)... or they are letting inexperienced students submit patches which are trivially determined to be buggy, which suggests that they're not doing any sort of preliminary review, which... well, if you're lining up a lot of newbie contributors to any project (as opposed to just being one newbie contributor yourself) it probably falls on you to give the first few submitted patches from any given contributor a once-over before submission, to make sure they're not terrible. This is routine in other large organizations (where "large" often means "more than a dozen people"): every project I've worked on for my current employer has had someone else internally look over the first few patches to make sure I wasn't screwing stuff up and wasting people's time. This was really good -- it reduced the stress quotient for me and probably also for upstream considerably, and the patches were better for it.

This research group inside UMN is apparently not doing any of that: they're using the kernel's limited review bandwidth as free tuition for their students. This is distinctly scummy. And that's the *good* fork of this dilemma, the one that just assumes ignorance or laziness rather than malice.

Intentionally buggy commits for fame—and papers

Posted Apr 24, 2021 13:42 UTC (Sat) by Yueting (guest, #151831) [Link]

To my best knowledge, the UMN teams never disclosed exactly which patches/emails belong to the experiment work that is described in their paper. Thus, in my personal humble opinion, till now, most discussion about this topic is built on the top of the maintainers' best guess/analyses.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 2:47 UTC (Thu) by shemminger (subscriber, #5739) [Link]

If you want the kernel community to only accept patches from the in-group (known contributors), companies, or people who have passed background checks; then this is a step forward. If you want the kernel community to accept contributions from strangers; then this is a major blow.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 7:49 UTC (Thu) by dxin (guest, #136611) [Link] (3 responses)

They are not overreacting. They are taking hostage of the email addresses to leverage the university management against the offending researchers.

This is a calculated and targeted revenge.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 12:56 UTC (Thu) by clump (subscriber, #27801) [Link]

Revenge isn't the right word. It has been posted elsewhere in the comments that Linux development requires a degree of trust. Certain malicious actors abused that trust and no longer have the privilege of "contributing".

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 6:59 UTC (Fri) by elel (guest, #100484) [Link] (1 responses)

I would argue that questioning the work of the submitting organization as a whole is actually a good response and even a normal one when security flaws are discovered. This isn't an exact parallel but take for example the compromise of Solarwinds products last year. The initial finding was from a single victim of the compromise but it led to finding many other victims, the original compromise, and the added scrutiny found several other vulnerabilities in the company's products.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 20:23 UTC (Fri) by roc (subscriber, #30627) [Link]

A university is a much more heterogenous place than most companies. Researchy ones have a bunch of different research groups operating almost completely independently. You have classes also operating mostly independently. And you have students doing their own thing, also independently.

I don't think anyone really wants to treat everyone in a university as having collective responsibility. That way lies an erosion of student freedom that could, ironically, have impeded the creation of Linux in the first place.

The issue: experiments on humans without their consent

Posted Apr 22, 2021 15:40 UTC (Thu) by david.a.wheeler (subscriber, #72896) [Link] (1 responses)

Their clarifications don't help. This is an experiment on humans, without consent from those humans. You can't even do a *survey* without IRB review. Doing an experiment on humans without IRB review is *already* a big issue; the fact that the IRB permitted it after-the-fact is even worse. This seems to be a clear ethical violation to me, and quite possibly a civil or criminal matter (I am not a lawyer).

The issue: experiments on humans without their consent

Posted Apr 22, 2021 22:17 UTC (Thu) by roc (subscriber, #30627) [Link]

As I said, I agree their clarifications don't make their actions right.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 13:28 UTC (Fri) by Yueting (guest, #151831) [Link]

[1]
Does anybody have the UMN lab's exact and complete actions list? It will be really helpful for cleaning up issues and clarify the situation.

[2]
It looks to me that the questions in the below twitters are not only validate, but also very urgent.
https://twitter.com/MortenLinderud/status/138484439783832...

[3]
Some random emails (not UMN emails) may also be used for the "experiment".
(https://lore.kernel.org/lkml/YIEqt8iAPVq8sG+t@sol.localdo...)
If so, other patches need to be re-reviewed besides those from the UMN emails.

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 23:45 UTC (Wed) by jiiksteri (subscriber, #75247) [Link]

There's a lot of obviously broken stuff (even in the this-is-not-valid-C sense) flying around on lkml these days in what's apparently good faith too, so it's not always easy to attribute to malice. With all the automated testing in place it almost feels like people are using lkml as a CI pipeline bootstrapper and not really looking at what they're doing.

But then again if Aditya Pakki claims to have written a static analyzer for C, it should be safe to assume they know how variables work at least.

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 23:47 UTC (Wed) by sub2LWN (subscriber, #134200) [Link] (1 responses)

Too bad they didn't just make their own projects or forks to experiment with, and have the collaborators be properly informed about the scope of what was going on. Sure, the sample sizes would be smaller, but then they could get the basic ethics sorted and maybe improve some niche software in the process.

Or a "Hey Greg, can we experiment on you?" "No." "OK."

(No Gopher project maintainers were badgered in the creation of this comment.)

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 5:43 UTC (Thu) by madhatter (subscriber, #4665) [Link]

> No Gopher maintainers were badgered

I see what you did there <grin>.

Intentionally buggy commits for fame—and papers

Posted Apr 21, 2021 23:59 UTC (Wed) by ndesaulniers (subscriber, #110768) [Link]

Guenter nailed it; this is a sad day for free and open source software.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 0:42 UTC (Thu) by ccchips (subscriber, #3222) [Link]

This is like introducing pollutants into an estuary to see how they affect the ecosystem.

I applaud UNM for suspending this research project; I'll be interested in how (or whether) there will be any consequences for the perpetrators.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 0:49 UTC (Thu) by flussence (guest, #85566) [Link] (8 responses)

They claim their IRB acked this, whereas I've seen other people pointing out they only sought that approval after they got caught, which isn't proper protocol at all, and if that's the case the not only was it clearly forced through in a turnaround of mere hours.

In either case it means their IRB is rotten too. Making an example of the entire organisation seems fair to me.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 4:39 UTC (Thu) by anonymous_commenter (guest, #117657) [Link] (2 responses)

I agree, any human experiment must goes through an IRB first and any competent IRB would have said no after virtually grilling the responsible peoples' posterior (from the paper writer to whoever had knowledge and vetted it up the chain) through such a machine and handing them back :)

Al

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 14:18 UTC (Thu) by tamiko (subscriber, #115350) [Link]

Something doesn't entirely compute here.

As someone who has to deal with IRB approval in the past:

You need IRB approval for literally everything that involves human beings in some form (which is the case here). For example, I had to write a 30 page document for an IRB approval to do a 2 page anonymous questionaire at the end of a software course.

Also, I would be highly surprised if the Minnesota IRB did not require "informed consent", i.e., a statement summarizing impact and consequences for potential participants and that has to be signed by participants before research can be conducted.

Institutional IRBs had been created specifically to ensure that "informed consent" is given in some form before any research is conducted...

Experimentation on humans without their consent is unacceptable

Posted Apr 22, 2021 15:31 UTC (Thu) by david.a.wheeler (subscriber, #72896) [Link]

I agree, any experiment on humans must go through an IRB, and in almost *all* cases you have to have consent from the humans being experimented on.

In this case, the researchers didn't send their proposal to their IRB before doing the experiment - which is *already* a huge problem. IRBs are supposed to protect humans from experiments, how can that possibly work if the experiments happen first??? Their IRB then approved doing these experiments on humans without their consent, which is beyond the pale. GregKH specifically called the researchers out on this: "Our community does not appreciate being experimented on". Saying the word "process" does not suddenly change the rules or eliminate the humans; humans were fundamentally involved in the Linux kernel review process. If using the word "process" eliminated IRBs, then every medical experiment would suddenly investigate "metabolic processes" instead :-). I had to go through detailed IRBs just for surveys and interviews; this failure of oversight is a black mark on the whole university.

I think these researchers clearly acted unethically, and since they didn't ask for prior consent, they may have attacked other systems no matter what they say. I used the following shell command to search for potentially-concerning commits in git in one of my projects, other projects may want to do the same:

git shortlog --summary --numbered --email | grep -E '(wu000273|kjlu|@umn.edu)'

*All* OSS projects should review proposed changes for potential security issues, and harden their software & supply chain against attacks. I also welcome research to make that better!

But we don’t need researchers who perform attacks on production systems without authorization, or researchers who perform attacks on developers without their consent. Research is great, but you need to get permission from those you're attacking first.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 10:45 UTC (Thu) by bpearlmutter (subscriber, #14693) [Link] (3 responses)

Having worked with them, I have to say that IRBs are utterly inappropriate for software or software security. It's far outside their area of competence, and their rules do not make sense in that domain.

Let me give an example. A PhD student is implementing a new text editor with some interesting features. They decide since usability testing involves human beings, it is human subjects research and subject to IRB approval, and the IRB agrees. So, what happens next?

- The grad student isn't allowed to use the editor (cannot use self as experimental subject).

- Key bindings must pass relevant health-and-safety regulations.

- Their officemate has the same PI, also cannot be use it (has interest in result).

- Anyone trying it has to fill out five pages of paperwork (consent form) that lists risks like injuring wrist from repetitive stress injuries, paging through material might cause screen to flash light-and-dark which could trigger photosensitive epilepsy.

- Data retention policy must be on file, including plans for security, access, withdrawl of consent, external data control officer, audits for compliance.

- Statistical analysis must be pre-specified.

- Study must be pre-registered with appropriate bodies.

And a computer game? A wearable computer? Just imagine!

IRB problems

Posted Apr 22, 2021 15:52 UTC (Thu) by david.a.wheeler (subscriber, #72896) [Link]

I completely disagree. IRBs are (necessarily) bureaucratic, but the rules work well enough in general.

Sure, a particular IRB can misapply the rules governing it, such as the ridiculous examples you list. But the solution is to work with the IRB (or its oversight) to fix them. You need to have people on the IRB who understand the domain, but nothing prevents that either.

I imagine IRBs could be improved, or replaced with something better. But the issue here is that we have researchers that experimented on humans without their consent. You don't need to be a rocket scientist to realize that such experiments are generally *not* acceptable.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 23:26 UTC (Thu) by anonymous_commenter (guest, #117657) [Link]

Where I worked (cognitive science), there has been computer based testing of subjects (both typical and atypical) which involved computer scientist teaming up with psych or neuroscientist to implement those computer based test and in those cases, yes, IRB approval was sought out which was a normal process (more for psych or neuro peoples) but in any cases, IRBs in most major research university do get exposure to the computer science side of it.

Here, I see two faults:

1-: not seeking IRB approval first.

2-: either (yes, I can play devil's advocate), the IRB rubberstamped the study after the fact or else, the paper author lied about seeking IRB approval. Please take my concern with a grain of salt and no more than that; I'm just fresh out of an exam which took me 5 hours 45 minutes and I have to deliver 2 terms paperwork for next Monday 11:59pm, one of which isn't started yet. Otherwise, I would investigate.

Al

Intentionally buggy commits for fame—and papers

Posted Apr 25, 2021 2:03 UTC (Sun) by anonymous_commenter (guest, #117657) [Link]

Now that I have more time (paperwork shipped), please (Jon Corbet if you moderate comments and bpearlmutter) let me address each individual points:

The grad student isn't allowed to use the editor (cannot use self as experimental subject). also Their officemate has the same PI, also cannot be use it (has interest in result).

Bias in the result. Yes, I agree that one these two winners of the 2005 Nobel prize (www.nobelprize.org/prizes/medicine/2005/summary/) infected himself with H. Pilori to validate his result but for one exception, there are a metric ton of examples not to follow. It's like N95 and N99 masks now despite mass vaccination against COVID-19. some, not vaccinated peoples refuse to wear masks.

Key bindings must pass relevant health-and-safety regulations.

Health and security at work, not only universities are subjects to these law, so does every other workplaces in most countries. The laws (including workplace health and security) are implemented after the facts because someone suffered.

Anyone trying it has to fill out five pages of paperwork (consent form) that lists risks like injuring wrist from repetitive stress injuries, paging through material might cause screen to flash light-and-dark which could trigger photosensitive epilepsy.

Ever had a vaccine? read the package insert. I agree that's lawyeresque writing about the common (sore arm not because of the vaccine but rather the method of application...read syringe administered by a human) and not so common (Guillain Barré syndrome and death which range from 1 in a few million to one in a billion). Same laws or lawyeresque CYA.

Data retention policy must be on file, including plans for security, access, withdrawl of consent, external data control officer, audits for compliance.

How many years are you required to keep your taxes paperwork on hand before being allowed to destroy them? Here (canucksland), it's 7 years and I can ask for the last 10 years of my taxes to be recalculated. Now human research, more so because it involve human, not just financial data.

Statistical analysis must be pre-specified. Study must be pre-registered with appropriate bodies.

Yes to both, it's part the Geneva convention after the nazi experiments done by Dr Mengeles. Remember, the law upon which IRB are subjected to are after the facts and among the factual evidence base are the nazi experiments. There's also the various charter of human rights.

Al

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:53 UTC (Thu) by nix (subscriber, #2304) [Link]

> I've seen other people pointing out they only sought that approval after they got caught

Whaaat?! OK that should be a huge strike against these people. Good grief!

LF should sue

Posted Apr 22, 2021 1:44 UTC (Thu) by shemminger (subscriber, #5739) [Link] (4 responses)

In civil court, you should be able to sue the university for violation of contract, DCO and/or malicious damage.

LF should sue

Posted Apr 22, 2021 15:20 UTC (Thu) by Funcan (subscriber, #44209) [Link]

If you want to bust out the legal options, then intentionally pushing a security bug is potentially an attempt to gain access to a computer system without authorisation, and possibly a potential DMCA circumvention tool too...

LF should sue

Posted Apr 22, 2021 17:54 UTC (Thu) by deater (subscriber, #11746) [Link] (2 responses)

the previous prominent IRB/ethics lapse at U of Minnesota (yes there was one) was fairly horrifying but the University more or less won the case by claiming that as a state institution they could not be sued. You can read up on it here: https://www.startribune.com/markingson-case-university-of...

LF should sue

Posted Apr 22, 2021 21:16 UTC (Thu) by hummassa (guest, #307) [Link]

This tells me that a decision to ban UMN as contributors to any project, at least for the time being, is not as absurd and guilt-by-association as I thought it would be at first. No need to sue, just blacklist them.

LF should sue

Posted Apr 26, 2021 18:27 UTC (Mon) by GoodMirek (guest, #101902) [Link]

Thanks for the link. It indeed shed more light on IRB of UMN.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 2:38 UTC (Thu) by wtarreau (subscriber, #51152) [Link] (2 responses)

What they could at least do now to fix the situation is to assign some skilled developers to carefully review all these 190 patches and sort them out figuring which ones *really* fix something, which ones are useless or bogus, and which ones are uncertain. *This* would help the community.

For having had a look at quite a number of them, most of them look like total rubbish stemming from misunderstanding of C basics (like setting a local variable to NULL before returning).
A good number of them add error checks at places where it's unclear whether these errors are possible or not. I'd say that at least either the test or a comment explaining why the error cannot happen are deserved.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 6:41 UTC (Thu) by tnoo (subscriber, #20427) [Link]

Exactly. Lay off the "attackers" and donate their salary for a year to employ a trusted kernel developer. There have to be consequences.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:07 UTC (Thu) by clump (subscriber, #27801) [Link]

What they could at least do now to fix the situation is to assign some skilled developers to carefully review all these 190 patches and sort them out figuring which ones *really* fix something, which ones are useless or bogus, and which ones are uncertain.
This is an outstanding suggestion. I hope the University of Minnesota is reading.

The university could pay a trusted organization to review the code and revert the damage. Perhaps another PhD student could later examine the whole affair and contribute something useful to humanity.

What was the faculty thinking?

Posted Apr 22, 2021 3:16 UTC (Thu) by gdt (subscriber, #6284) [Link] (1 responses)

Almost all computer science concerned with operating systems has some focus on Linux. The LKML restriction on contributions from UMN means that graduate students interested in operating systems should select another institution. This outcome was predictable from the beginning of this experiment, and I'm amazed the university let it proceed.

Certainly what wasn't ethical was the university simultaneously accepting graduate students into other projects in operating systems.

What was the faculty thinking?

Posted Apr 22, 2021 3:43 UTC (Thu) by fratti (guest, #105722) [Link]

Judging by my personal experiences in academia, the faculty is usually not thinking.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 5:56 UTC (Thu) by emorrp1 (guest, #99512) [Link]

This reads very like an attempt at unauthorised pentesting, where they're surprised that presenting the findings gets them escorted off site and reported to their boss. If looked at this way, there's an obvious ethical method which is to get buy-in at the top to ensure no actual tests get distributed in a release. Even then I'd expect a volunteer organisation to have some small print during signup that says they do this.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 6:30 UTC (Thu) by garthy (subscriber, #7195) [Link]

I wonder if they are going to do the same experiment with interns working for commercial companies! I imagine not as I suspect the companies wouldn't be as nice in dealing with this and people could go to prison.

hiring choices

Posted Apr 22, 2021 6:41 UTC (Thu) by etbe (subscriber, #17516) [Link] (4 responses)

My conclusion is, don't regard a UMN degree as a positive thing when hiring, and don't hire anyone who has ever worked at UMN.

If you want to hire people who have black-hat experience then go to defcon or similar.

hiring choices

Posted Apr 22, 2021 9:38 UTC (Thu) by roc (subscriber, #30627) [Link] (2 responses)

Are you serious?

If so, I can only pray that no-one from CMU does anything to anger the kernel community so my degree isn't tainted despite the fact I graduated 20 years ago.

hiring choices

Posted Apr 24, 2021 0:12 UTC (Sat) by etbe (subscriber, #17516) [Link] (1 responses)

After 20 years of working your degree is irrelevant, it's your work history that counts.

hiring choices

Posted Apr 27, 2021 3:10 UTC (Tue) by roc (subscriber, #30627) [Link]

So you're backing off "don't hire anyone who has ever worked at UMN"?

hiring choices

Posted Apr 22, 2021 10:07 UTC (Thu) by daniel (guest, #3181) [Link]

You might want to have a read through this thread of proposed reverts and notice how many of the reverts are already NACKed because the patches fix real bugs:

https://lkml.org/lkml/2021/4/21/454

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 7:21 UTC (Thu) by meyert (subscriber, #32097) [Link] (10 responses)

This whole thing is a "riesen sauerei" as we say in German.

You have choises in life, and you could choose between
a.) contributing something constructive and positive that will benefit everybody or
b.) deceided to activley destroy and trust and work done by other

To add insult to injury those three poeple, Aditya Pakki, Qiushi Wu and Kangjie Lu, and were probably paid by an university, whereby many linux contributors do their work on their free time, which makes this incidient even sadder.

Remember those names and the harm they did to our community.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 10:36 UTC (Thu) by roc (subscriber, #30627) [Link] (8 responses)

There is no indication Lu et al. acted with malicious intent to "activley destroy and trust and work done by other". If you read the Oakland 21 paper, it's clear they tried to make sure there was no actual harm to the kernel project. They tried to make sure their proposed patches did not land. They even went out of their way to emphasize their conclusion was not "kernel maintainers are idiots".

I think they obviously made a big mistake. I think they are also the victims of an outpouring of self-righteous rage that is over the top. I felt that rage myself but it's not a healthy feeling.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 11:03 UTC (Thu) by meyert (subscriber, #32097) [Link]

Maybe you are right.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 12:51 UTC (Thu) by hummassa (guest, #307) [Link]

Even if there is no indication Lu et al. acted with malicious intent to "activley destroy and trust and work done by other", the fact *is* that trust is destroyed, work was wasted, and some form of compensation is owed.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:23 UTC (Thu) by clump (subscriber, #27801) [Link]

I applaud your even-handed analysis. The concern is that their behavior was deliberately meant to deceive and caused real harm to UMN, the reputations of the individuals in question, and it wasted the time and energy of real kernel developers and maintainers.

I agree that vitriol doesn't help. UMN should pay a trusted organization to help fix the damage to the kernel.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 14:55 UTC (Thu) by MatejLach (guest, #84942) [Link] (3 responses)

From the article:

> Pakki said that the patches were based on the output of a new static analyzer that he wrote, but its "sensitivity is obviously not great".

He lied about what he was doing with the patches, how is this not malicious? If the NSA has done this we would obviously treat it as such.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 15:26 UTC (Thu) by bfields (subscriber, #19510) [Link] (2 responses)

Did he? You could try to make a case there a lie by omission. (If you're submitting a bunch of patches based on the output of a new static analyzer, you should probably warn people.) But I don't think we have evidence that his patches were anything other than that.

(The intentionally-buggy patches were submitted as part of a different project by different people in the same research group.)

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 16:51 UTC (Thu) by MatejLach (guest, #84942) [Link] (1 responses)

While possibly true, I find the 'different project' excuse suspect given that they both resulted is BS patches. I am also not sure how the 'sensitivity of a new static analyzer' is any good as an excuse as it's obviously the responsibility of the human submitting the patch to review and agree with the output of any such analyzer, no?

If they don't understand the changes made by the analyzer, maybe don't submit the patch? If they do and submit anyway, that's malice.

In any case, I'd rather we don't get any patches from this research group, regardless of project as the good/bad patch ratio seems to skew heavily towards the bad side of things.

The unfortunate side effect of not having potentially good patches from this uni versus having to spend extra maintainer time being paranoid about the bad ones, seems to be overall far less unfortunate to me than having intentional bugs introduced into the kernel.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 20:03 UTC (Thu) by bfields (subscriber, #19510) [Link]

I agree that it looks like some of their patch submissions were careless.

My only claim is that we don't currently have evidence to accuse them of these additional patches being intentionally malicious.

Responses to Greg's mass revert also aren't turning up much of interest:

https://lore.kernel.org/lkml/20210421130105.1226686-1-gre...

A few are buggy but I can't tell if they're unusually so over all.

It's more than actively destroy trust

Posted Apr 22, 2021 15:59 UTC (Thu) by david.a.wheeler (subscriber, #72896) [Link]

The issue isn't just "actively destroy and trust and work done by other" though of course that's terrible.

The bigger issue, to me, is that they experimented on people without their consent. They also had very poor controls to be *confident* that their malicious changes would never end up in running systems, potentially putting end-users at risk (the Linux kernel is used in many very important systems). We can be thankful that the developers were proactive and detected attacks, but researchers are required to act ethically in the first place.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 13:13 UTC (Thu) by bfields (subscriber, #19510) [Link]

At this point the typical Linux kernel maintainer is somebody with a well-established career and a comfortable income. Grad students by contrast have the reputation for being rather stressed and underpaid; let's not pick on them more than necessary.

If we're going to pick on someone, it should be the professor. But there's still a lot unknown here. It may have been worth kicking up a fuss to get attention from the university, but I don't think we should be pulling out the torches and pitchforks quite yet.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 8:57 UTC (Thu) by shalem (subscriber, #4062) [Link] (9 responses)

I don't believe the commit which Guenter Roeck linked to in this email actually is malicious / buggy.

Guenter wrote the following about this: "The author of commit c9c63915519b is Kangjie Lu, not some student, and I have to assume that it intentionally introduced a problem. That was the whole point of the exercise, wasn't it ?"

I believe this was more of a hypothetical question / example of how we (the kernel community) now need to question every commit from the UMN, then an example of an actual malicious / buggy commit. At least I've gone over the commit twice and I cannot find anything wrong with it.

With that said, the entire situation still is a big mess and UMN's behavior here is inexcusable.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 9:13 UTC (Thu) by dvrabel (subscriber, #9500) [Link] (3 responses)

You can't tell the commit is buggy by just looking at the commit itself as it lacks sufficient context.

It returns without releasing a mutex. See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 9:24 UTC (Thu) by shalem (subscriber, #4062) [Link] (2 responses)

Ah, thank you for pointing that out.

That does look like an innocent mistake though. The error condition under which the return with the lock held would happen cannot be controlled by an attacker (I believe it is an I2C read which fails) and even if it could at worse it would be a DOS attach AFAICT. Unless I'm again missing something ?

So buggy yes, malicious no. But now we still get to wonder if the buggy-ness was intentional or just an honest mistake <sigh>.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 10:32 UTC (Thu) by jani (subscriber, #74547) [Link]

> So buggy yes, malicious no. But now we still get to wonder if the buggy-ness was intentional or just an honest mistake <sigh>.

"Never attribute to malice that which is adequately explained by stupidity."
- https://en.wikipedia.org/wiki/Hanlon%27s_razor

"The Underhanded C Contest is a programming contest to turn out code that is malicious, but passes a rigorous inspection, and looks like an honest mistake even if discovered."
- https://en.wikipedia.org/wiki/Underhanded_C_Contest

We tend to err on the side of honest mistakes, and it can be abused.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 22:28 UTC (Thu) by pbonzini (subscriber, #60935) [Link]

That's as much a failure of the C language as it is a failure of patch review.

Using a language without RAII is inexcusable.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 9:22 UTC (Thu) by danielthompson (subscriber, #97243) [Link]

> I don't believe the commit which Guenter Roeck linked to in this email actually
> is malicious / buggy.

There is certainly a bug in that it introduces a new return path and that new return path does not release a mutex.

Whether this is malicious is more or less impossible to say. However it does seem reasonable to view with suspicion a buggy patch from a researcher studying ways to covertly introduce and mature "immature vulnerabilities" by hiding them in innocent looking patches.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 9:25 UTC (Thu) by bronson (subscriber, #4806) [Link] (2 responses)

The first chunk is a useless change. Just churn, no improvement. I don’t know about the second chunk but I’d wager it’s an example of adding impossible-to-hit error checking that they’re now famous for.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 10:22 UTC (Thu) by excors (subscriber, #95769) [Link] (1 responses)

It looks like the 'useless' first chunk was added by Guenter Roeck to tidy up the code - the commit message says "[groeck: One variable for return values is enough]", and the original patch from Kangjie Lu (https://www.mail-archive.com/linux-kernel@vger.kernel.org...) didn't have that change.

The second chunk looks like it's addressing a real problem that's not impossible to hit - lm80_read_value can return negative error codes and that wasn't being handled. Maybe that's only possible if there's a bizarre hardware failure (I2C/SMBus devices shouldn't just stop responding at arbitrary times) but it seems good practice for the kernel to handle those situations properly. (But the patch fixes the problem wrongly, because it returns without unlocking the mutex.)

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 14:06 UTC (Thu) by bronson (subscriber, #4806) [Link]

Great investigation, I would have lost the wager.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 8:35 UTC (Fri) by andy_shev (subscriber, #75870) [Link]

The point is that maintainers always have to question all commits under their area of interest. This research proves that it’s not always the case.

Intentionally buggy commits for CASH—and COUNTRY

Posted Apr 22, 2021 13:48 UTC (Thu) by esemwy (guest, #83963) [Link]

The fame and papers is just small potatoes. Do the reviewers not believe this is also being done by state and criminal actors, but in a less ham-fisted way?

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 14:10 UTC (Thu) by edeloget (subscriber, #88392) [Link] (1 responses)

Ouch.

These researchers really need to understand that lives depend on the quality of the kernel. If you hit a kernel bug while trying to phone 911 on your android phone, it's not a good thing.

And even on a lesser scale: businesses depends on linux. Most (if not all) DSL routers around the world are based upon linux. Most cloud solutions too.

Introducing even hard-to-hit bugs in the kernel in order to publish a paper is really irresponsible.

I feel bad for the PhD students who worked on this. They're not even working and their professionnal ethic is already tarnished thanks to the actions of irresponsible researchers. Not a good way to start a career.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 22:38 UTC (Thu) by roc (subscriber, #30627) [Link]

It's good that everyone is taking Linux kernel quality very seriously today. Let me (re)raise a few suggestions that will help, which are standard practice in other projects:

Use a system for tracking bug reports (especially regressions) that is more reliable than "email LKML and hope it gets noticed and not forgotten".

Expect every submitted code change to come with an automated test (that is run before any release), or an explanation as to why such a test is infeasible. Create test frameworks to systematically reduce occurrences of the latter case.

Enthusiastically adopt Rust where possible because it eliminates entire classes of pernicious bugs.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 20:38 UTC (Thu) by ScienceMan (subscriber, #122508) [Link] (5 responses)

The right way for these reserachers to make up for this is to apologize immediately and voluntatily disclose any other similar attempts that have not already been caught and reverted by G K-H and/or by the the resulting process. The people involved should then volunteer to spend their time for the couple of years looking for and working out ways to detect and correct other such attempts by any known or unknown third parties. There has to be a period of service to the community to make up for this disservice - supervised, if necessary.

Intentionally buggy commits for fame—and papers

Posted Apr 22, 2021 22:26 UTC (Thu) by roc (subscriber, #30627) [Link] (4 responses)

> apologize immediately and voluntatily disclose any other similar attempts that have not already been caught and reverted by G K-H and/or by the the resulting process.

They have apologised, and have said there aren't any other similar attempts.

Intentionally buggy commits for fame—and papers

Posted Apr 24, 2021 7:49 UTC (Sat) by gregkh (subscriber, #8) [Link] (2 responses)

No one has apologized to me, or the Linux kernel community, for putting me, and everyone else, in an "experiment" to detect if we can properly notice "known broken" patches or not.

Where did you see an apology to me and everyone else?

Intentionally buggy commits for fame—and papers

Posted Apr 25, 2021 12:50 UTC (Sun) by mss (subscriber, #138799) [Link]

They have submitted an apology few hours ago:
https://lore.kernel.org/lkml/CAK8KejpUVLxmqp026JY7x5GzHU2...

They insist that their patches weren't intentionally malicious (besides these three patches described in their paper), including the current "a new static checker" round.

Intentionally buggy commits for fame—and papers

Posted Apr 27, 2021 3:18 UTC (Tue) by roc (subscriber, #30627) [Link]

I was referring to this: https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf

> I apologize for the misleading abstract which did not show the details and caused many confusions and misunderstandings.

> Throughout the study, we honestly did not think this is human research, so we did not apply for an IRB approval in the beginning. We apologize for the raised concerns. This is an important lesson we learned---Do not trust ourselves on determining human research; always refer to IRB whenever a study might be involving any human subjects in any form.

> We would like to sincerely apologize to the maintainers involved in the corresponding patch review process; this work indeed wasted their precious time.

> * The work taints the relationship between academia and industry
> We are very sorry to hear this concern.

Intentionally buggy commits for fame—and papers

Posted Apr 27, 2021 3:17 UTC (Tue) by roc (subscriber, #30627) [Link]

I was referring to this: https://www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf

> I apologize for the misleading abstract which did not show the details and caused many confusions and misunderstandings.

> Throughout the study, we honestly did not think this is human research, so we did not apply for an IRB
approval in the beginning. We apologize for the raised concerns. This is an important lesson we
learned---Do not trust ourselves on determining human research; always refer to IRB whenever a study
might be involving any human subjects in any form.

> We would like to sincerely apologize to the maintainers involved in the corresponding
patch review process; this work indeed wasted their precious time.

> * The work taints the relationship between academia and industry
> We are very sorry to hear this concern.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 8:25 UTC (Fri) by andy_shev (subscriber, #75870) [Link] (3 responses)

“Russian hackers” won’t publish a research, they will silently put malicious commits into the OSS projects.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 11:31 UTC (Fri) by gmgod (guest, #143864) [Link] (2 responses)

And "they" will succeed...

Though I can't possibly condone the way things were done in this instance, identifying and quantifying how buggy commits are passing through review seems important when said review fails so evidently. I want kernel developers to have tools and workflow that efficiently/easily identify bugs (whether intentional or not) and spend less time on something so boring. This is not the case.

Kernel devs should try to work *with* researchers instead of banning them (again, I'm aware those specific researchers screwed up big time in this case). All the papers I can read on the subject are really frightening in terms of bug introduced and time-to-fix.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 11:44 UTC (Fri) by wtarreau (subscriber, #51152) [Link]

> I want kernel developers to have tools and workflow that efficiently/easily identify bugs (whether intentional or not) and spend less time on something so boring.

There are tons of tools, but the very concept of "review" exists because at some point you need a human. And it turns out that a lot of tools and imposed processes can drain a lot of human time as well. In the end it's important to find a sweet balance of tools and processes that makes everyone work at their best efficiency.

Avoiding errors is pointless because they will always exist, and there are diminishing returns on the efforts you add. Instead what matters is that they're quickly spotted and fixed. Here the tools and automated tests in place are helping a lot.

Still more participants would be nice. If you don't review, why wouldn't you start ? Just spot a patch that you can read, from time to time, return some suggestions or respond with a "reviewed-by" so that nobody else spends time on it and you'll help by saving someone's valuable time. You don't necessarily need to be skilled on the subject if you can read code and be curious. It doesn't matter if you make a mistake once in a while (though not too often): if your work eliminates 90% of the someone else's work and requires to be fixed 10% of the time, it's already 81% saved!

Intentionally buggy commits for fame—and papers

Posted Apr 26, 2021 0:45 UTC (Mon) by rgmoore (✭ supporter ✭, #75) [Link]

Kernel devs should try to work *with* researchers instead of banning them (again, I'm aware those specific researchers screwed up big time in this case).

Kernel developers have spent a lot of time working with researchers; there are a bunch of things in the kernel that were put there as a result of academic research. That includes security testing, e.g. the Coverity scanner. But working together is a two-way street. I haven't seen anything in the discussion of this issue that shows these researchers made any attempt to work with the kernel developers, and that really has to happen first. It seems extremely unlikely to happen in this case, considering how seriously the relationship has already been damaged.

Intentionally buggy commits for fame—and papers

Posted Apr 23, 2021 14:56 UTC (Fri) by joey (guest, #328) [Link]

Something I have not seen mentioned anywhere from the paper is this:

We submit three patches using a random Gmail account to the Linux community

So either the paper is not describing what they really did, or there may be other poisoned patches to worry about.

Intentionally buggy commits for fame—and papers

Posted Apr 26, 2021 5:56 UTC (Mon) by carORcdr (guest, #141301) [Link]

In a review of The Minnesota Daily,[1] there are seven 'articles' that include Linux references as of 2021-04-25:2200.[2] The most recent from the year 2008 (about an individual speaking with the surname Stallman). The publication's stated mission includes: 'to 1. Provide independent student journalism and comprehensive coverage of news, media and events that serve the public interest and inform the University of Minnesota community.[3] The Minnesota Daily's 'journalism' would seem to be neither comprehensive, nor serving the public interest by its omission of material 'news of the day'.[4] Maybe LWN's Corbet, Jake, et al., could show them what journalism actually entails, including inquiring why they have not reported on this news.
[1] https://mndaily.com/about-us/
The Minnesota Daily is a student-led media organization serving the University of Minnesota campus and surrounding community.
[2] Comp. sci. activist to talk computing freedom at U, October 20, 2008
University wastes millions on software for students, Jason Ketola, September 26, 2005
U-spawned technology start-up flourishes, Nathan Hall, October 28, 2003
Net: Well, friends,…, October 3, 2000
Microsoft’s global language: Beta version 1.0, September 19, 2000
Microsoft inhibits software competition, May 4, 2000
Microsoft findings offer hope to industry, November 8, 1999
[3] https://mndaily.com/about-us/
Mission
1. Provide independent student journalism and comprehensive coverage of news, media and events that serve the public interest and inform the University of Minnesota community.
[4] References omitted.

Intentionally buggy commits for fame—and papers

Posted May 1, 2021 23:48 UTC (Sat) by richardw (guest, #23638) [Link]

One might take the stance the research experiment was not ethical. Its a bit like intentionally putting debris on a busy highway and then reporting how many more accidents resulted.

Intentionally buggy commits for fame—and papers

Posted May 3, 2021 9:30 UTC (Mon) by nspattak (guest, #52234) [Link]

I understand that the ban on all university emails can be unfair to individual members of the university yet IMO it is fully justified. The university is responsible for the research being done there both in fame and in shame. If I am not mistaken, a paper was published last year, so in this particular case the university can not even claim that they were unaware of this research.

Intentionally buggy commits for fame—and papers

Posted May 4, 2021 13:38 UTC (Tue) by littoral (guest, #140523) [Link]

'Quite obviously the paradigm has finally changed from "assume the contribution is well-intended" to "assume the contribution is malicious". '

This is overdue. It should have been the paradigm as soon as the contributor community became too large for all its members to be known personally to the project gatekeepers - if not before even that point.

The fact that it has not been the paradigm means that the kernel is already stuffed with malicious code from NSA and other espionage agencies of various countries.
We'll probably never identify all of it.


Copyright © 2021, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds