[Bug 272332] pipebomb: kern.ipc.maxpipekva exceeded

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 02 Jul 2023 13:49:47 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272332

            Bug ID: 272332
           Summary: pipebomb: kern.ipc.maxpipekva exceeded
           Product: Base System
           Version: 13.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: koston@iki.fi
 Attachment #243133 text/plain
         mime type:

Created attachment 243133
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=243133&action=edit
pipe() bomb

kern.ipc.maxpipekva sets hard limit on kernel address space allocated to
mapping pipe buffers. Exceeding this limit causes pipe() return -1 and
"kern.ipc.maxpipekva exceeded" message, as it should.

This causes a local denial of service, if the pipe() failure is ignored. This
can happen due to buggy software (as it did in my case), or it can be trivially
triggered by a malicious local user. Regardless, it is a pain to deal with, if
the offending process doesn't voluntarily give up on it's bad manners.

The kernel is already capable and willing to forcibly terminate a process,
which has exhausted system memory capacity. Should it do the same for a process
exhausting pipe buffers?

Attached C code demonstrating the issue.

-- 
You are receiving this mail because:
You are the assignee for the bug.