Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

seccomp: block io_uring_* syscalls in default profile #46762

Merged
merged 1 commit into from
Nov 2, 2023

Conversation

akerouanton
Copy link
Member

@akerouanton akerouanton commented Nov 2, 2023

relates to:

- What I did

This syncs the seccomp profile with changes made to containerd's default profile in containerd/containerd@a48ddf4.

The original containerd issue and PR mention:

Security experts generally believe io_uring to be unsafe. In fact
Google ChromeOS and Android have turned it off, plus all Google
production servers turn it off. Based on the blog published by Google
below it seems like a bunch of vulnerabilities related to io_uring can
be exploited to breakout of the container.

https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html

Other security reaserchers also hold this opinion: see https://i.blackhat.com/BH-US-23/Presentations/US-23-Lin-bad_io_uring.pdf for a
blackhat presentation on io_uring exploits.

For the record, these syscalls were added to the allowlist in #39415.

- Description for the changelog

  • seccomp: remove io_uring_* syscalls from the default profile allowlist

This syncs the seccomp profile with changes made to containerd's default
profile in [1].

The original containerd issue and PR mention:

> Security experts generally believe io_uring to be unsafe. In fact
> Google ChromeOS and Android have turned it off, plus all Google
> production servers turn it off. Based on the blog published by Google
> below it seems like a bunch of vulnerabilities related to io_uring can
> be exploited to breakout of the container.
>
> [2]
>
> Other security reaserchers also hold this opinion: see [3] for a
> blackhat presentation on io_uring exploits.

For the record, these syscalls were added to the allowlist in [4].

[1]: containerd/containerd@a48ddf4
[2]: https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html
[3]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Lin-bad_io_uring.pdf
[4]: moby#39415

Signed-off-by: Albin Kerouanton <[email protected]>
@thaJeztah
Copy link
Member

Removing cherry-pick labels for now (but we can revisit in future)

kdrag0n added a commit to kdrag0n/tigerbeetle that referenced this pull request Jun 9, 2024
Docker 25.0.0 and newer blocks io_uring by default using seccomp: moby/moby#46762

TigerBeetle has no epoll fallback so it fails to start:

```
❯ docker run -v /data -it --rm ghcr.io/tigerbeetle/tigerbeetle \
    format --cluster=0 --replica=0 --replica-count=1 /data/0_0.tigerbeetle
info(io): creating "0_0.tigerbeetle"...
info(io): allocating 1.06298828125GiB...
error: PermissionDenied
```
krichprollsch added a commit to lightpanda-io/zig-js-runtime that referenced this pull request Jun 18, 2024
With zig-test workflow.
It seems docker blocks io_uring by default using seccomp.

see tigerbeetle/tigerbeetle#1995 and
moby/moby#46762
krichprollsch added a commit to lightpanda-io/zig-js-runtime that referenced this pull request Jun 18, 2024
With zig-test workflow.
It seems docker blocks io_uring by default using seccomp.

see tigerbeetle/tigerbeetle#1995 and
moby/moby#46762
krichprollsch added a commit to lightpanda-io/browser that referenced this pull request Jun 18, 2024
It seems docker blocks io_uring by default using seccomp.

see tigerbeetle/tigerbeetle#1995 and
moby/moby#46762
cb22 pushed a commit to kdrag0n/tigerbeetle that referenced this pull request Jul 1, 2024
Docker 25.0.0 and newer blocks io_uring by default using seccomp: moby/moby#46762

TigerBeetle has no epoll fallback so it fails to start:

```
❯ docker run -v /data -it --rm ghcr.io/tigerbeetle/tigerbeetle \
    format --cluster=0 --replica=0 --replica-count=1 /data/0_0.tigerbeetle
info(io): creating "0_0.tigerbeetle"...
info(io): allocating 1.06298828125GiB...
error: PermissionDenied
```
cb22 pushed a commit to kdrag0n/tigerbeetle that referenced this pull request Jul 1, 2024
Docker 25.0.0 and newer blocks io_uring by default using seccomp: moby/moby#46762

TigerBeetle has no epoll fallback so it fails to start:

```
❯ docker run -v /data -it --rm ghcr.io/tigerbeetle/tigerbeetle \
    format --cluster=0 --replica=0 --replica-count=1 /data/0_0.tigerbeetle
info(io): creating "0_0.tigerbeetle"...
info(io): allocating 1.06298828125GiB...
error: PermissionDenied
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants