Messages in this thread | | | Date | Mon, 5 May 2014 15:00:16 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH v3 0/4] sysctl: fix incorrect write position handling |
| |
On Thu, 1 May 2014 14:26:33 -0700 Kees Cook <keescook@chromium.org> wrote:
> When writing to a sysctl string, each write, regardless of VFS position, > began writing the string from the start. This meant the contents of > the last write to the sysctl controlled the string contents instead of > the first. > > This misbehavior was featured in an exploit against Chrome OS. While it's > not in itself a vulnerability, it's a weirdness that isn't on the mind > of most auditors: "This filter looks correct, the first line written > would not be meaningful to sysctl" doesn't apply here, since the size > of the write and the contents of the final write are what matter when > writing to sysctls. > > This adds the sysctl kernel.sysctl_writes_strict to control the write > behavior. The default (0) reports when VFS position is non-0 on a write, > but retains legacy behavior, -1 disables the warning, and 1 enables the > position-respecting behavior. >
OK, let's try that. I added this paragraph to the patchset's overall changelog:
: The long-term plan here is to wait for userspace to be fixed in response : to the new warning and to then switch the default kernel behavior to the : new position-respecting behavior.
I'm thinking we should use pr_warn_once() in warn_sysctl_write()? Otherwise people will go and shut the thing up permanently and we'll lose the benefits.
| |