3
0
forked from pool/libseccomp

Accepting request 833243 from security

- Do not rely on gperf: pass GPERF=/bin/true to configure and
  remove gperf BuildRequires. The syscalls.perf file it would
  generate is part of the tarball already. (forwarded request 833241 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/833243
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libseccomp?expand=0&rev=29
This commit is contained in:
Dominique Leuenberger 2020-09-14 10:02:31 +00:00 committed by Git OBS Bridge
commit c9e1a7695f
8 changed files with 878 additions and 70 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cf15d1421997fac45b936515af61d209c4fd788af11005d212b3d0fd71e7991d
size 598147

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEER6aPzjfH1wJP1l4RNWzmLCtSQJkFAl5dSTUACgkQNWzmLCtS
QJlBpg//YYWhWRIwEbI9r4DgFVyHbuMNm0+ioyfuMIbGk6sT+YaXUrosL/0qtRLF
ooVCQcyGv/wVsAXuoQGNFqzLS0+9SXesKUMICiJ5/EehxPMTTpUhrIjbebAHgc+R
FUDs+MdqFtqfe4Wrn5PyFQgEnXJhJfnrwUIVAKXkfOTuBsc/rUjNJxMBd/2hlByG
qf4oTtPrwx9ejk+ybJPGNAwT8cr6RxTRU1ppioY90SDgfG9RuevsJs9FvSvRBPvz
ftHVXlaQJn7TgKXRVpY6ukw0JmpcmVgL1o1MEFs+ComKhgWcpkQkHetXFeuzYLTy
e2FHtfis4FN3Ct9zfcCkaRH5Du38alZQLdO0Q6v1DXCkV3Whb6KbDSuIVAPctwGz
kUh3NXpeA0JXqH1np1v/HsRVY5729TiHraWvrQzzmM6uNgOryZLUdiu6Eka31zgm
HTdW4BuOKjxAcvuRngft5hSxij+Dah5CvYl4R0qQv46bqovURzXIFbP6DBRp728H
uUbR1GJJzP8xrQ4vHLPDPW5mnbs/Stnt1pFDFf4Y+ZwB6KV4+FSOlm9/9XVsF822
KeU/b+hH1/ycaNQRqgfXgjckW7uWXmwqBZoGHo0duciB22ncAXjsEnxztihnSZJT
czTk1RSK3neHqr9i8j6WKaSkLW8zLCFyJ1CxOoFzpLN64818CVA=
=04Y3
-----END PGP SIGNATURE-----

3
libseccomp-2.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ffa7038d2720ad191919816db3479295a4bcca1ec14e02f672539f4983014f3
size 638793

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEES0KozwfymdVUl37v6iDy2pc3iXMFAl8V6OcACgkQ6iDy2pc3
iXPwsRAAn1lwUBaMNoh8xdpfvD03KWRoj6qZBREn4vEhT583qW49QSoucd7YuI84
wukM87hadGv/0jRNWqopBHYedFwmr38ApkftRl5sp0KaG+5c8n6USUAvcQ92h/gV
Iduik0fytd9h/XeQqoL3tkLL+YqRaWPNucK1Osu5FGcAjLgon0Vh/S2sILhrVF9k
7uISL10aGKiCEWYyDsMrmFe72W6BHZNlwYeFT2Tu8TKyh3qB500zj8IV9VV0EiHJ
3H8w4z3V+zEJOQOI9gyELQsFvKP5qHQZvkHv16L+mKDiHp8WjNF13T7OIpJJ9Ur/
NqWcRzJ2VJA/EIKsQFTvyk4Mclx/viyNPTdTMvExFWAInPebxqDwqY1LYq+ZmU1s
q/rGl1WKMdcFZsWj7sSAxqo9KQiObgjk3uAc4IdyTm97wFwLrcLDB90TH1DP0zZp
5z2nNBZeegav1bKnm2aU1h2BTT8bHIRfQZO7912ITiPXbpvWVdvJSUlcwZtnv3yC
uB5WgemZZR+29rLCC6jCFr7fxRO7eKJhy+klDxFKqicn6MX5hKkyE1oDeM/PNYtD
8hy2Rn2zfwjkyMeAlNIBpKrJYS1XHg1O7Bfd0OEwpH9cFxdLodnOqxm++0AgXol/
PzuaOI8AnOLYO87oYH3D808+80nnZFKi9RRkOzfetOgeKBsWdCE=
=0Ew0
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,41 @@
-------------------------------------------------------------------
Wed Sep 9 13:49:55 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- Do not rely on gperf: pass GPERF=/bin/true to configure and
remove gperf BuildRequires. The syscalls.perf file it would
generate is part of the tarball already.
-------------------------------------------------------------------
Tue Sep 8 15:00:01 UTC 2020 - Andreas Schwab <schwab@suse.de>
- testsuite-riscv64-missing-syscalls.patch: Fix testsuite failure on
riscv64
- Ignore failure of tests/52-basic-load on qemu linux-user emulation
-------------------------------------------------------------------
Tue Sep 8 14:00:13 UTC 2020 - Ralf Haferkamp <rhafer@suse.com>
- Update to release 2.5.0
* Add support for the seccomp user notifications, see the
seccomp_notify_alloc(3), seccomp_notify_receive(3),
seccomp_notify_respond(3) manpages for more information
* Add support for new filter optimization approaches, including a balanced
tree optimization, see the SCMP_FLTATR_CTL_OPTIMIZE filter attribute for
more information
* Add support for the 64-bit RISC-V architecture
* Performance improvements when adding new rules to a filter thanks to the
use of internal shadow transactions and improved syscall lookup tables
* Properly document the libseccomp API return values and include them in the
stable API promise
* Improvements to the s390 and s390x multiplexed syscall handling
* Multiple fixes and improvements to the libseccomp manpages
* Moved from manually maintained syscall tables to an automatically generated
syscall table in CSV format
* Update the syscall tables to Linux v5.8.0-rc5
* Python bindings and build now default to Python 3.x
* Improvements to the tests have boosted code coverage to over 93%
- libseccomp.keyring: replaced by Paul Moore <pmoore@redhat.com> key.
-------------------------------------------------------------------
Fri Jun 5 13:12:29 UTC 2020 - Jan Engelhardt <jengelh@inai.de>

View File

@ -1,52 +1,673 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
rfo=
=6Js4
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
Zdi7eA==
=qH7J
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -18,7 +18,7 @@
%define lname libseccomp2
Name: libseccomp
Version: 2.4.3
Version: 2.5.0
Release: 0
Summary: A Seccomp (mode 2) helper library
License: LGPL-2.1-only
@ -28,6 +28,7 @@ Source: https://github.com/seccomp/libseccomp/releases/download/v%versio
Source2: https://github.com/seccomp/libseccomp/releases/download/v%version/libseccomp-%version.tar.gz.asc
Source3: %name.keyring
Source99: baselibs.conf
Patch: testsuite-riscv64-missing-syscalls.patch
BuildRequires: autoconf
BuildRequires: automake >= 1.11
BuildRequires: fdupes
@ -86,6 +87,12 @@ This subpackage contains debug utilities for the seccomp interface.
%prep
%autosetup -p1
%if 0%{?qemu_user_space_build}
# The qemu linux-user emulation does not allow executing
# prctl(PR_SET_SECCOMP), which breaks this test. Stub it out.
echo 'int main () { return 0; }' >tests/52-basic-load.c
%endif
%build
if [ ! -f configure ]; then
perl -i -pe 's{\QAC_INIT([libseccomp], [0.0.0])\E}{AC_INIT([libseccomp], [%version])}' configure.ac
@ -94,7 +101,8 @@ autoreconf -fiv
%configure \
--includedir="%_includedir/%name" \
--disable-static \
--disable-silent-rules
--disable-silent-rules \
GPERF=/bin/true
make %{?_smp_mflags}
%install

View File

@ -0,0 +1,141 @@
From cc580a514f05a7fc1f412f66ed002dd8aee89618 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Tue, 18 Aug 2020 15:59:54 +0200
Subject: [PATCH] tests: use openat and fstat instead of open and stat syscalls
in tests 04 and 06
Architectures like aarch64 and riscv64, and all future architectures that
use the generic syscall table, do not support the open and stat syscalls.
Use the openat and fstat syscalls instead.
Signed-off-by: Andreas Schwab <schwab@suse.de>
Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
(imported from commit a317fabc1fd915f19f7e7326bf7dcb77493f1210)
---
tests/04-sim-multilevel_chains.c | 2 +-
tests/04-sim-multilevel_chains.py | 2 +-
tests/04-sim-multilevel_chains.tests | 8 +++++---
tests/06-sim-actions.c | 4 ++--
tests/06-sim-actions.py | 4 ++--
tests/06-sim-actions.tests | 16 +++++++++-------
6 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/tests/04-sim-multilevel_chains.c b/tests/04-sim-multilevel_chains.c
index a660b40..e3e4f9b 100644
--- a/tests/04-sim-multilevel_chains.c
+++ b/tests/04-sim-multilevel_chains.c
@@ -41,7 +41,7 @@ int main(int argc, char *argv[])
if (ctx == NULL)
return ENOMEM;
- rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 0);
+ rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(openat), 0);
if (rc != 0)
goto out;
diff --git a/tests/04-sim-multilevel_chains.py b/tests/04-sim-multilevel_chains.py
index bcf1ee4..a5127a2 100755
--- a/tests/04-sim-multilevel_chains.py
+++ b/tests/04-sim-multilevel_chains.py
@@ -30,7 +30,7 @@ from seccomp import *
def test(args):
f = SyscallFilter(KILL)
- f.add_rule(ALLOW, "open")
+ f.add_rule(ALLOW, "openat")
f.add_rule(ALLOW, "close")
f.add_rule(ALLOW, "read",
Arg(0, EQ, sys.stdin.fileno()),
diff --git a/tests/04-sim-multilevel_chains.tests b/tests/04-sim-multilevel_chains.tests
index 6613f9a..b6f7576 100644
--- a/tests/04-sim-multilevel_chains.tests
+++ b/tests/04-sim-multilevel_chains.tests
@@ -8,7 +8,7 @@
test type: bpf-sim
# Testname Arch Syscall Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Result
-04-sim-multilevel_chains all,-aarch64 open 0x856B008 4 N N N N ALLOW
+04-sim-multilevel_chains all openat 0 0x856B008 4 N N N ALLOW
04-sim-multilevel_chains all close 4 N N N N N ALLOW
04-sim-multilevel_chains x86 read 0 0x856B008 0x7FFFFFFE N N N ALLOW
04-sim-multilevel_chains x86_64 read 0 0x856B008 0x7FFFFFFFFFFFFFFE N N N ALLOW
@@ -27,9 +27,11 @@ test type: bpf-sim
04-sim-multilevel_chains all rt_sigreturn N N N N N N ALLOW
04-sim-multilevel_chains x86 0-2 N N N N N N KILL
04-sim-multilevel_chains x86 7-172 N N N N N N KILL
-04-sim-multilevel_chains x86 174-350 N N N N N N KILL
+04-sim-multilevel_chains x86 174-294 N N N N N N KILL
+04-sim-multilevel_chains x86 296-350 N N N N N N KILL
04-sim-multilevel_chains x86_64 4-14 N N N N N N KILL
-04-sim-multilevel_chains x86_64 16-350 N N N N N N KILL
+04-sim-multilevel_chains x86_64 16-256 N N N N N N KILL
+04-sim-multilevel_chains x86_64 258-350 N N N N N N KILL
test type: bpf-sim-fuzz
diff --git a/tests/06-sim-actions.c b/tests/06-sim-actions.c
index 10b366c..da636c9 100644
--- a/tests/06-sim-actions.c
+++ b/tests/06-sim-actions.c
@@ -60,11 +60,11 @@ int main(int argc, char *argv[])
if (rc != 0)
goto out;
- rc = seccomp_rule_add(ctx, SCMP_ACT_TRACE(1234), SCMP_SYS(open), 0);
+ rc = seccomp_rule_add(ctx, SCMP_ACT_TRACE(1234), SCMP_SYS(openat), 0);
if (rc != 0)
goto out;
- rc = seccomp_rule_add(ctx, SCMP_ACT_KILL_PROCESS, SCMP_SYS(stat), 0);
+ rc = seccomp_rule_add(ctx, SCMP_ACT_KILL_PROCESS, SCMP_SYS(fstat), 0);
if (rc != 0)
goto out;
diff --git a/tests/06-sim-actions.py b/tests/06-sim-actions.py
index f14d6ed..253061d 100755
--- a/tests/06-sim-actions.py
+++ b/tests/06-sim-actions.py
@@ -37,8 +37,8 @@ def test(args):
f.add_rule(LOG, "rt_sigreturn")
f.add_rule(ERRNO(errno.EPERM), "write")
f.add_rule(TRAP, "close")
- f.add_rule(TRACE(1234), "open")
- f.add_rule(KILL_PROCESS, "stat")
+ f.add_rule(TRACE(1234), "openat")
+ f.add_rule(KILL_PROCESS, "fstat")
return f
args = util.get_opt()
diff --git a/tests/06-sim-actions.tests b/tests/06-sim-actions.tests
index b830917..1ef38b3 100644
--- a/tests/06-sim-actions.tests
+++ b/tests/06-sim-actions.tests
@@ -11,15 +11,17 @@ test type: bpf-sim
06-sim-actions all read 4 0x856B008 80 N N N ALLOW
06-sim-actions all write 1 0x856B008 N N N N ERRNO(1)
06-sim-actions all close 4 N N N N N TRAP
-06-sim-actions all,-aarch64 open 0x856B008 4 N N N N TRACE(1234)
-06-sim-actions all,-aarch64 stat N N N N N N KILL_PROCESS
+06-sim-actions all openat 0 0x856B008 4 N N N TRACE(1234)
+06-sim-actions all fstat N N N N N N KILL_PROCESS
06-sim-actions all rt_sigreturn N N N N N N LOG
06-sim-actions x86 0-2 N N N N N N KILL
-06-sim-actions x86 7-105 N N N N N N KILL
-06-sim-actions x86 107-172 N N N N N N KILL
-06-sim-actions x86 174-350 N N N N N N KILL
-06-sim-actions x86_64 5-14 N N N N N N KILL
-06-sim-actions x86_64 16-350 N N N N N N KILL
+06-sim-actions x86 7-107 N N N N N N KILL
+06-sim-actions x86 109-172 N N N N N N KILL
+06-sim-actions x86 174-294 N N N N N N KILL
+06-sim-actions x86 296-350 N N N N N N KILL
+06-sim-actions x86_64 6-14 N N N N N N KILL
+06-sim-actions x86_64 16-256 N N N N N N KILL
+06-sim-actions x86_64 258-350 N N N N N N KILL
test type: bpf-sim-fuzz
--
2.28.0